RFR: 8300543 Compiler Implementation for Pattern Matching for switch [v2]

Jan Lahoda jlahoda at openjdk.org
Tue Apr 18 09:13:01 UTC 2023


> This is the first draft of a patch for JEP 440 and JEP 441. Changes included:
> 
>  - the pattern matching for switch and record patterns features are made final, together with updates to tests.
>  - parenthesized patterns are removed.
>  - qualified enum constants are supported for case labels.
> 
> This change herein also includes removal record patterns in for each loop, which may be split into a separate PR in the future.

Jan Lahoda has updated the pull request incrementally with six additional commits since the last revision:

 - Fixing infinite loop where a binding pattern is replaced with a binding pattern for the same type.
 - Reflecting review comments.
 - Fixing exhaustiveness for unsealed supertype pattern.
 - No need to enable features after error reported.
 - SwitchBootstraps.typeSwitch should not initialize enum classes.
 - A prototype of avoiding enum initialization.

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/13074/files
  - new: https://git.openjdk.org/jdk/pull/13074/files/57445212..a6ba602b

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=13074&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=13074&range=00-01

  Stats: 332 lines in 8 files changed: 260 ins; 32 del; 40 mod
  Patch: https://git.openjdk.org/jdk/pull/13074.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/13074/head:pull/13074

PR: https://git.openjdk.org/jdk/pull/13074


More information about the core-libs-dev mailing list