You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2021/05/17 23:52:59 UTC
[groovy] branch master updated: GROOVY-9632: Java 8 Type Param
Annotation Not Generated in Byte Code (initial work for supporting local
variables)
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