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 !has.IsKnown() {
|
||||||
if ty.IsTupleType() {
|
if ty.IsTupleType() {
|
||||||
return cty.DynamicVal, nil
|
return cty.DynamicVal, nil
|
||||||
|
@ -40,6 +40,14 @@ func TestApplyPath(t *testing.T) {
|
|||||||
cty.StringVal("hello"),
|
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.TupleVal([]cty.Value{
|
||||||
cty.StringVal("hello"),
|
cty.StringVal("hello"),
|
||||||
|
Loading…
Reference in New Issue
Block a user