> 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

Vicente Romero has updated the pull request with a new target base due to a 
merge or a rebase. The incremental webrev excludes the unrelated changes 
brought in by the merge/rebase. The pull request contains three additional 
commits since the last revision:

 - adding test case
 - Merge branch 'lworld' into JDK-8373916
 - 8373916: [lworld] TypeName.this.FieldName should be restricted in early 
construction context

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

Changes:
  - all: https://git.openjdk.org/valhalla/pull/1899/files
  - new: https://git.openjdk.org/valhalla/pull/1899/files/8fd1e82f..b1aeb46b

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=valhalla&pr=1899&range=01
 - incr: https://webrevs.openjdk.org/?repo=valhalla&pr=1899&range=00-01

  Stats: 65915 lines in 3133 files changed: 31360 ins; 13537 del; 21018 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

Reply via email to