Merge pull request #22314 from hashicorp/pselle/double-dynamic
Fix panic on double dynamic blocks
This commit is contained in:
commit
e38d588cfc
|
@ -33,7 +33,9 @@ func walkVariables(node dynblock.WalkVariablesNode, body hcl.Body, schema *confi
|
||||||
for _, child := range children {
|
for _, child := range children {
|
||||||
if blockS, exists := schema.BlockTypes[child.BlockTypeName]; exists {
|
if blockS, exists := schema.BlockTypes[child.BlockTypeName]; exists {
|
||||||
vars = append(vars, walkVariables(child.Node, child.Body(), &blockS.Block)...)
|
vars = append(vars, walkVariables(child.Node, child.Body(), &blockS.Block)...)
|
||||||
} else if attrS, exists := schema.Attributes[child.BlockTypeName]; exists && attrS.Type.ElementType().IsObjectType() {
|
} else if attrS, exists := schema.Attributes[child.BlockTypeName]; exists && attrS.Type.IsCollectionType() && attrS.Type.ElementType().IsObjectType() {
|
||||||
|
// ☝️Check for collection type before element type, because if this is a mis-placed reference,
|
||||||
|
// a panic here will prevent other useful diags from being elevated to show the user what to fix
|
||||||
synthSchema := SchemaForCtyElementType(attrS.Type.ElementType())
|
synthSchema := SchemaForCtyElementType(attrS.Type.ElementType())
|
||||||
vars = append(vars, walkVariables(child.Node, child.Body(), synthSchema)...)
|
vars = append(vars, walkVariables(child.Node, child.Body(), synthSchema)...)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue