Integrated: 8310685: [lw5] adding support for null restricted types

Vicente Romero vromero at openjdk.org
Mon Jun 26 17:58:35 UTC 2023


On Mon, 26 Jun 2023 09:26:41 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:

>> initial support for null restricted types
>
> src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java line 1170:
> 
>> 1168:                       * make sure that the caller really wants to warn
>> 1169:                       */
>> 1170:                      if (s.isNonNullable() && warnStack.head.pos() != null) {
> 
> This is a bit odd. We are defining a type relationship - if "BOT" is not a subtype of T! that is fine, we should just return false. Giving an error seems a bit strange here (I don't think it is normal for subtyping to generate errors).

yep you are right

> src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java line 2128:
> 
>> 2126:         if (tree.lhs.type.isNonNullable()) {
>> 2127:             code.emitop0(dup);
>> 2128:             genNullCheck(tree.rhs);
> 
> Should the null check always be generated even if we know that the RHS is non-nullable? (I'm not sure here)

I'm not sure either, I preferred to stay on the safe side. We can always revisit this later

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

PR Review Comment: https://git.openjdk.org/valhalla/pull/872#discussion_r1242556817
PR Review Comment: https://git.openjdk.org/valhalla/pull/872#discussion_r1242555284



More information about the valhalla-dev mailing list