You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (Jira)" <ji...@apache.org> on 2022/07/05 16:40:00 UTC

[jira] [Updated] (GROOVY-8814) AnnotationCollector not removed during stub generation

     [ https://issues.apache.org/jira/browse/GROOVY-8814?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Eric Milles updated GROOVY-8814:
--------------------------------
    Labels: annotations  (was: )

> AnnotationCollector not removed during stub generation
> ------------------------------------------------------
>
>                 Key: GROOVY-8814
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8814
>             Project: Groovy
>          Issue Type: Bug
>          Components: Stub generator / Joint compiler
>    Affects Versions: 2.4.15, 2.5.2
>            Reporter: Leonard Brünings
>            Priority: Major
>              Labels: annotations
>         Attachments: groovy-stubs-annotation.zip
>
>
> The Groovy Stubs generator leaves the AnnotationCollectors in the generator stubs sources instead of replacing them with the collected annotations, which in turn causes javac to fail, since they are not valid annotations. (Related to GROOVY-7056)
> {{[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project example: Compilation failure}}
>  {{[ERROR] /C:/dev/github/groovy-stubs-annotation/target/generated-sources/groovy-stubs/main/org/example/Service.java:[19,18] incompatible types: groovy.transform.CompileDynamic cannot be converted to java.lang.annotation.Annotation}}
> {code:title=Groovy Source}
> @CompileStatic
> class Service {
>   @CompileDynamic
>   List<String> dynamic() {
>     []
>   }
> }
> {code}
> gets transformed into
> {code:java|title=Generated Stub}
> @groovy.transform.CompileStatic() public class Service
>   extends java.lang.Object  implements
>     groovy.lang.GroovyObject {
> @groovy.transform.CompileDynamic() public  java.util.List<java.lang.String> dynamic() { return (java.util.List<java.lang.String>)null;}
> }
> {code}
>  
> See attached Project to reproduce
> For groovy 2.4.15: {{./mvnw clean install}}
> For groovy 2.5.2: {{./mvnw clean install -Pgroovy-2.5}}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)