diff --git a/checker/checker.go b/checker/checker.go index 0601fd60..dc4cb5c6 100644 --- a/checker/checker.go +++ b/checker/checker.go @@ -249,7 +249,7 @@ func (c *checker) checkSelectField(e, operand *exprpb.Expr, field string, option // If the target type was optional coming in, then the result must be optional going out. if isOpt || optional { - return decls.NewAbstractType("optional", resultType) + return decls.NewOptionalType(resultType) } return resultType } diff --git a/checker/checker_test.go b/checker/checker_test.go index 37e144a4..89d06570 100644 --- a/checker/checker_test.go +++ b/checker/checker_test.go @@ -2073,7 +2073,7 @@ _&&_(_==_(list~type(list(dyn))^list, in: `has(a.dynamic)`, env: testEnv{ idents: []*exprpb.Decl{ - decls.NewVar("a", decls.NewAbstractType("optional", decls.Dyn)), + decls.NewVar("a", decls.NewOptionalType(decls.Dyn)), }, }, outType: decls.Bool, @@ -2083,7 +2083,7 @@ _&&_(_==_(list~type(list(dyn))^list, in: `has(a.?b.c)`, env: testEnv{ idents: []*exprpb.Decl{ - decls.NewVar("a", decls.NewAbstractType("optional", decls.NewMapType(decls.String, decls.Dyn))), + decls.NewVar("a", decls.NewOptionalType(decls.NewMapType(decls.String, decls.Dyn))), }, }, outType: decls.Bool,