JDK 12 RFR of JDK-8212081: AnnotatedType.toString implementation don't print annotations on embedded types

joe darcy joe.darcy at oracle.com
Mon Oct 15 06:11:32 UTC 2018


Follow-up fix developed; details below.

On 10/11/2018 12:12 PM, joe darcy wrote:
> Hi Werner,
>
> On 10/10/2018 1:23 PM, Werner Dietl wrote:
>> Hi Joe, all,
>>
>> the logic looks good to me.
>>
>> In the tests I'm wondering whether to include an annotated wildcard
>> bound. There is:
>>
>> 307         public @AnnotType(11) Set<@AnnotType(13) ? extends Number>
>> fooNumberSet2() {return null;}
>>
>> but nothing like
>>
>> Set<? extends @AnnotType(13) Number> fooNumberSet2() {return null;}
>>
>> I wouldn't expect problems for this, but a test would exercise some of
>> the code that gets added.
>
> You were correct to probe at the bounds on the wildcard components; 
> the code that was reviewed and pushed does not print annotations on 
> the bounds.
>
> I'll work on an update to handle this and similar cases where there 
> are embedded types that could have annotations.
>

Please review the fix for

     JDK-8212081 : AnnotatedType.toString implementation don't print 
annotations on embedded types
     http://cr.openjdk.java.net/~darcy/8212081.1/

A few notes on the test, the main structural change is that information 
about the expected properties of the toString form of the AnnotatedType 
of a method's return type is stored in a *declaration annotation* on the 
method. The presence of the expected number of type annotations on the 
full string of the AnnotatedType can thus be directly tested.

Thanks,

-Joe


More information about the core-libs-dev mailing list