RFR: 8303374: Compiler Implementation for Primitive types in patterns, instanceof, and switch (Preview) [v3]
Maurizio Cimadamore
mcimadamore at openjdk.org
Mon Oct 2 17:37:06 UTC 2023
On Mon, 2 Oct 2023 14:47:59 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 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 four additional commits since the last revision:
>
> - Merge branch 'master' into primitive-patterns
> - Implement type pairs to exactnessMethod name
> - Apply suggestions from code review
>
> Co-authored-by: Raffaello Giulietti <raffaello.giulietti at oracle.com>
> - 8303374: Compiler Implementation for Primitive types in patterns, instanceof, and switch (Preview)
src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java line 735:
> 733: }
> 734: }
> 735: if (tree.selector.type.hasTag(TypeTag.BOOLEAN)) {
I would have expected true/false to be treated more or less like enum constants when it came to exhaustiveness? E.g. boolean is similar to an enum type that only has two options (or, if you will, a sealed type with two permitted subtypes). So, IMHO the treatment for booleans should happen in the `exhausts` method - and this method should be left very simple (possibly unchanged?)
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15638#discussion_r1342970659
More information about the core-libs-dev
mailing list