Review request for JDK-8014230: Compilation incorrectly succeeds with inner class constructor with 254 parameters
Eric McCorkle
eric.mccorkle at oracle.com
Mon Jun 17 14:12:52 PDT 2013
Thanks for the review, Alex. I've been working on an update that will
replace all of these tests with a test generator.
On 06/17/13 14:43, Alex Buckley wrote:
> Regarding the NumArgs5/6/7/8 tests:
>
> - @author and @bug tags are wrong.
>
> - NumArgs5 and 6 fail to document the important point, which is the
> presence not only of a hidden 'this' parameter but also an implicitly
> declared 'outer' parameter.
>
> - NumArgs7 and 8 feature static nested classes, which means they're not
> inner by definition, so don't call them Inner!
>
> The NumArgs1-4 tests have their own problems which carried over to 5-8:
>
> - @summary is pretty useless - what VM limits?
>
> - They mention 'T1 this' but no T1 type exists.
>
> - NumArgs3/4 seem to be trying to test ctor limits (otherwise they'd be
> identical to NumArgs1/2), but declare a void method rather than a ctor.
>
> Stepping back:
>
> The NumArgsX nomenclature wasn't terribly helpful when the 1-4 tests
> were written, and now we have more dimensions under test. I propose a
> new directory test/tools/javac/limits/parameters containing:
>
> NumArgs1 -> MethodOfToplevelClass256 // fail
> NumArgs2 -> MethodOfToplevelClass255 // pass
> NumArgs3 -> CtorOfToplevelClass256 // fail
> NumArgs4 -> CtorOfToplevelClass255 // pass
> NumArgs5 -> CtorOfInnerClass255 // fail
> NumArgs6 -> CtorOfInnerClass254 // pass
> NumArgs7 -> CtorOfNoninnerClass256 // fail
> NumArgs8 -> CtorOfNoninnerClass255 // pass
>
> OK, eight tests. But really, there are three dimensions:
>
> i) Enclosing class: Toplevel || Non-private inner member || Anonymous ||
> Noninner member (ignoring private inner member classes and local
> classes for simplicitly)
>
> ii) Parameter declarer: Ctor || Instance method || Static method
>
> iii) Number of parameters: 253 || 254 || 255 || 256
>
> That makes 48 interesting cases, notwithstanding that "number of
> parameters" can be simplified in some cases (no point trying 256
> parameters when 255 already failed). Even if we don't have 48, we should
> at least have CtorofAnonymousClass255/254.
>
> Alex
>
> On 6/14/2013 11:29 AM, Eric McCorkle wrote:
>> Hello,
>>
>> Please review this patch, which addresses a problem with javac not
>> taking inner this parameters into account when determining if there are
>> too many parameters to a function.
>>
>> The webrev is here:
>> http://cr.openjdk.java.net/~emc/8014230/
>>
>> The bug report is here:
>> http://bugs.sun.com/view_bug.do?bug_id=8014230
>>
>> Thanks,
>> Eric
>>
-------------- 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/20130617/ef93fb29/eric_mccorkle.vcf
More information about the compiler-dev
mailing list