Problem with type annotations on a type parameter
Jonathan Gibbons
jonathan.gibbons at oracle.com
Wed Apr 24 21:27:30 PDT 2013
Werner,
Just to be clear, everything is OK in the generated output except the
missing type anno in the output, right? So the problem is just that the
type annos are getting "lost" along the way?
-- Jon
On 04/04/2013 06:02 PM, Werner Dietl wrote:
> 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
More information about the type-annotations-dev
mailing list