On Mon, 2 Oct 2023 14:47:59 GMT, Aggelos Biboudis <abimpou...@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.giulie...@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