RFR: Generate missing null checks [v2]
Maurizio Cimadamore
mcimadamore at openjdk.org
Fri Jan 9 16:25:42 UTC 2026
On Fri, 9 Jan 2026 15:56:03 GMT, Vicente Romero <vromero at openjdk.org> wrote:
>> generate missing null checks like for method arguments, return arguments, etc
>
> Vicente Romero has updated the pull request incrementally with one additional commit since the last revision:
>
> record patterns
src/jdk.compiler/share/classes/com/sun/tools/javac/comp/NullChecksWriter.java line 102:
> 100: /** Visitor argument: proto-type.
> 101: */
> 102: private Type pt;
This doesn't seem to be used?
src/jdk.compiler/share/classes/com/sun/tools/javac/comp/NullChecksWriter.java line 133:
> 131: !types.isNonNullable(rhsSym.type)) {
> 132: tree.rhs = translate(tree.rhs, types.erasure(tree.lhs.type));
> 133: tree.rhs = attr.makeNullCheck(tree.rhs, true);
Shouldn't we use `generateNullCheckIfNeeded` always? (here and elsewhere)
src/jdk.compiler/share/classes/com/sun/tools/javac/comp/NullChecksWriter.java line 188:
> 186: public void visitReturn(JCReturn tree) {
> 187: if (returnType != null && !returnType.hasTag(VOID)) {
> 188: if (types.isNonNullable(returnType) && !types.isNonNullable(tree.expr.type)) {
I think tree.expr.type will be erased by now?
src/jdk.compiler/share/classes/com/sun/tools/javac/comp/NullChecksWriter.java line 197:
> 195:
> 196: @Override
> 197: public void visitLetExpr(LetExpr tree) {
Why is this needed? Isn't this the default behavior?
src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java line 3786:
> 3784: return variableDeclarators(optFinal(0), parseType(true), stats, true).toList();
> 3785: } else {
> 3786: JCExpression t = term(EXPR | TYPE | ALLOW_BANGS);
Good catches!
-------------
PR Review Comment: https://git.openjdk.org/valhalla/pull/1867#discussion_r2676793888
PR Review Comment: https://git.openjdk.org/valhalla/pull/1867#discussion_r2676796499
PR Review Comment: https://git.openjdk.org/valhalla/pull/1867#discussion_r2676789324
PR Review Comment: https://git.openjdk.org/valhalla/pull/1867#discussion_r2676787273
PR Review Comment: https://git.openjdk.org/valhalla/pull/1867#discussion_r2676803148
More information about the valhalla-dev
mailing list