Skip to content

Commit e694255

Browse files
l46kokcopybara-github
authored andcommitted
Change SubexpressionOptimizer to leverage mutable exprs
PiperOrigin-RevId: 627065192
1 parent 8684d8f commit e694255

5 files changed

Lines changed: 192 additions & 215 deletions

File tree

common/src/main/java/dev/cel/common/CelSource.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,12 @@ public Builder clearMacroCall(long exprId) {
279279
return this;
280280
}
281281

282+
@CanIgnoreReturnValue
283+
public Builder clearMacroCalls() {
284+
this.macroCalls.clear();
285+
return this;
286+
}
287+
282288
public ImmutableSet<Extension> getExtensions() {
283289
return extensions.build();
284290
}

optimizer/src/main/java/dev/cel/optimizer/AstMutator.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,9 +242,8 @@ public CelMutableAst renumberIdsConsecutively(CelMutableAst mutableAst) {
242242
* @param newResultPrefix Prefix to use for new comprehensin result identifier names.
243243
*/
244244
public MangledComprehensionAst mangleComprehensionIdentifierNames(
245-
CelAbstractSyntaxTree ast, String newIterVarPrefix, String newResultPrefix) {
246-
CelNavigableMutableAst navigableMutableAst =
247-
CelNavigableMutableAst.fromAst(CelMutableAst.fromCelAst(ast));
245+
CelMutableAst ast, String newIterVarPrefix, String newResultPrefix) {
246+
CelNavigableMutableAst navigableMutableAst = CelNavigableMutableAst.fromAst(ast);
248247
Predicate<CelNavigableMutableExpr> comprehensionIdentifierPredicate = x -> true;
249248
comprehensionIdentifierPredicate =
250249
comprehensionIdentifierPredicate

optimizer/src/main/java/dev/cel/optimizer/optimizers/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,10 @@ java_library(
4646
"//common",
4747
"//common:compiler_common",
4848
"//common/ast",
49+
"//common/ast:mutable_ast",
4950
"//common/navigation",
5051
"//common/navigation:common",
52+
"//common/navigation:mutable_navigation",
5153
"//common/types",
5254
"//common/types:type_providers",
5355
"//extensions:optional_library",

0 commit comments

Comments
 (0)