[lworld] RFR: 8367323: [lworld] javac is rejecting valid code after fix for JDK-8359370

Vicente Romero vromero at openjdk.org
Fri Sep 12 15:18:57 UTC 2025


On Thu, 11 Sep 2025 02:14:37 GMT, Vicente Romero <vromero at openjdk.org> wrote:

> Recent fix for [JDK-8359370](https://bugs.openjdk.org/browse/JDK-8359370) introduced a minor bug. This code should be accepted by javac:
> 
> class SuperClass<T> {
>     public SuperClass(Object o) {}
> }
> 
> class Sub<T> extends SuperClass<T> {
>     public Sub() {
>         super(new Object() {
>             void foo() {
>                 getClass();
>             }
>         });
>     }
> }
> 
> 
> but it is currently rejected as the `getClass` invocation is considered to be an invocation of an instance method of class `Sub`

thanks guys for the review

test/langtools/tools/javac/SuperInit/SuperInitFails.java line 195:

> 193:         int i = new SuperInitFails(){
> 194:             void foo() {
> 195:                 System.err.println(xx);  // this one is OK, xx field in the anonymous class

Suggestion:

                System.err.println(xx);  // this one is OK, reading field `xx` in the anonymous class

test/langtools/tools/javac/SuperInit/SuperInitFails.java line 197:

> 195:                 System.err.println(xx);  // this one is OK, reading field `xx` in the anonymous class
> 196:             }
> 197:         }.xx;  // this one is OK, too, field of a fully constructed class

Suggestion:

        }.xx;  // this one is OK too, field of a fully constructed class

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

PR Comment: https://git.openjdk.org/valhalla/pull/1567#issuecomment-3285063582
PR Review Comment: https://git.openjdk.org/valhalla/pull/1567#discussion_r2342180019
PR Review Comment: https://git.openjdk.org/valhalla/pull/1567#discussion_r2342181644


More information about the valhalla-dev mailing list