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

Jan Lahoda jlahoda at openjdk.org
Tue Apr 25 11:47:47 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 with a new target base due to a merge or a rebase. The pull request now contains 38 commits:

 - Merge branch 'master' into JDK-8300543
 - Reflecting review changes.
 - Adding test.
 - Removing redundant continue, as noted on the review.
 - Replacing use of mutable callsite with a mutable state.
 - Reflecting review feedback.
 - Fixing infinite loop in exhaustiveness computation caused by re-adding bindings that are already in the list.
 - 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.
 - ... and 28 more: https://git.openjdk.org/jdk/compare/a4a53858...35f51562

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

Changes: https://git.openjdk.org/jdk/pull/13074/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=13074&range=06
  Stats: 4160 lines in 158 files changed: 2033 ins; 1675 del; 452 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