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

Aggelos Biboudis abimpoudis at openjdk.org
Wed Jan 24 11:53:54 UTC 2024


On Wed, 24 Jan 2024 10:26:18 GMT, Jan Lahoda <jlahoda at openjdk.org> wrote:

>> src/java.base/share/classes/java/lang/runtime/SwitchBootstraps.java line 72:
>> 
>>> 70:     private static final Object SENTINEL = new Object();
>>> 71:     private static final MethodHandles.Lookup LOOKUP = MethodHandles.lookup();
>>> 72:     private static final boolean previewEnabled = true;
>> 
>> not sure about the use of this constant, do we really need it?
>
> Uh, I think this is a good catch.
> 
> I am not completely sure what the policy is, but here we are enhancing a non-preview method with some preview-based behavior. I would feel better if the method would refuse to work in the preview way when preview is not enabled. I.e. my opinion is that this should either be initialized to `jdk.internal.misc.PreviewFeatures.isEnabled()`, or `jdk.internal.misc.PreviewFeatures.ensureEnabled()` should be used appropriately.

Used the `jdk.internal.misc.PreviewFeatures.isEnabled()` and remove an erroneous check in `typeSwitch`.

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

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


More information about the core-libs-dev mailing list