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

Eric Milles updated GROOVY-10352:
---------------------------------
    Description: 
Consider the following:
{code:groovy}
@AnnotationCollector(mode = AnnotationCollectorMode.PREFER_EXPLICIT_MERGED)
@interface Example {
}
{code}

{code:groovy}
@Example
class Sample {
}
{code}

When the compiler accesses the annotations of a pre-compiled Example through 
the {{ClassNode}} Sample, the {{AnnotationCollector}} {{mode}} attribute is 
null.  This can be problematic for AST transformations which rely on the Groovy 
model for the annotation metadata.

In my real-world example, I had a {{record}} type, which has the implicit 
annotation {{RecordType}}.  When I added an explicit {{TupleConstructor}} 
annotation, the attributes were not merged, so I received duplicate processing 
of {{TupleConstructor}} and therefore duplicate constructors.

  was:
Consider the following:
{code:groovy}
@AnnotationCollector(mode = AnnotationCollectorMode.PREFER_EXPLICIT_MERGED)
@interface Example {
}
{code}

{code:groovy}
@Example
class Sample {
}
{code}

When the compiler accesses the annotations of Example through the {{ClassNode}} 
Sample, the {{AnnotationCollector}} {{mode}} attribute is null.  This can be 
problematic for AST transformations which rely on the Groovy model for the 
annotation metadata.

In my real-world example, I had a {{record}} type, which has the implicit 
annotation {{RecordType}}.  When I added an explicit {{TupleConstructor}} 
annotation, the attributes were not merged, so I received duplicate processing 
of {{TupleConstructor}} and therefore duplicate constructors.


> Java8 does not load enum values into annotation attributes
> ----------------------------------------------------------
>
>                 Key: GROOVY-10352
>                 URL: https://issues.apache.org/jira/browse/GROOVY-10352
>             Project: Groovy
>          Issue Type: Improvement
>          Components: Compiler
>    Affects Versions: 4.0.0-beta-2
>            Reporter: Eric Milles
>            Assignee: Eric Milles
>            Priority: Major
>
> Consider the following:
> {code:groovy}
> @AnnotationCollector(mode = AnnotationCollectorMode.PREFER_EXPLICIT_MERGED)
> @interface Example {
> }
> {code}
> {code:groovy}
> @Example
> class Sample {
> }
> {code}
> When the compiler accesses the annotations of a pre-compiled Example through 
> the {{ClassNode}} Sample, the {{AnnotationCollector}} {{mode}} attribute is 
> null.  This can be problematic for AST transformations which rely on the 
> Groovy model for the annotation metadata.
> In my real-world example, I had a {{record}} type, which has the implicit 
> annotation {{RecordType}}.  When I added an explicit {{TupleConstructor}} 
> annotation, the attributes were not merged, so I received duplicate 
> processing of {{TupleConstructor}} and therefore duplicate constructors.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to