hg: valhalla/valhalla: [lworld] Where statically discernible, javac should reject null assignments to, null casts to and null comparisons with value instances.
Srikanth
srikanth.adayapalam at oracle.com
Tue Feb 27 08:25:00 UTC 2018
On Tuesday 27 February 2018 01:38 PM, srikanth.adayapalam at oracle.com wrote:
> Changeset: 605a5a1da9fe
> Author: sadayapalam
> Date: 2018-02-27 13:34 +0530
> URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/605a5a1da9fe
>
> [lworld] Where statically discernible, javac should reject null assignments to, null casts to and null comparisons with value instances.
This change set aligns javac's behavior with what is outlined in
http://mail.openjdk.java.net/pipermail/valhalla-dev/2018-February/003870.html
In particular,
ValueType v = null; // error: ValueType is not nullable
v = (ValueType) null; // (ditto)
if (v != null) {} // (ditto)
Assignment of, casting of or comparison of nulls with/to value instances
would be rejected by javac where it can be statically determined to be
the case.
I have raised a follow up ticket:
https://bugs.openjdk.java.net/browse/JDK-8198748
for injection of null checks at casts (and other contexts?). This I will
take up after fully
understanding the issue.
Thanks!
Srikanth
>
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties
> - test/langtools/tools/javac/diags/examples/IllegalNullAssignmentToFlattenableValue.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckFlattenableFlagFromClass.out
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckMultiDimensionalArrayStore.out
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckNullAssign.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckNullCastable.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckNullCastable.out
> ! test/langtools/tools/javac/valhalla/lworld-values/FlattenableNegativeTest.out
>
More information about the valhalla-dev
mailing list