Repository: groovy
Updated Branches:
  refs/heads/GROOVY_2_4_X 54325665f -> 3ea74e979


Minor refactoring

(cherry picked from commit 3209d53)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/3ea74e97
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/3ea74e97
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/3ea74e97

Branch: refs/heads/GROOVY_2_4_X
Commit: 3ea74e9792317d304e48eb4feda1113d05b8656a
Parents: 5432566
Author: sunlan <[email protected]>
Authored: Sat Aug 26 13:14:41 2017 +0800
Committer: sunlan <[email protected]>
Committed: Sat Aug 26 13:49:40 2017 +0800

----------------------------------------------------------------------
 .../groovy/classgen/AsmClassGenerator.java      | 53 ++++++++++++++++----
 1 file changed, 42 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/3ea74e97/src/main/org/codehaus/groovy/classgen/AsmClassGenerator.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/classgen/AsmClassGenerator.java 
b/src/main/org/codehaus/groovy/classgen/AsmClassGenerator.java
index 2d2ea65..f7e3527 100644
--- a/src/main/org/codehaus/groovy/classgen/AsmClassGenerator.java
+++ b/src/main/org/codehaus/groovy/classgen/AsmClassGenerator.java
@@ -36,7 +36,42 @@ import org.codehaus.groovy.ast.ModuleNode;
 import org.codehaus.groovy.ast.PackageNode;
 import org.codehaus.groovy.ast.Parameter;
 import org.codehaus.groovy.ast.PropertyNode;
-import org.codehaus.groovy.ast.expr.*;
+import org.codehaus.groovy.ast.expr.AnnotationConstantExpression;
+import org.codehaus.groovy.ast.expr.ArgumentListExpression;
+import org.codehaus.groovy.ast.expr.ArrayExpression;
+import org.codehaus.groovy.ast.expr.AttributeExpression;
+import org.codehaus.groovy.ast.expr.BinaryExpression;
+import org.codehaus.groovy.ast.expr.BitwiseNegationExpression;
+import org.codehaus.groovy.ast.expr.BooleanExpression;
+import org.codehaus.groovy.ast.expr.CastExpression;
+import org.codehaus.groovy.ast.expr.ClassExpression;
+import org.codehaus.groovy.ast.expr.ClosureExpression;
+import org.codehaus.groovy.ast.expr.ClosureListExpression;
+import org.codehaus.groovy.ast.expr.ConstantExpression;
+import org.codehaus.groovy.ast.expr.ConstructorCallExpression;
+import org.codehaus.groovy.ast.expr.DeclarationExpression;
+import org.codehaus.groovy.ast.expr.EmptyExpression;
+import org.codehaus.groovy.ast.expr.Expression;
+import org.codehaus.groovy.ast.expr.FieldExpression;
+import org.codehaus.groovy.ast.expr.GStringExpression;
+import org.codehaus.groovy.ast.expr.ListExpression;
+import org.codehaus.groovy.ast.expr.MapEntryExpression;
+import org.codehaus.groovy.ast.expr.MapExpression;
+import org.codehaus.groovy.ast.expr.MethodCallExpression;
+import org.codehaus.groovy.ast.expr.MethodPointerExpression;
+import org.codehaus.groovy.ast.expr.NotExpression;
+import org.codehaus.groovy.ast.expr.PostfixExpression;
+import org.codehaus.groovy.ast.expr.PrefixExpression;
+import org.codehaus.groovy.ast.expr.PropertyExpression;
+import org.codehaus.groovy.ast.expr.RangeExpression;
+import org.codehaus.groovy.ast.expr.SpreadExpression;
+import org.codehaus.groovy.ast.expr.SpreadMapExpression;
+import org.codehaus.groovy.ast.expr.StaticMethodCallExpression;
+import org.codehaus.groovy.ast.expr.TernaryExpression;
+import org.codehaus.groovy.ast.expr.TupleExpression;
+import org.codehaus.groovy.ast.expr.UnaryMinusExpression;
+import org.codehaus.groovy.ast.expr.UnaryPlusExpression;
+import org.codehaus.groovy.ast.expr.VariableExpression;
 import org.codehaus.groovy.ast.stmt.AssertStatement;
 import org.codehaus.groovy.ast.stmt.BlockStatement;
 import org.codehaus.groovy.ast.stmt.BreakStatement;
@@ -200,15 +235,7 @@ public class AsmClassGenerator extends ClassGenerator {
                 PackageNode packageNode = classNode.getPackage();
                 if (packageNode != null) {
                     // pull them out of package node but treat them like they 
were on class node
-                    for (AnnotationNode an : packageNode.getAnnotations()) {
-                        // skip built-in properties
-                        if (an.isBuiltIn()) continue;
-                        if (an.hasSourceRetention()) continue;
-
-                        AnnotationVisitor av = getAnnotationVisitor(classNode, 
an, cv);
-                        visitAnnotationAttributes(an, av);
-                        av.visitEnd();
-                    }
+                    visitAnnotations(classNode, packageNode, cv);
                 }
                 cv.visitEnd();
                 return;
@@ -1848,7 +1875,11 @@ public class AsmClassGenerator extends ClassGenerator {
     }
 
     private void visitAnnotations(AnnotatedNode targetNode, Object visitor) {
-        for (AnnotationNode an : targetNode.getAnnotations()) {
+        visitAnnotations(targetNode, targetNode, visitor);
+    }
+
+    private void visitAnnotations(AnnotatedNode targetNode, AnnotatedNode 
sourceNode, Object visitor) {
+        for (AnnotationNode an : sourceNode.getAnnotations()) {
             // skip built-in properties
             if (an.isBuiltIn()) continue;
             if (an.hasSourceRetention()) continue;

Reply via email to