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