Problem with type annotations on a type parameter

Werner Dietl wdietl at gmail.com
Thu Apr 4 18:02:56 PDT 2013


Jon, Steve, all,

I'm debugging some strange behavior and I would appreciate a quick look by
somebody else. I'm probably missing something very obvious.

Take the attached class that contains a class nested within an anonymous
class.
Compile with the type-annotations javac and you'll get this output:

ClassWriter: Position UNKNOWN in type annotation: @TA
ClassWriter: Position UNKNOWN in type annotation: @TA

That's bad, as it means that the type annotation is not written. We confirm
this by running javap:

javap -v NestedTest\$1\$Inner.class

Nothing on the type parameter.

The strange thing is that this works if we remove the declaration of field
i1.
It also works if instead of a method type parameter we declare a method
parameter, or a class type parameter, or if the class is outside of the
anonymous class.

Does anybody understand the dependency between field i1 and the type
parameter X?

Steve: could you expand the tests in
tools/javac/annotations/typeAnnotations/referenceinfos/ to ensure that
annotations in anonymous classes and lambdas work as expected?
Please also add a failing test for this.

Thanks,
cu, WMD.

-- 
http://www.google.com/profiles/wdietl
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/type-annotations-dev/attachments/20130404/f17b4aa4/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: NestedTest.java
Type: application/octet-stream
Size: 316 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/type-annotations-dev/attachments/20130404/f17b4aa4/NestedTest-0001.java 


More information about the type-annotations-dev mailing list