[lworld] RFR: 8373916: [lworld] TypeName.this.FieldName should be restricted in early construction context

Vicente Romero vromero at openjdk.org
Thu Jan 22 21:07:52 UTC 2026


According to spec bugs: JDK-8373719 and JDK-8373721:

In JLS 6.5.6.1, references to fields are subject to a handful of restrictions if they refer to instance fields. In 15.8 and 15.11, 'this.x' and 'super.x' are intended to be viewed as instance field references, and subject to the same restrictions.

So the following code should fail to compile:

class Test {
    static final boolean check = true;
    Test(int a) {
        boolean b = Test.this.check; //compilation error expected here
        this();
    }
}

However, javac is currently accepting it

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

Commit messages:
 - 8373916: [lworld] TypeName.this.FieldName should be restricted in early construction context

Changes: https://git.openjdk.org/valhalla/pull/1899/files
  Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=1899&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8373916
  Stats: 36 lines in 6 files changed: 33 ins; 0 del; 3 mod
  Patch: https://git.openjdk.org/valhalla/pull/1899.diff
  Fetch: git fetch https://git.openjdk.org/valhalla.git pull/1899/head:pull/1899

PR: https://git.openjdk.org/valhalla/pull/1899


More information about the valhalla-dev mailing list