receiver annotations

Jonathan Gibbons jonathan.gibbons at oracle.com
Wed Nov 28 17:38:18 PST 2012


Thanks, Alex,

Werner,

Where are the receiver annotations on the MethodSymbol?

-- Jon

On 11/28/2012 05:22 PM, Alex Buckley wrote:
> Annotations on type arguments of the receiver type are legal.
>
> For use cases, see the JSR 308 spec, appendix A.3, "Receivers" [1]. 
> (The text there has not changed in recent revisions of the spec.)
>
> Alex
>
> [1] 
> http://types.cs.washington.edu/jsr308/specification/java-annotation-design.html#type-annotation-use-cases
>
> On 11/28/2012 4:52 PM, Jonathan Gibbons wrote:
>> The following code is in one of the test cases in
>> /jdk8/type-annotation/langtools/test/tools/javac/annotations/typeAnnotations/newlocations. 
>>
>>
>>
>> Is this legal? It looks suspicious for having annotations on the type
>> parameter X in test3 and test 4.   Surely, the type of the receiver
>> should be  exactly as declared after "class", and not with any extra
>> annotations. What would be a use case where it makes sense to add
>> additional annotations in this location?
>>
>> -- Jon
>>
>> class Generic1<X> {
>>    void test1(Generic1<X> this) {}
>>    void test2(@A Generic1<X> this) {}
>>    void test3(Generic1<@A X> this) {}
>>    void test4(@A Generic1<@A X> this) {}
>> }



More information about the type-annotations-dev mailing list