Skip to content

Commit 64d9420

Browse files
l46kokcopybara-github
authored andcommitted
Modernize Env and ExprChecker to use CelTypeProvider
PiperOrigin-RevId: 983383517
1 parent 13ad4ff commit 64d9420

8 files changed

Lines changed: 466 additions & 138 deletions

File tree

checker/BUILD.bazel

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
load("@rules_java//java:defs.bzl", "java_library")
2+
load("//:cel_android_rules.bzl", "cel_android_library")
23

34
package(
45
default_applicable_licenses = ["//:license"],
@@ -53,3 +54,8 @@ java_library(
5354
name = "standard_decl",
5455
exports = ["//checker/src/main/java/dev/cel/checker:standard_decl"],
5556
)
57+
58+
cel_android_library(
59+
name = "standard_decl_android",
60+
exports = ["//checker/src/main/java/dev/cel/checker:standard_decl_android"],
61+
)

checker/src/main/java/dev/cel/checker/BUILD.bazel

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
load("@rules_java//java:defs.bzl", "java_library")
2+
load("//:cel_android_rules.bzl", "cel_android_library")
23

34
package(
45
default_applicable_licenses = [
@@ -69,7 +70,6 @@ java_library(
6970
":checker_legacy_environment",
7071
":proto_type_mask",
7172
":standard_decl",
72-
":type_provider_legacy_impl",
7373
"//common:cel_ast",
7474
"//common:cel_descriptor_util",
7575
"//common:cel_function_decl",
@@ -235,3 +235,23 @@ java_library(
235235
"@maven//:com_google_guava_guava",
236236
],
237237
)
238+
239+
cel_android_library(
240+
name = "standard_decl_android",
241+
srcs = [
242+
"CelStandardDeclarations.java",
243+
],
244+
tags = [
245+
],
246+
deps = [
247+
"//common:cel_function_decl_android",
248+
"//common:cel_overload_decl_android",
249+
"//common:cel_var_decl_android",
250+
"//common:operator_android",
251+
"//common/types:cel_types_android",
252+
"//common/types:type_providers_android",
253+
"//common/types:types_android",
254+
"@maven//:com_google_errorprone_error_prone_annotations",
255+
"@maven_android//:com_google_guava_guava",
256+
],
257+
)

checker/src/main/java/dev/cel/checker/CelCheckerLegacyImpl.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,10 @@ public CelCheckerBuilder toCheckerBuilder() {
124124
.addFileTypes(fileDescriptors)
125125
.addProtoTypeMasks(protoTypeMasks);
126126

127+
if (typeProvider != null) {
128+
builder.setTypeProvider(typeProvider);
129+
}
130+
127131
if (expectedResultType.isPresent()) {
128132
builder.setResultType(expectedResultType.get());
129133
}
@@ -162,11 +166,13 @@ public void accept(EnvVisitor envVisitor) {
162166
private Env getEnv(Errors errors) {
163167
Env env;
164168
if (overriddenStandardDeclarations != null) {
165-
env = Env.standard(overriddenStandardDeclarations, errors, typeProvider, celOptions);
169+
env =
170+
Env.standard(
171+
overriddenStandardDeclarations, errors, celTypeProvider, typeProvider, celOptions);
166172
} else if (standardEnvironmentEnabled) {
167-
env = Env.standard(errors, typeProvider, celOptions);
173+
env = Env.standard(errors, celTypeProvider, typeProvider, celOptions);
168174
} else {
169-
env = Env.unconfigured(errors, typeProvider, celOptions);
175+
env = Env.unconfigured(errors, celTypeProvider, typeProvider, celOptions);
170176
}
171177
identDeclarations.forEach(env::add);
172178
functionDeclarations.forEach(env::add);
@@ -459,20 +465,13 @@ public CelCheckerLegacyImpl build() {
459465
messageTypeProvider = protoTypeMaskTypeProvider;
460466
}
461467

462-
TypeProvider legacyProvider = new TypeProviderLegacyImpl(messageTypeProvider);
463-
if (customTypeProvider != null) {
464-
legacyProvider =
465-
new TypeProvider.CombinedTypeProvider(
466-
ImmutableList.of(customTypeProvider, legacyProvider));
467-
}
468-
469468
return new CelCheckerLegacyImpl(
470469
celOptions,
471470
container,
472471
identDeclarationSet,
473472
functionDeclarations.build(),
474473
Optional.fromNullable(expectedResultType),
475-
legacyProvider,
474+
customTypeProvider,
476475
messageTypeProvider,
477476
standardEnvironmentEnabled,
478477
standardDeclarations,

0 commit comments

Comments
 (0)