On Thu, 12 Jan 2023 18:48:25 GMT, Maurizio Cimadamore <mcimadam...@openjdk.org> wrote:
>>> I guess what I'm thinking about: >> >> No leak is possible in that example. >> * `new Foo()` creates an instance of `Foo` (not a subclass of `Foo`) >> therefore `m()` is not overridden >> * Any subclass of `Foo` that may exist in the outside world cannot use the >> `Foo()` constructor that leaks because it's private > > but what if `m` is a static method in a separate compilation unit? Should it > be able to observe a partially initialized Foo? Caring about the proper initialization of any class in the _current_ compilation unit is an explicit non-goal. We only care about bugs where a superclass and subclass are in separate compilation units. ------------- PR: https://git.openjdk.org/jdk/pull/11874