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 2019/12/12 00:57:58 UTC

[groovy] 01/02: Minor refactoring: remove redundant code

This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git

commit 1a5d2803107911adb1cdbcd02c5826d4414f38eb
Author: Daniel.Sun <re...@hotmail.com>
AuthorDate: Thu Dec 12 08:10:01 2019 +0800

    Minor refactoring: remove redundant code
---
 .../classgen/asm/sc/StaticTypesLambdaWriter.java   | 42 ++--------------------
 1 file changed, 3 insertions(+), 39 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesLambdaWriter.java b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesLambdaWriter.java
index 8f2fe0c..88da6c7 100644
--- a/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesLambdaWriter.java
+++ b/src/main/java/org/codehaus/groovy/classgen/asm/sc/StaticTypesLambdaWriter.java
@@ -34,7 +34,6 @@ import org.codehaus.groovy.ast.expr.ClosureExpression;
 import org.codehaus.groovy.ast.expr.ConstantExpression;
 import org.codehaus.groovy.ast.expr.Expression;
 import org.codehaus.groovy.ast.expr.LambdaExpression;
-import org.codehaus.groovy.ast.expr.MethodCallExpression;
 import org.codehaus.groovy.ast.expr.VariableExpression;
 import org.codehaus.groovy.ast.stmt.BlockStatement;
 import org.codehaus.groovy.ast.stmt.Statement;
@@ -186,18 +185,6 @@ public class StaticTypesLambdaWriter extends LambdaWriter implements AbstractFun
             }
 
             @Override
-            public void visitMethodCallExpression(MethodCallExpression call) {
-                if (!call.getMethodTarget().isStatic()) {
-                    Expression objectExpression = call.getObjectExpression();
-                    if (objectExpression instanceof VariableExpression && ENCLOSING_THIS.equals(((VariableExpression) objectExpression).getName())) {
-                        objectHolder.setObject(true);
-                    }
-                }
-
-                super.visitMethodCallExpression(call);
-            }
-
-            @Override
             protected SourceUnit getSourceUnit() {
                 return null;
             }
@@ -300,8 +287,7 @@ public class StaticTypesLambdaWriter extends LambdaWriter implements AbstractFun
         ConstructorNode constructorNode = addConstructor(expression, localVariableParameters, answer, createBlockStatementForConstructor(expression, outerClass, classNode));
         constructorNode.putNodeMetaData(IS_GENERATED_CONSTRUCTOR, Boolean.TRUE);
 
-        Parameter enclosingThisParameter = syntheticLambdaMethodNode.getParameters()[0];
-        new TransformationVisitor(answer, enclosingThisParameter).visitMethod(syntheticLambdaMethodNode);
+        new LambdaBodyTransformationVisitor(answer).visitMethod(syntheticLambdaMethodNode);
 
         return answer;
     }
@@ -443,13 +429,11 @@ public class StaticTypesLambdaWriter extends LambdaWriter implements AbstractFun
         return staticTypesClosureWriter.createClosureClass(expression, mods);
     }
 
-    private static final class TransformationVisitor extends ClassCodeVisitorSupport {
+    private static final class LambdaBodyTransformationVisitor extends ClassCodeVisitorSupport {
         private final CorrectAccessedVariableVisitor correctAccessedVariableVisitor;
-        private final Parameter enclosingThisParameter;
 
-        public TransformationVisitor(InnerClassNode icn, Parameter enclosingThisParameter) {
+        public LambdaBodyTransformationVisitor(InnerClassNode icn) {
             this.correctAccessedVariableVisitor = new CorrectAccessedVariableVisitor(icn);
-            this.enclosingThisParameter = enclosingThisParameter;
         }
 
         @Override
@@ -458,26 +442,6 @@ public class StaticTypesLambdaWriter extends LambdaWriter implements AbstractFun
         }
 
         @Override
-        public void visitMethodCallExpression(MethodCallExpression call) {
-            if (!call.getMethodTarget().isStatic()) {
-                Expression objectExpression = call.getObjectExpression();
-
-                if (objectExpression instanceof VariableExpression) {
-                    VariableExpression originalObjectExpression = (VariableExpression) objectExpression;
-                    if (null == originalObjectExpression.getAccessedVariable()) {
-                        VariableExpression thisVariable = new VariableExpression(enclosingThisParameter);
-                        thisVariable.setSourcePosition(originalObjectExpression);
-
-                        call.setObjectExpression(thisVariable);
-                        call.setImplicitThis(false);
-                    }
-                }
-            }
-
-            super.visitMethodCallExpression(call);
-        }
-
-        @Override
         protected SourceUnit getSourceUnit() {
             return null;
         }