From 47836339267abab5d6d66da1dd66d9e077d38a20 Mon Sep 17 00:00:00 2001 From: Jesse Costello-Good Date: Sun, 3 May 2026 22:54:08 -0700 Subject: [PATCH] Remove this. PiperOrigin-RevId: 909811264 --- .../soy/passes/ResolveExpressionTypesPass.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/java/src/com/google/template/soy/passes/ResolveExpressionTypesPass.java b/java/src/com/google/template/soy/passes/ResolveExpressionTypesPass.java index c50d875c6..c4f8c7fa8 100644 --- a/java/src/com/google/template/soy/passes/ResolveExpressionTypesPass.java +++ b/java/src/com/google/template/soy/passes/ResolveExpressionTypesPass.java @@ -631,7 +631,8 @@ private TypeNarrowingConditionVisitor createTypeNarrowingConditionVisitor() { } @CanIgnoreReturnValue - private boolean resolveImplicitExtern( + @Nullable + private ExternNode resolveImplicitExtern( VarRefNode ref, Supplier> paramTypes) { var defnDecl = ref.getDefnDecl(); ExternNode e = implicitExterns.get(defnDecl); @@ -639,7 +640,7 @@ private boolean resolveImplicitExtern( if (implicitExterns.containsKey(defnDecl)) { errorReporter.report(ref.getSourceLocation(), IMPLICIT_NOT_CALLED_ONCE); } - return false; + return null; } implicitExterns.put(defnDecl, null); ImmutableList impliedTypes = paramTypes.get(); @@ -674,7 +675,7 @@ private boolean resolveImplicitExtern( } e.getTypeNode().setResolvedType(newFnType, true); e.getVar().setType(newFnType); - return true; + return e; } @CanIgnoreReturnValue @@ -2448,12 +2449,16 @@ private boolean maybeSetExtern(FunctionNode node, List externT SoyType returnType = null; if (node.getNameExpr() instanceof VarRefNode varRefNode) { // Resolve implicit types for `liftedExtern(p1, ...)` - if (resolveImplicitExtern( - varRefNode, - () -> node.getParams().stream().map(ExprNode::getType).collect(toImmutableList()))) { + var resolvedExternNode = + resolveImplicitExtern( + varRefNode, + () -> + node.getParams().stream().map(ExprNode::getType).collect(toImmutableList())); + if (resolvedExternNode != null) { returnType = ((FunctionType) varRefNode.getType()).getReturnType(); node.setAllowedParamTypes( node.getParams().stream().map(ExprNode::getType).collect(toImmutableList())); + ref = Metadata.forAst(resolvedExternNode); } } if (returnType == null) {