On Fri, 30 Jan 2026 03:14:16 GMT, Vicente Romero <[email protected]> wrote:
>> Vicente Romero has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> addressing review comments
>
> src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java line
> 1935:
>
>> 1933: }
>> 1934: if (sym.kind == VAR) {
>> 1935: if ((flags & STRICT) != 0 || (flags & MARK_STRICT_INIT) !=
>> 0 || types.isNonNullable(sym.type)) {
>
> non-nullable fields should have the strict flag in the class file but are
> different to other, strictly, strict fields. The main difference is that the
> compiler doesn't automatically place the initializers before the super
> invocation. This is why I decided to set the strict flag at the end when we
> are about to write the field into the class file. Setting it in Check would
> imply, for example, more complex tracking in Flow
Just curious, if we have `!` fields assigned in early construction by different
branches in if-else, do they generate early-larval/restricted frames properly,
or are we using proxy locals right now
-------------
PR Review Comment:
https://git.openjdk.org/valhalla/pull/1990#discussion_r2744454140