Review request: update javac to properly output mandated parameters in MethodParameters attributes (original) (raw)
Alex Buckley alex.buckley at oracle.com
Thu Feb 7 12:32:49 PST 2013
- Previous message: Review request: update javac to properly output mandated parameters in MethodParameters attributes
- Next message: Review request: update javac to properly output mandated parameters in MethodParameters attributes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 2/7/2013 12:08 PM, maurizio cimadamore wrote:
On 07-Feb-13 7:32 PM, Alex Buckley wrote:
No. I don't know why the anonymous class's ctor would need a parameter for this code. Ok - so this is a case where Eirc's implementation would mark the extra parameter added by javac as MANDATED - which I think it's not right, no?
I checked what javac does for:
class Foo { void m() { final Object o = null; new Object() { }; } }
javac generates Foo$1 for the anonymous class, with a ctor that has a single Foo parameter (not Object) representing the immediately enclosing instance.
For reasons explained in JLS 8.8.9, that single parameter is not implicitly declared by the language. Since it's not explicitly declared either, it should be marked ACC_SYNTHETIC in the class file.
Alex
- Previous message: Review request: update javac to properly output mandated parameters in MethodParameters attributes
- Next message: Review request: update javac to properly output mandated parameters in MethodParameters attributes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]