RFR: 8374149: [bworld] Define and use new null checking API [v4]
Maurizio Cimadamore
mcimadamore at openjdk.org
Wed Jan 7 12:25:25 UTC 2026
On Tue, 6 Jan 2026 19:58:10 GMT, Vicente Romero <vromero at openjdk.org> wrote:
>> Definition and use of a new null checking API
>
> Vicente Romero has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains nine additional commits since the last revision:
>
> - Merge branch 'bworld' into JDK-8374149
> - adding a flag
> - additional changes
> - minor changes
> - additional changes to Checks
> - Merge branch 'bworld' into JDK-8374149
> - additional changes
> - Merge branch 'bworld' into JDK-8374149
> - 8374149: [bworld] Define and use new null checking API
src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java line 3506:
> 3504: /** Make an attributed null check tree.
> 3505: */
> 3506: public JCExpression makeNullCheck(JCExpression arg, boolean nullRestricted) {
Note -- as we evolve the code more, it would be great if we could get rid of AST generation inside Attr (currently, we add null check AST nodes as part of attribution -- which then confuses IDEs who do not expect such changes while analyzing code).
src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java line 145:
> 143: allowValueClasses = (!preview.isPreview(Source.Feature.VALUE_CLASSES) || preview.isEnabled()) &&
> 144: Source.Feature.VALUE_CLASSES.allowedInSource(source);
> 145: String opt = Options.instance(context).get("useRuntimeChecks");
In principle this could be simplified to:
hasRuntimeChecks = target.hasRuntimeChecks() && options.getBoolean("useRuntimeChecks", true);
Right? E.g. emitting an error for the case where `useRuntimeChecks` is set, but the target is not compatible doesn't seem super important? (Also, how is this hidden flag used? Do we really need it?)
-------------
PR Review Comment: https://git.openjdk.org/valhalla/pull/1859#discussion_r2668223977
PR Review Comment: https://git.openjdk.org/valhalla/pull/1859#discussion_r2668220430
More information about the valhalla-dev
mailing list