Repository: groovy Updated Branches: refs/heads/GROOVY_2_6_X c5c4b26be -> 76588d8df
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/76588d8d Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/76588d8d Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/76588d8d Branch: refs/heads/GROOVY_2_6_X Commit: 76588d8dfa8196aa397cb9913c9d9ac160e8e6ed Parents: c5c4b26 Author: sunlan <[email protected]> Authored: Sat Aug 26 13:14:41 2017 +0800 Committer: sunlan <[email protected]> Committed: Sat Aug 26 13:46:00 2017 +0800 ---------------------------------------------------------------------- .../groovy/classgen/AsmClassGenerator.java | 53 ++++++++++++++++---- 1 file changed, 42 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/groovy/blob/76588d8d/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 6f50af8..0e18e08 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; @@ -201,15 +236,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; @@ -1861,7 +1888,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;
