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

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


The following commit(s) were added to refs/heads/master by this push:
     new b70f5a6  GROOVY-9632: Java 8 Type Param Annotation Not Generated in 
Byte Code (initial work for supporting local variables)
b70f5a6 is described below

commit b70f5a66de9cca74f92878a0be3022f2d481b942
Author: Paul King <pa...@asert.com.au>
AuthorDate: Tue May 18 09:52:50 2021 +1000

    GROOVY-9632: Java 8 Type Param Annotation Not Generated in Byte Code 
(initial work for supporting local variables)
---
 .../java/org/codehaus/groovy/classgen/ExtendedVerifier.java    | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java 
b/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java
index b2cc67d..9688dae 100644
--- a/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java
+++ b/src/main/java/org/codehaus/groovy/classgen/ExtendedVerifier.java
@@ -34,6 +34,7 @@ import org.codehaus.groovy.ast.expr.ClassExpression;
 import org.codehaus.groovy.ast.expr.DeclarationExpression;
 import org.codehaus.groovy.ast.expr.Expression;
 import org.codehaus.groovy.ast.expr.ListExpression;
+import org.codehaus.groovy.ast.expr.VariableExpression;
 import org.codehaus.groovy.ast.stmt.ReturnStatement;
 import org.codehaus.groovy.ast.stmt.Statement;
 import org.codehaus.groovy.ast.tools.ParameterUtils;
@@ -126,8 +127,13 @@ public class ExtendedVerifier extends 
ClassCodeVisitorSupport {
 
     @Override
     public void visitDeclarationExpression(DeclarationExpression expression) {
-        visitAnnotations(expression, LOCAL_VARIABLE_TARGET);
-        visitTypeAnnotations(expression.getType());
+        VariableExpression varx = expression.getVariableExpression();
+        if (varx != null) {
+            visitAnnotations(expression, LOCAL_VARIABLE_TARGET);
+            ClassNode type = varx.getType();
+            visitTypeAnnotations(type);
+            extractTypeUseAnnotations(expression.getAnnotations(), type, 
LOCAL_VARIABLE_TARGET);
+        }
     }
 
     @Override

Reply via email to