some new bugs
Werner Dietl
wdietl at gmail.com
Sun Feb 24 13:09:06 PST 2013
I just pushed fixes for the first two issues.
I didn't add your test cases - I assume you/Jon will add them.
Thanks for discovering these bugs!
cu, WMD.
On Fri, Feb 22, 2013 at 6:25 PM, Werner Dietl <wdietl at gmail.com> wrote:
> We previously agreed that Joel will look into the tests that only fail
> for repeated type annotations.
>
> cu, WMD.
>
> On Fri, Feb 22, 2013 at 6:14 PM, Steve Sides <steve.sides at oracle.com> wrote:
>> yep.
>>
>> I had entered an earlier one,
>> 8008182 - Repeated type-annotation on type arg in method reference not
>> written to class file
>> and I'm wondering is that last one is related.
>>
>> -steve
>>
>>
>> On 2/22/2013 6:09 PM, Werner Dietl wrote:
>>
>> Thanks for these tests!
>> I'll work on fixing them in the type-annotations repository ASAP.
>>
>> cu, WMD.
>>
>> On Fri, Feb 22, 2013 at 6:07 PM, Steve Sides <steve.sides at oracle.com> wrote:
>>
>> Hi Werner,
>> I have been looking at type-annotations in anonymous and inner classes.
>> I have a few new bugs. They are showing yet in bugs.sun.com, but they should
>> by tomorrow(?).
>> Only the first one is a jtreg test. The other 2 are part of a larger test
>> with some classfile checking, but I
>> put the sample code here so you can javac,javap it.
>>
>> -steve
>>
>> 8008751 - Type Annotation on array level in nested class of anonymous class
>> results in NPE at
>> com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.resolveFrame(TypeAnnotations.java:792)
>> 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>> - - - - - - - -
>> /*
>> * @test
>> * @summary type-annotation on array level in nested class results in NPE
>> * @bug 8008751
>> */
>> import java.lang.annotation.*;
>> import static java.lang.annotation.RetentionPolicy.*;
>> import static java.lang.annotation.ElementType.*;
>> import java.util.List;
>>
>> class T8008751 {
>> Object mtest( T8008751 t){ return null; }
>> Object mmtest( T8008751 t){ return null; }
>> public void test() {
>> mtest( new T8008751() {
>> class InnerAnon {
>> @A("ok") String s = (@A("ok") String)( new @A("ok")
>> Object());
>> @A("ok") Object @A("NPE")[] [] ia_sa1 = null;
>> }
>> // If not instanciated, no crash.
>> InnerAnon IA = new InnerAnon();
>> });
>> }
>> }
>> @Retention(RUNTIME) @Target(TYPE_USE) @interface A { String value(); }
>>
>>
>> 8008762 - Type annotation on inner class in anonymous class show up as
>> regular type annotations
>> 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>> - - - - - - - -
>> import java.lang.annotation.*;
>> import static java.lang.annotation.RetentionPolicy.*;
>> import static java.lang.annotation.ElementType.*;
>>
>> class Test1 { // Test1.class
>> @A @B String data = "test";
>> @A @B String m(){ return null; };
>> Object mtest( Test1 t){ return null; }
>> public void test() {
>> mtest( new Test1() { // Test1$1.class
>> @A @B String a_data = "test";
>> @A @B String a_m(){ return null; };
>> class InnerAnon { // Test1$1$InnerAnon.class
>> @A @B String ai_data = "test";
>> @A @B String ai_m(){ return null; };
>> }
>> InnerAnon IA = new InnerAnon();
>> });
>> }
>> }
>>
>> @Retention(RUNTIME) @Target(TYPE_USE) @interface A { }
>> @Retention(CLASS) @Target(TYPE_USE) @interface B { }
>>
>>
>> 8008769 - Repeated type-annotations on type parameter of local variable are
>> not written to classfile.
>> 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>> - - - - - - - -
>> import java.lang.annotation.*;
>> import static java.lang.annotation.RetentionPolicy.*;
>> import static java.lang.annotation.ElementType.*;
>>
>> class Test<T> {
>> Test<@A @A @A String> t = new Test<>(); //ok
>>
>> public void test() {
>> Test<@B String> t1 = new Test<>(); //ok
>> Test<@A @A @A String> t2 = new Test<>(); //not ok
>> }
>> }
>>
>> @Target(TYPE_USE) @Repeatable( AC.class ) @interface A { }
>> @Target(TYPE_USE) @interface AC { A[] value(); }
>> @Target(TYPE_USE) @Repeatable( BC.class ) @interface B { }
>> @Target(TYPE_USE) @interface BC { B[] value(); }
>>
>>
>>
>>
>>
>
>
>
> --
> http://www.google.com/profiles/wdietl
--
http://www.google.com/profiles/wdietl
More information about the type-annotations-dev
mailing list