Skip to content

Commit 2337cc0

Browse files
authored
Fix presence test to produce an error when it's not a map or a message (#922)
1 parent 94cbc9d commit 2337cc0

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

interpreter/attributes.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1283,9 +1283,6 @@ func refQualify(adapter types.Adapter, obj any, idx ref.Val, presenceTest, prese
12831283
}
12841284
return val, true, nil
12851285
default:
1286-
if presenceTest {
1287-
return nil, false, nil
1288-
}
12891286
return nil, false, missingKey(idx)
12901287
}
12911288
}

interpreter/interpreter_test.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ import (
2626
"time"
2727

2828
"google.golang.org/protobuf/proto"
29+
"google.golang.org/protobuf/types/known/structpb"
30+
"google.golang.org/protobuf/types/known/wrapperspb"
2931

3032
"github.com/google/cel-go/checker"
3133
"github.com/google/cel-go/common"
@@ -40,9 +42,7 @@ import (
4042
"github.com/google/cel-go/parser"
4143

4244
exprpb "google.golang.org/genproto/googleapis/api/expr/v1alpha1"
43-
structpb "google.golang.org/protobuf/types/known/structpb"
4445
tpb "google.golang.org/protobuf/types/known/timestamppb"
45-
wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
4646

4747
proto2pb "github.com/google/cel-go/test/proto2pb"
4848
proto3pb "github.com/google/cel-go/test/proto3pb"
@@ -1445,6 +1445,16 @@ func testData(t testing.TB) []testCase {
14451445
}, NewAttributePattern("a").QualInt(0)),
14461446
out: types.NewUnknown(2, types.QualifyAttribute[uint64](types.NewAttributeTrail("a"), 0)),
14471447
},
1448+
{
1449+
name: "invalid_presence_test_on_int_literal",
1450+
expr: `has(dyn(1).invalid)`,
1451+
err: "no such key: invalid",
1452+
},
1453+
{
1454+
name: "invalid_presence_test_on_list_literal",
1455+
expr: `has(dyn([]).invalid)`,
1456+
err: "unsupported index type 'string' in list",
1457+
},
14481458
}
14491459
}
14501460

0 commit comments

Comments
 (0)