Annotation cycles
Jonathan Gibbons
jonathan.gibbons at oracle.com
Tue Apr 17 09:24:40 PDT 2012
Creeping featurism, guys!
-- Jon
On 04/17/2012 08:59 AM, David M. Lloyd wrote:
> Arrays too?
>
> On 04/17/2012 10:42 AM, Roel Spilker wrote:
>> And while you're at it, we have another proposal ready to be pushed
>> allowing any annotation to be the result of an annotation method:
>>
>> @interface A {
>> Annotation value();
>> }
>>
>> See http://projectlombok.org/anyannotation/
>>
>> The required changes to both specs and implementation are very small.
>> All the work has bene done already, albeit based on the jdk7 source. the
>> only things missing are a JEP, TCK and updating it to the current state
>> of JDK8.
>>
>> Roel
>>
>> On Tue, Apr 17, 2012 at 2:59 PM, Jesse Glick <jesse.glick at oracle.com
>> <mailto:jesse.glick at oracle.com>> wrote:
>>
>> On 03/11/2012 06:19 PM, Joe Darcy wrote:
>>
>> two annotation types cannot be containers for each other because
>> that would create an illegal cyclic annotation type situation
>>
>>
>> So long as you are changing the language spec for annotations, why
>> not fix this longstanding irritation too (#6264216), which
>> arbitrarily prevents a rather wide range of use cases for
>> annotations? For example, move the cycle check from declaration time
>> to use time, so that the only rejected constructs would be genuinely
>> nonterminating cycles that no one would ever intentionally write:
>>
>> @interface A {
>> B[] bs() default {@B};
>> }
>> @interface B {
>> A as() default {@A};
>> }
>> @A class X {} // oops
>>
>> but so that legitimate cases compile:
>>
>> @interface A {
>> B[] bs() default {};
>> }
>> @interface B {
>> A[] as() default {};
>> }
>> @A(@B(@A)) class X {} // fine
>>
>>
>
>
More information about the compiler-dev
mailing list