[
https://issues.apache.org/jira/browse/GROOVY-8184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17714331#comment-17714331
]
Eric Milles commented on GROOVY-8184:
-------------------------------------
You can add "import some.pack.SomeJavaClass" or write
"@SomeAnnotation(SomeJavaClass.class)" to work around the chicken-egg problem
that exists with the bi-directional dependencies. The
[JavaAwareCompilationUnit|https://github.com/apache/groovy/blob/master/src/main/java/org/codehaus/groovy/tools/javac/JavaAwareCompilationUnit.java]
does know about the java sources being compiled but does not know what classes
are declared within.
> Class constant withouts .class in annotation value resolves as
> VariableExpression
> ---------------------------------------------------------------------------------
>
> Key: GROOVY-8184
> URL: https://issues.apache.org/jira/browse/GROOVY-8184
> Project: Groovy
> Issue Type: Bug
> Components: Stub generator / Joint compiler
> Reporter: Pavel Novichenko
> Assignee: Eric Milles
> Priority: Major
> Labels: annotations
>
> If I write class name of java class in same package without .class inside
> annotation definition, expresson not resolves as ClassExpresson, but
> VariableExpression. In stub generation VariableExpression represents as only
> name of class whithout .class and leading to incorrect java file.
> Example:
> groovy:
> {code}
> @SomeAnnotation(SomeJavaClass)
> class Foo {}
> {code}
> generated stub:
> {code}
> @SomeAnnotation(SomeJavaClass) //should be
> @SomeAnnotation(SomeJavaClass.class)
> public class Foo {}
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)