You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2017/04/11 01:38:03 UTC
[27/50] groovy git commit: Minor refactoring
Minor refactoring
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/4e3b987a
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/4e3b987a
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/4e3b987a
Branch: refs/heads/master
Commit: 4e3b987aae15597858825bad4b58b3bf1217ce05
Parents: 35ec215
Author: sunlan <su...@apache.org>
Authored: Sat Jan 28 22:29:29 2017 +0800
Committer: sunlan <su...@apache.org>
Committed: Sat Jan 28 22:29:29 2017 +0800
----------------------------------------------------------------------
.../groovy/classgen/asm/StatementWriter.java | 18 ++++++++++--------
.../apache/groovy/parser/antlr4/AstBuilder.java | 15 +--------------
2 files changed, 11 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/4e3b987a/src/main/org/codehaus/groovy/classgen/asm/StatementWriter.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/classgen/asm/StatementWriter.java b/src/main/org/codehaus/groovy/classgen/asm/StatementWriter.java
index c36916f..719c4e9 100644
--- a/src/main/org/codehaus/groovy/classgen/asm/StatementWriter.java
+++ b/src/main/org/codehaus/groovy/classgen/asm/StatementWriter.java
@@ -150,6 +150,14 @@ public class StatementWriter {
compileStack.pop();
}
+ private void visitExpressionOfLoopStatement(Expression expression) {
+ if (expression instanceof ClosureListExpression) {
+ ((ClosureListExpression) expression).getExpressions().forEach(this::visitExpressionOrStatement);
+ } else {
+ visitExpressionOrStatement(expression);
+ }
+ }
+
protected void writeForLoopWithClosureList(ForStatement loop) {
controller.getAcg().onLineNumber(loop,"visitForLoop");
writeStatementLabel(loop);
@@ -168,13 +176,7 @@ public class StatementWriter {
// visit init
for (int i = 0; i < condIndex; i++) {
- Expression expression = expressions.get(i);
-
- if (expression instanceof ClosureListExpression) {
- ((ClosureListExpression) expression).getExpressions().forEach(this::visitExpressionOrStatement);
- } else {
- visitExpressionOrStatement(expression);
- }
+ visitExpressionOfLoopStatement(expressions.get(i));
}
Label continueLabel = controller.getCompileStack().getContinueLabel();
@@ -199,7 +201,7 @@ public class StatementWriter {
// visit increment
mv.visitLabel(continueLabel);
for (int i = condIndex + 1; i < size; i++) {
- visitExpressionOrStatement(expressions.get(i));
+ visitExpressionOfLoopStatement(expressions.get(i));
}
// jump to test the condition again
http://git-wip-us.apache.org/repos/asf/groovy/blob/4e3b987a/subprojects/groovy-parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
----------------------------------------------------------------------
diff --git a/subprojects/groovy-parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java b/subprojects/groovy-parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
index 5ba04de..39eb932 100644
--- a/subprojects/groovy-parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
+++ b/subprojects/groovy-parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/AstBuilder.java
@@ -443,20 +443,7 @@ public class AstBuilder extends GroovyParserBaseVisitor<Object> implements Groov
if (expressionList.size() == 1) {
return this.configureAST(expressionList.get(0), ctx);
} else {
- Statement code =
- this.createBlockStatement(
- expressionList.stream()
- .map(e -> this.configureAST(new ExpressionStatement(e), e))
- .collect(Collectors.toList()));
- return this.configureAST(
- new MethodCallExpression(
- this.configureAST(
- new ClosureExpression(Parameter.EMPTY_ARRAY, code),
- ctx),
- CALL_STR,
- new ArgumentListExpression()
- ),
- ctx);
+ return this.configureAST(new ClosureListExpression(expressionList), ctx);
}
}