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

Eric McCorkle eric.mccorkle at
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 : 

More information about the compiler-dev mailing list