You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2022/03/08 15:27:29 UTC
[groovy] branch GROOVY_4_0_X updated: GROOVY-10520: Incorrect line numbers for Closure classes in AstNode
This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch GROOVY_4_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/GROOVY_4_0_X by this push:
new 880b913 GROOVY-10520: Incorrect line numbers for Closure classes in AstNode
880b913 is described below
commit 880b9138d250008b78f677f7433f728d45a5acf0
Author: Daniel Sun <su...@apache.org>
AuthorDate: Tue Mar 8 22:13:07 2022 +0800
GROOVY-10520: Incorrect line numbers for Closure classes in AstNode
---
src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java | 6 +++++-
src/test/org/codehaus/groovy/ast/LineColumnCheck.txt | 8 ++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java b/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
index 35d2b8f..83644bf 100644
--- a/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
+++ b/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
@@ -4131,11 +4131,15 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> {
? this.visitFormalParameterList(ctx.formalParameterList())
: null;
+ BlockStatement code = this.visitBlockStatementsOpt(ctx.blockStatementsOpt());
if (!asBoolean(ctx.ARROW())) {
parameters = Parameter.EMPTY_ARRAY;
+
+ if (code.isEmpty()) {
+ configureAST(code, ctx);
+ }
}
- Statement code = this.visitBlockStatementsOpt(ctx.blockStatementsOpt());
ClosureExpression result = configureAST(new ClosureExpression(parameters, code), ctx);
visitingClosureCount -= 1;
diff --git a/src/test/org/codehaus/groovy/ast/LineColumnCheck.txt b/src/test/org/codehaus/groovy/ast/LineColumnCheck.txt
index 4148608..4bc8d6f 100644
--- a/src/test/org/codehaus/groovy/ast/LineColumnCheck.txt
+++ b/src/test/org/codehaus/groovy/ast/LineColumnCheck.txt
@@ -171,6 +171,14 @@ var = f{closure}
:::[MethodCallExpression,(1:7),(1:17)];
[ConstantExpression,(1:7),(1:8)][ArgumentListExpression,(1:8),(1:17)][ClosureExpression,(1:8),(1:17)]
+
+###closureExpressionWithEmptyBlockStatement:::
+f{
+
+}
+:::[MethodCallExpression,(1:1),(3:2)];
+[ConstantExpression,(1:1),(1:2)][ArgumentListExpression,(1:2),(3:2)][ClosureExpression,(1:2),(3:2)][BlockStatement,(1:2),(3:2)]
+
###ArrayExpressionD1:::
def array = new int[1]
:::[ArrayExpression,(1:13),(1:23)][ClassNode,(1:17),(1:20)][ConstantExpression,(1:21),(1:22)]