Fix panic traversing marked list
We need to unmark the result of HasIndex in order to compare it with true or false without a panic.
This commit is contained in:
parent
3bb0644ad8
commit
d0cb134fec
5
ops.go
5
ops.go
@ -76,7 +76,10 @@ func Index(collection, key cty.Value, srcRange *Range) (cty.Value, Diagnostics)
|
||||
}
|
||||
}
|
||||
|
||||
has := collection.HasIndex(key)
|
||||
// Here we drop marks from HasIndex result, in order to allow basic
|
||||
// traversal of a marked list, tuple, or map in the same way we can
|
||||
// traverse a marked object
|
||||
has, _ := collection.HasIndex(key).Unmark()
|
||||
if !has.IsKnown() {
|
||||
if ty.IsTupleType() {
|
||||
return cty.DynamicVal, nil
|
||||
|
@ -40,6 +40,14 @@ func TestApplyPath(t *testing.T) {
|
||||
cty.StringVal("hello"),
|
||||
``,
|
||||
},
|
||||
{
|
||||
cty.ListVal([]cty.Value{
|
||||
cty.StringVal("hello"),
|
||||
}).Mark("x"),
|
||||
(cty.Path)(nil).Index(cty.NumberIntVal(0)),
|
||||
cty.StringVal("hello").Mark("x"),
|
||||
``,
|
||||
},
|
||||
{
|
||||
cty.TupleVal([]cty.Value{
|
||||
cty.StringVal("hello"),
|
||||
|
Loading…
Reference in New Issue
Block a user