Merge pull request #19161 from hashicorp/b-lookup-crash-fix

lang: Fix crash in lookup function
This commit is contained in:
Radek Simko 2018-10-23 20:19:45 +02:00 committed by GitHub
commit 1de7c5849d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 1 deletions

View File

@ -512,9 +512,14 @@ var LookupFunc = function.New(&function.Spec{
}
ty := args[0].Type()
key := args[1].AsString()
switch {
case ty.IsObjectType():
if !args[1].IsKnown() {
return cty.DynamicPseudoType, nil
}
key := args[1].AsString()
if ty.HasAttribute(key) {
return args[0].GetAttr(key).Type(), nil
} else if len(args) == 3 {

View File

@ -1255,6 +1255,25 @@ func TestLookup(t *testing.T) {
cty.UnknownVal(cty.String),
false,
},
{
[]cty.Value{
simpleMap,
cty.UnknownVal(cty.String),
},
cty.UnknownVal(cty.String),
false,
},
{
[]cty.Value{
cty.ObjectVal(map[string]cty.Value{
"foo": cty.StringVal("a"),
"bar": cty.StringVal("b"),
}),
cty.UnknownVal(cty.String),
},
cty.UnknownVal(cty.String),
false,
},
}
for _, test := range tests {