> Currently, an enum switch with patterns is desugared in a very non-standard, 
> and potentially slow, way. It would be better to use the standard 
> `typeSwitch` bootstrap to classify the enum constants. The bootstrap needs to 
> accept enum constants as labels in order to allow this. A complication is 
> that if an enum constant is missing, that is not an incompatible change for 
> the switch, and the switch should simply work as if the case for the missing 
> constant didn't exist. So, the proposed solution is to have a new bootstrap 
> `enumSwitch` that accepts `String`s in place of the enum constants, and will 
> internally convert them to the appropriate enum constants, and then it will 
> find the proper case similarly to `typeSwitch`.
> 
> How does this look?

Jan Lahoda has updated the pull request with a new target base due to a merge 
or a rebase. The pull request now contains ten commits:

 - Reflecting review comments.
 - Merge branch 'master' into JDK-8268766
 - Improving javadoc.
 - Updating javadoc, as suggested.
 - Updating javadoc, code and tests as suggested.
 - Creating a new bootstrap method for (pattern matching) enum switches, as 
suggested.
 - Adding and fixing test.
 - Merging master.
 - 8268766: Desugaring of pattern matching enum switch should be improved

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

Changes: https://git.openjdk.java.net/jdk17/pull/81/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk17&pr=81&range=05
  Stats: 416 lines in 6 files changed: 278 ins; 68 del; 70 mod
  Patch: https://git.openjdk.java.net/jdk17/pull/81.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk17 pull/81/head:pull/81

PR: https://git.openjdk.java.net/jdk17/pull/81

Reply via email to