Review request: update javac to properly output mandated parameters in MethodParameters attributes (original) (raw)

Eric McCorkle eric.mccorkle at oracle.com
Tue Feb 12 08:44:34 PST 2013


Actually, it is necessary. There are specific cases where a parameter must be marked MANDATED, and it is marked SYNTHETIC in all others.

Most notably, only the outer this in a non-private inner member class constructor gets marked MANDATED. If there's an outer this for a static or a private inner class constructor, it gets marked SYNTHETIC.

On 02/12/13 11:34, Maurizio Cimadamore wrote:

On 12/02/13 16:22, Maurizio Cimadamore wrote:

On 12/02/13 16:17, Eric McCorkle wrote:

Maybe make the one for ClassSymbol take a ClassSymbol as an argument as opposed to a Symbol? Why do we need to replicate all that code? Also, I'm pretty sure that you don't need outerThisIsMandated anymore, since outerThisDef is explicitly called to add an extra 'this' argument to the constructor of an inner class. Maurizio

Maurizio

On 02/12/13 10:52, Maurizio Cimadamore wrote: On 12/02/13 14:53, Eric McCorkle wrote: No, actually, that variant has to be there in order to add the outer this field in a ClassSymbol. The overloading on Symbol/MethodSymbol is very hard to parse - i.e. it's hard to tell whether a client would call one or the other. What I'm suggesting is that, since both methods seem to share 99% of the code, you add the extra logic to the old method guarded by a check (which I think is sym.kind == MTH - i.e. if the symbl is a method).

Maurizio -------------- next part -------------- A non-text attachment was scrubbed... Name: eric_mccorkle.vcf Type: text/x-vcard Size: 314 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20130212/fc06bd72/eric_mccorkle.vcf



More information about the compiler-dev mailing list