On Mon, 19 Jan 2026 12:51:08 GMT, Vicente Romero <[email protected]> wrote:

>> 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.
>
> we can do that or just add the same check to methods. I didn't think about 
> this for the method's case. Seems like a very minimal `optimization` that 
> should be there since the beginning. I could add the same for methods as part 
> of this PR

I'm fine with adding more use-site method optimizations in a follow up PR.

>> 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?
>
> it work but at the end it does a cast to ClassSymbol, unfortunately some 
> fields can have TypeSymbol as its outermost class. This is use in Symtab, an 
> anonymous class of TypeSymbol and the build was failing

Ugh -- for now let's add a comment that `outermostClass` was considered and 
then discarded for the reasons you mention. 

That said -- the anon class you talk about is (I think) `noSymbol`. I wonder 
why we're trying to call `outrmostType` on `noSymbol`. That symbol has kind 
`NIL`. So I wonder what is really going on here? Are we trying to use this 
visitor on code that has errors?

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

PR Review Comment: 
https://git.openjdk.org/valhalla/pull/1926#discussion_r2705669144
PR Review Comment: 
https://git.openjdk.org/valhalla/pull/1926#discussion_r2705667576

Reply via email to