Annotation cycles
David M. Lloyd
david.lloyd at redhat.com
Tue Apr 17 08:59:50 PDT 2012
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
>
>
--
- DML
More information about the compiler-dev
mailing list