[lworld] RFR: 8376033: [lworld] Remove auto early construction from strict fields

Chen Liang liach at openjdk.org
Thu Jan 22 23:51:48 UTC 2026


On Thu, 22 Jan 2026 23:02:35 GMT, Chen Liang <liach at openjdk.org> wrote:

> Remove the translation strategy change of javac from `@Strict`, and fix all resulting errors (which appear as verification error for class files).
> 
> This is a prerequisite for simplifying `@Strict @NullRestricted` to `@NullRestricted` later.
> 
> This is done by discovering `@Strict` fields that are:
> 1. Not a member of a value class
> 2. Not static
> 
> And use IDE refactor to move their initializer to the constructor, and add a `super()` call in the end of the constructor.

If we defer constructor adjustment to after `@Strict` and `@NullRestricted` merger, we would need javac to start dealing with `@NullRestricted` which IMO is more complicated. Will remove the temporary `Flags.MARK_STRICT_INIT` when we remove `@Strict` completely.

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

PR Comment: https://git.openjdk.org/valhalla/pull/1952#issuecomment-3787398615


More information about the valhalla-dev mailing list