You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by em...@apache.org on 2022/08/03 15:19:30 UTC
[groovy] branch master updated: GROOVY-10713: visit `catch` parameter and `for`-each parameter (no init)
This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new c23e7caf8b GROOVY-10713: visit `catch` parameter and `for`-each parameter (no init)
c23e7caf8b is described below
commit c23e7caf8b1d8c8e5a6b8f087b6db3be3ddde362
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Wed Aug 3 09:48:10 2022 -0500
GROOVY-10713: visit `catch` parameter and `for`-each parameter (no init)
---
.../groovy/ast/ClassCodeExpressionTransformer.java | 8 +-------
.../org/codehaus/groovy/ast/ClassCodeVisitorSupport.java | 9 +++------
.../java/org/codehaus/groovy/ast/CodeVisitorSupport.java | 13 ++++++-------
.../java/org/codehaus/groovy/ast/GroovyCodeVisitor.java | 14 +++++++++++---
4 files changed, 21 insertions(+), 23 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/ast/ClassCodeExpressionTransformer.java b/src/main/java/org/codehaus/groovy/ast/ClassCodeExpressionTransformer.java
index 0073c54823..b267210525 100644
--- a/src/main/java/org/codehaus/groovy/ast/ClassCodeExpressionTransformer.java
+++ b/src/main/java/org/codehaus/groovy/ast/ClassCodeExpressionTransformer.java
@@ -116,11 +116,7 @@ public abstract class ClassCodeExpressionTransformer extends ClassCodeVisitorSup
@Override
public void visitForLoop(final ForStatement stmt) {
- Parameter variable = stmt.getVariable();
- visitAnnotations(variable);
- Expression init = variable.getInitialExpression();
- if (init != null) variable.setInitialExpression(transform(init));
-
+ visitAnnotations(stmt.getVariable()); // "for(T x : y)" or "for(x in y)"
stmt.setCollectionExpression(transform(stmt.getCollectionExpression()));
stmt.getLoopBlock().visit(this);
}
@@ -140,8 +136,6 @@ public abstract class ClassCodeExpressionTransformer extends ClassCodeVisitorSup
@Override
public void visitSwitch(final SwitchStatement stmt) {
stmt.setExpression(transform(stmt.getExpression()));
- afterSwitchConditionExpressionVisited(stmt);
-
for (CaseStatement caseStatement : stmt.getCaseStatements()) {
caseStatement.visit(this);
}
diff --git a/src/main/java/org/codehaus/groovy/ast/ClassCodeVisitorSupport.java b/src/main/java/org/codehaus/groovy/ast/ClassCodeVisitorSupport.java
index e6938f172d..083bae6389 100644
--- a/src/main/java/org/codehaus/groovy/ast/ClassCodeVisitorSupport.java
+++ b/src/main/java/org/codehaus/groovy/ast/ClassCodeVisitorSupport.java
@@ -39,7 +39,6 @@ import org.codehaus.groovy.ast.stmt.ThrowStatement;
import org.codehaus.groovy.ast.stmt.TryCatchStatement;
import org.codehaus.groovy.ast.stmt.WhileStatement;
import org.codehaus.groovy.control.SourceUnit;
-import org.codehaus.groovy.control.messages.SyntaxErrorMessage;
import org.codehaus.groovy.syntax.SyntaxException;
import org.codehaus.groovy.transform.ErrorCollecting;
@@ -191,6 +190,7 @@ public abstract class ClassCodeVisitorSupport extends CodeVisitorSupport impleme
@Override
public void visitCatchStatement(CatchStatement statement) {
visitStatement(statement);
+ visitAnnotations(statement.getVariable());
super.visitCatchStatement(statement);
}
@@ -269,10 +269,7 @@ public abstract class ClassCodeVisitorSupport extends CodeVisitorSupport impleme
protected abstract SourceUnit getSourceUnit();
@Override
- public void addError(String error, ASTNode node) {
- SourceUnit source = getSourceUnit();
- source.getErrorCollector().addErrorAndContinue(
- new SyntaxErrorMessage(new SyntaxException(error + '\n', node.getLineNumber(), node.getColumnNumber(), node.getLastLineNumber(), node.getLastColumnNumber()), source)
- );
+ public void addError(final String error, final ASTNode node) {
+ getSourceUnit().addErrorAndContinue(new SyntaxException(error + '\n', node));
}
}
diff --git a/src/main/java/org/codehaus/groovy/ast/CodeVisitorSupport.java b/src/main/java/org/codehaus/groovy/ast/CodeVisitorSupport.java
index 542864e9ce..e8f93808c8 100644
--- a/src/main/java/org/codehaus/groovy/ast/CodeVisitorSupport.java
+++ b/src/main/java/org/codehaus/groovy/ast/CodeVisitorSupport.java
@@ -141,8 +141,8 @@ public abstract class CodeVisitorSupport implements GroovyCodeVisitor {
}
@Override
- public void visitEmptyStatement(final EmptyStatement statement) {
- // noop
+ public void visitCatchStatement(CatchStatement statement) {
+ statement.getCode().visit(this);
}
@Override
@@ -184,6 +184,10 @@ public abstract class CodeVisitorSupport implements GroovyCodeVisitor {
statement.getExpression().visit(this);
}
+ @Override
+ public void visitEmptyStatement(final EmptyStatement statement) {
+ }
+
//--------------------------------------------------------------------------
@Override
@@ -364,11 +368,6 @@ public abstract class CodeVisitorSupport implements GroovyCodeVisitor {
visitListOfExpressions(expression.getValues());
}
- @Override
- public void visitCatchStatement(CatchStatement statement) {
- statement.getCode().visit(this);
- }
-
@Override
public void visitArgumentlistExpression(ArgumentListExpression expression) {
visitTupleExpression(expression);
diff --git a/src/main/java/org/codehaus/groovy/ast/GroovyCodeVisitor.java b/src/main/java/org/codehaus/groovy/ast/GroovyCodeVisitor.java
index a2f9c5776f..c54607fd50 100644
--- a/src/main/java/org/codehaus/groovy/ast/GroovyCodeVisitor.java
+++ b/src/main/java/org/codehaus/groovy/ast/GroovyCodeVisitor.java
@@ -122,7 +122,9 @@ public interface GroovyCodeVisitor {
}
default void visit(final Statement statement) {
- if (statement != null) statement.visit(this);
+ if (statement != null) {
+ statement.visit(this);
+ }
}
//--------------------------------------------------------------------------
@@ -206,10 +208,16 @@ public interface GroovyCodeVisitor {
}
default void visitListOfExpressions(final List<? extends Expression> list) {
- if (list != null) list.forEach(expr -> expr.visit(this));
+ if (list != null) {
+ for (Expression expr: list) {
+ expr.visit(this);
+ }
+ }
}
default void visit(final Expression expression) {
- if (expression != null) expression.visit(this);
+ if (expression != null) {
+ expression.visit(this);
+ }
}
}