RFR: 8278078: cannot reference super before supertype constructor has been called [v2]

Adam Sotona asotona at openjdk.java.net
Wed Dec 1 20:35:09 UTC 2021


> Pull request #4376 (with fix of 8261006: 'super' qualified method references cannot occur in a static context) regressed compilation of all inner classes using <enclosing class>.super pattern in their constructor argument to fail with: 
>  error: cannot reference super before supertype constructor has been called 
> 
> For example following source fragment cannot be compiled since that: 
> 
>     class EnclClass { 
>         class InnerClass extends Exception { 
>             InnerClass() { 
>                 super(EnclClass.super.toString()); 
>             } 
>         } 
>     } 
> 
> 
> This patch keeps throwing "cannot reference super" error for calls of <interface>.super and permits calls of <enclosing class>.super
> 
> Plus it adds a new test.
> 
> Thanks,
> Adam

Adam Sotona has updated the pull request incrementally with one additional commit since the last revision:

  fixed typo in test name

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/6642/files
  - new: https://git.openjdk.java.net/jdk/pull/6642/files/f0242397..a3964667

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=6642&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=6642&range=00-01

  Stats: 26 lines in 2 files changed: 13 ins; 13 del; 0 mod
  Patch: https://git.openjdk.java.net/jdk/pull/6642.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/6642/head:pull/6642

PR: https://git.openjdk.java.net/jdk/pull/6642


More information about the compiler-dev mailing list