RFR: 8303374: Compiler Implementation for Primitive types in patterns, instanceof, and switch (Preview) [v8]

Maurizio Cimadamore mcimadamore at openjdk.org
Thu Oct 5 10:15:23 UTC 2023


On Thu, 5 Oct 2023 08:20:58 GMT, Aggelos Biboudis <abimpoudis at openjdk.org> wrote:

>> This is the first draft of a patch for Primitive types in patterns, instanceof, and switch (Preview).
>> 
>> Draft spec here: https://cr.openjdk.org/~abimpoudis/instanceof/instanceof-20230913/specs/instanceof-jls.html
>
> Aggelos Biboudis has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Declutter Lower.visitTypeTest

src/java.base/share/classes/java/lang/runtime/SwitchBootstraps.java line 230:

> 228:                          if (selectorType.equals(Object.class)) {
> 229:                             currentTest = INSTANCEOF_CHECK;
> 230:                             if (currentLabelClass.isAssignableFrom(byte.class)) { testLabel = Byte.class; }

I assume here you want to box the primitive, right? If that's the case, consider using the JDK class `sun.invoke.util.Wrapper`, which has a factory `forBasicType` that takes a class. From there you can get the boxed type easily, in a single line.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/15638#discussion_r1347171504


More information about the core-libs-dev mailing list