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