Skip to content

Commit

Permalink
Fix optional type's name to not collide with optional namespace
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 585742714
  • Loading branch information
l46kok authored and copybara-github committed Nov 27, 2023
1 parent 0834708 commit 5776206
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 37 deletions.
12 changes: 6 additions & 6 deletions checker/src/test/resources/optionalErrors.baseline
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
Source: {?'key': 'hi'}
=====>
ERROR: test_location:1:10: expected type 'optional(string)' but found 'string'
ERROR: test_location:1:10: expected type 'optional_type(string)' but found 'string'
| {?'key': 'hi'}
| .........^

Source: [?'value']
=====>
ERROR: test_location:1:3: expected type 'optional(string)' but found 'string'
| [?'value']
| ..^
ERROR: test_location:1:3: expected type 'optional_type(string)' but found 'string'
| [?'value']
| ..^

Source: TestAllTypes{?single_int32: 1}
=====>
ERROR: test_location:1:29: expected type 'optional(int)' but found 'int'
ERROR: test_location:1:29: expected type 'optional_type(int)' but found 'int'
| TestAllTypes{?single_int32: 1}
| ............................^

Expand All @@ -23,4 +23,4 @@ declare a {
=====>
ERROR: <input>:1:1: unsupported optional field selection
| a.?b
| ^
| ^
52 changes: 26 additions & 26 deletions checker/src/test/resources/optionals.baseline
Original file line number Diff line number Diff line change
Expand Up @@ -6,47 +6,47 @@ declare a {
_?._(
a~map(string, string)^a,
"b"
)~optional(string)^select_optional_field
)~optional_type(string)^select_optional_field

Source: x.y
declare x {
value optional(map(string, string))
value optional_type(map(string, string))
}
=====>
x~optional(map(string, string))^x.y~optional(string)
x~optional_type(map(string, string))^x.y~optional_type(string)

Source: {?'nested': x.b}
declare x {
value optional(map(string, string))
value optional_type(map(string, string))
}
=====>
{
?"nested"~string:x~optional(map(string, string))^x.b~optional(string)
?"nested"~string:x~optional_type(map(string, string))^x.b~optional_type(string)
}~map(string, string)

Source: d.dynamic
declare d {
value optional(dyn)
value optional_type(dyn)
}
=====>
d~optional(dyn)^d.dynamic~optional(dyn)
d~optional_type(dyn)^d.dynamic~optional_type(dyn)

Source: has(d.dynamic)
declare d {
value optional(dyn)
value optional_type(dyn)
}
=====>
d~optional(dyn)^d.dynamic~test-only~~bool
d~optional_type(dyn)^d.dynamic~test-only~~bool

Source: has(e.?b.c)
declare e {
value optional(map(string, dyn))
value optional_type(map(string, dyn))
}
=====>
_?._(
e~optional(map(string, dyn))^e,
e~optional_type(map(string, dyn))^e,
"b"
)~optional(dyn)^select_optional_field.c~test-only~~bool
)~optional_type(dyn)^select_optional_field.c~test-only~~bool

Source: {?'key': {'a': 'b'}.?value}
=====>
Expand All @@ -56,7 +56,7 @@ Source: {?'key': {'a': 'b'}.?value}
"a"~string:"b"~string
}~map(string, string),
"value"
)~optional(string)^select_optional_field
)~optional_type(string)^select_optional_field
}~map(string, string)

Source: {?'key': {'a': 'b'}.?value}.key
Expand All @@ -67,7 +67,7 @@ Source: {?'key': {'a': 'b'}.?value}.key
"a"~string:"b"~string
}~map(string, string),
"value"
)~optional(string)^select_optional_field
)~optional_type(string)^select_optional_field
}~map(string, string).key~string

Source: TestAllTypes{?single_int32: {}.?i}
Expand All @@ -76,46 +76,46 @@ TestAllTypes{
?single_int32:_?._(
{}~map(dyn, int),
"i"
)~optional(int)^select_optional_field
)~optional_type(int)^select_optional_field
}~dev.cel.testing.testdata.proto3.TestAllTypes^dev.cel.testing.testdata.proto3.TestAllTypes

Source: [?a, ?b, 'world']
declare a {
value optional(string)
value optional_type(string)
}
declare b {
value optional(string)
value optional_type(string)
}
=====>
[
?a~optional(string)^a,
?b~optional(string)^b,
?a~optional_type(string)^a,
?b~optional_type(string)^b,
"world"~string
]~list(string)

Source: [?a, ?b, 2]
declare a {
value optional(string)
value optional_type(string)
}
declare b {
value optional(string)
value optional_type(string)
}
=====>
[
?a~optional(string)^a,
?b~optional(string)^b,
?a~optional_type(string)^a,
?b~optional_type(string)^b,
2~int
]~list(dyn)

Source: {?'str':a, 2:3}
declare a {
value optional(string)
value optional_type(string)
}
declare b {
value optional(string)
value optional_type(string)
}
=====>
{
?"str"~string:a~optional(string)^a,
?"str"~string:a~optional_type(string)^a,
2~int:3~int
}~map(dyn, dyn)
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
@Immutable
public abstract class OptionalType extends CelType {

public static final String NAME = "optional";
public static final String NAME = "optional_type";

@Override
public CelKind kind() {
Expand Down
4 changes: 2 additions & 2 deletions common/src/test/java/dev/cel/common/types/CelTypesTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ public void createOptionalType() {
Type optionalType = CelTypes.createOptionalType(CelTypes.INT64);

assertThat(optionalType.hasAbstractType()).isTrue();
assertThat(optionalType.getAbstractType().getName()).isEqualTo("optional");
assertThat(optionalType.getAbstractType().getName()).isEqualTo("optional_type");
assertThat(optionalType.getAbstractType().getParameterTypesCount()).isEqualTo(1);
assertThat(optionalType.getAbstractType().getParameterTypes(0)).isEqualTo(CelTypes.INT64);
}
Expand Down Expand Up @@ -146,7 +146,7 @@ private enum FormatTestCases {
CelTypes.createFunctionType(
SimpleType.INT, ImmutableList.of(SimpleType.STRING, SimpleType.UINT)),
"(string, uint) -> int"),
OPTIONAL(OptionalType.create(SimpleType.INT), "optional(int)"),
OPTIONAL(OptionalType.create(SimpleType.INT), "optional_type(int)"),
MAP(MapType.create(SimpleType.INT, SimpleType.STRING), "map(int, string)"),
TYPE(
TypeType.create(MapType.create(SimpleType.STRING, SimpleType.STRING)),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public class OptionalTypeTest {
public void createOptionalType_success() {
OptionalType optionalType = OptionalType.create(SimpleType.STRING);

assertThat(optionalType.name()).isEqualTo("optional");
assertThat(optionalType.name()).isEqualTo("optional_type");
assertThat(optionalType.kind()).isEqualTo(CelKind.OPAQUE);
assertThat(optionalType.parameters()).containsExactly(SimpleType.STRING);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1018,7 +1018,9 @@ public void optionalMapCreation_valueIsNonOptional_throws() {
CelValidationException e =
assertThrows(CelValidationException.class, () -> cel.compile("{?'hi': 'world'}").getAst());

assertThat(e).hasMessageThat().contains("expected type 'optional(string)' but found 'string'");
assertThat(e)
.hasMessageThat()
.contains("expected type 'optional_type(string)' but found 'string'");
}

@Test
Expand Down

0 comments on commit 5776206

Please sign in to comment.