Hi Gavin,
great work - some comments:

* in section 6 on names there's no mention of whether pattern variables are matched in the `when` clause.

* section 14.11.1, you say that a case element is "unrefined" if it has `when` with constant expression whose value is `true`. This is a bit ambiguous: I think what you want here is "evaluates to true", because I think you also want to cover "true || true" or "!!true", right? I think that's what you meant, but the word "value" is confusing, I think. This ambiguity is also present in the rule below when we say that two case label with same "value" are not permitted. Maybe all this is pre-existing, but I wonder it it could be worth clarifying.

* we define the concept of what it means for a case label to "support default" but we do not define what it means to "support null". The latter is also referred to in the list of checks for switch labels in 14.11.1

* "If a switch label appears at the end of a switch block, it is a compile-time error if it consists of more than one case or default label." - not sure I get this? I mean, sure I can't have "case default: case default" - but the rest? E.g. can't I end a switch with "case 4: case 5: ..." ?

* this sentence "A switch label that supports a unrefined pattern p dominates another switch label supporting a pattern q if p dominates q" is tricky - but I think correct; only labels w/o a "when" can dominate other labels, and pattern dominance doesn't care about "when", so you shold be good.

* 10.3.2 and also the small example at the end of the definition of "executable switch" refer to the notion of "any" pattern - but that pattern is not defined

Maurizio



On 07/04/2022 12:40, Gavin Bierman wrote:
Dear experts:

The first draft of a spec covering both the third preview of Pattern Matching for switch (JEP number coming, but currently available at https://openjdk.java.net/jeps/8282272) and JEP 405 (Record Patterns) is now available at:

http://cr.openjdk.java.net/~gbierman/PatternSwitchPlusRecordPatterns/PatternSwitchPlusRecordPatterns-20220407/specs/patterns-switch-jls.html

Comments welcome!

Thanks,
Gavin 

Reply via email to