Review request: update javac to properly output mandated parameters in MethodParameters attributes

maurizio cimadamore maurizio.cimadamore at oracle.com
Thu Feb 7 12:29:42 PST 2013


On 07-Feb-13 7:32 PM, Alex Buckley wrote:
> In http://cr.openjdk.java.net/~abuckley/8misc.pdf, see JLS 13.1 for 
> new information about explicitly and implicitly declared constructs. 
> Also, see JVMS 4.7.22 for how a compiler emitting class files can mark 
> formal parameters as required by JLS 13.1. 
Anyway thanks for pointing me out at 13.1 - I missed that on a first scan.

It would seem that the spec is not defining (on top of my head - there 
are probably others):

*) (effectively) final variables passed in to inner classes (javac only 
does that for reference-types as others are just constants that can be 
produced on the stack at will)
*) I believe javac's generated enum constructor has an additional 
parameter accepting the ordinal

It feels like the second should probably be spec'd - the first I don't 
know - I see  a lot of implementation room on that one.

In any case, the implementation problem remains: it doesn't distinguish 
between impl-only parameters and 'implicitly declared' ones. It just 
takes all parameters that do not have a correspondent in the source code 
and put them in the same place.

Maurizio




More information about the compiler-dev mailing list