Clarification on type use
Alex Buckley
alex.buckley at oracle.com
Thu Apr 3 20:07:09 UTC 2014
Yes. TYPE or TYPE_PARAMETER, actually.
On 4/3/2014 1:05 PM, Paul Benedict wrote:
> I once heard someone say that TYPE_USE is a parent of TYPE. Thus,
> wherever a valid TYPE can appear, a TYPE_USE would also be valid in the
> same place. Right/wrong?
>
>
> On Thu, Apr 3, 2014 at 2:27 PM, Alex Buckley <alex.buckley at oracle.com
> <mailto:alex.buckley at oracle.com>> wrote:
>
> Eric, I am on type-annotations-dev, you don't need to cc me every time.
>
> The TYPE_USE enum constant is specified in the javadoc for the
> j.l.a.ElementType enum type: "The constant TYPE_USE corresponds to
> the 15 type contexts in JLS 4.11, as well as to two declaration
> contexts: type declarations (including annotation type declarations)
> and type parameter declarations." ["15" should be "16", there's a
> bug out for that.]
>
> Alex
>
> On 4/3/2014 9:19 AM, Eric McCorkle wrote:
>
> The following is exerpted from the test
> langtools/test/tools/javac/__annotations/typeAnnotations/__TypeUseTarget.java:
>
> @A
> class TypeUseTarget<K extends @A Object> {
> ...
> }
>
> @Target(ElementType.TYPE_USE)
> @interface A { }
>
>
> The first use of A seems to be on the class TypeUseTarget. The
> result
> with the current implementation is that javac produces a
> RuntimeInvisibleAnnotations attribute for the class TypeUseTarget.
>
> But is this valid? I can't seem to find anything in the type
> annotations spec that suggests that an annotation with a
> TYPE_USE target
> can wind up being a regular annotation on a class (or interface).
>
>
>
>
> --
> Cheers,
> Paul
More information about the type-annotations-dev
mailing list