RFR: JDK-8315458 Implement JEP 463: Implicitly Declared Classes and Instance Main Method (Second Preview) [v21]

Jim Laskey jlaskey at openjdk.org
Mon Nov 20 17:17:19 UTC 2023


On Mon, 20 Nov 2023 11:55:57 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:

>> src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java line 464:
>> 
>>> 462:         }
>>> 463:         for (Symbol sym = s.owner; sym != null; sym = sym.owner) {
>>> 464:             if (sym.kind == TYP && sym.name == name && sym.name != names.error &&
>> 
>> Looks good!
>
> I recommend adding a test for this (if not already done) - checking cases like:
> 
> // A.java
> void m() { }
> class A {}
> 
> 
> but also where A is nested deeper:
> 
> 
> // A.java
> void m() { }
> class B {
>    class A { }
> }
> 
> 
> And then also check that the test still works for other classes defined in the implicit unit:
> 
> 
> // A.java
> void m() { }
> class B {
>    class B { } //error
> }

Added

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/16461#discussion_r1399513053


More information about the compiler-dev mailing list