RFR: add use site null checks for fields [v5]
Maurizio Cimadamore
mcimadamore at openjdk.org
Mon Jan 19 10:26:30 UTC 2026
On Sat, 17 Jan 2026 01:15:22 GMT, Vicente Romero <vromero at openjdk.org> wrote:
>> generate null checks for field use sites depending on a compiler option, see also [1] which did a similar thing for method invocations
>>
>> [1] https://github.com/openjdk/valhalla/pull/1910
>
> Vicente Romero has updated the pull request incrementally with one additional commit since the last revision:
>
> changes to test
src/jdk.compiler/share/classes/com/sun/tools/javac/comp/NullChecksWriter.java line 165:
> 163: sym.owner.kind == TYP &&
> 164: sym.kind == VAR &&
> 165: !isInThisSameCompUnit(sym) &&
I note that, for fields use site checks, we're checking that the field access is pointing to a field in a different compilation unit. But for method calls use-site we don't look for this and always (for now) emit the use site check. I wonder if for now we should err on the side of always generating the checks, and then come back later and (in one shot) relax the translation strategy to omit the checks in cases where they are provably unnecessary.
src/jdk.compiler/share/classes/com/sun/tools/javac/comp/NullChecksWriter.java line 179:
> 177:
> 178: private Symbol outermostType(Symbol sym) {
> 179: Symbol prev = null;
Doesn't `sym.outermostClass()` work?
-------------
PR Review Comment: https://git.openjdk.org/valhalla/pull/1926#discussion_r2704143541
PR Review Comment: https://git.openjdk.org/valhalla/pull/1926#discussion_r2704135873
More information about the valhalla-dev
mailing list