mirror of
https://github.com/opentofu/opentofu.git
synced 2025-01-21 06:02:58 -06:00
a9bd4099d3
We were previously _trying_ to handle diagnostics here but were not quite doing it right because we were testing whether the resulting error was nil rather than appending it to the diagnostics and then seeing if the result has errors. The difference here is important because it allows DynamicExpand to return warnings without associated errors when needed. Previously the graph walker would treat a warnings-only result as if it were an error. Ideally we'd change DynamicExpand to return diagnostics directly, but we previously decided against that because there were so many implementors to update, and my intent for this change is to be surgical in the update so we minimize risk of backporting the change into patch releases.
18 lines
750 B
Go
18 lines
750 B
Go
package terraform
|
|
|
|
// GraphNodeDynamicExpandable is an interface that nodes can implement
|
|
// to signal that they can be expanded at eval-time (hence dynamic).
|
|
// These nodes are given the eval context and are expected to return
|
|
// a new subgraph.
|
|
type GraphNodeDynamicExpandable interface {
|
|
// DynamicExpand returns a new graph which will be treated as the dynamic
|
|
// subgraph of the receiving node.
|
|
//
|
|
// The second return value is of type error for historical reasons;
|
|
// it's valid (and most ideal) for DynamicExpand to return the result
|
|
// of calling ErrWithWarnings on a tfdiags.Diagnostics value instead,
|
|
// in which case the caller will unwrap it and gather the individual
|
|
// diagnostics.
|
|
DynamicExpand(EvalContext) (*Graph, error)
|
|
}
|