RFR: 8294942: Compiler implementation for Record Patterns (Second Preview) [v8]
Jan Lahoda
jlahoda at openjdk.org
Wed Nov 30 13:35:05 UTC 2022
> This is a partial implementation of [JEP 432: Record Patterns (Second Preview)](https://openjdk.org/jeps/432) and [JEP 433: Pattern Matching for switch (Fourth Preview)](https://openjdk.org/jeps/433). Namely, it implements:
>
> - removal of named record patterns
> - (preview) type inference for type test and record patterns
> - cleaner switch case specification (e.g. no combination of `null` constants and type test patterns)
> - fixing exhaustiveness of certain switches
>
> The patch does not contain support for record patterns in enhanced for statements, that is [part of a separate pull request](https://github.com/openjdk/jdk/pull/10798).
>
> For more information on the changes please see:
> - the JEPs: [JEP 432](https://openjdk.org/jeps/432) and [JEP 433](https://openjdk.org/jeps/433)
> - the CSRs: [JEP 432 - JDK-8294944](https://bugs.openjdk.org/browse/JDK-8294944) and [JEP 433 - JDK-8294946](https://bugs.openjdk.org/browse/JDK-8294946)
> - the current [specification draft](http://cr.openjdk.java.net/~gbierman/jep432%2b433/jep432%2b433-20221028/specs/patterns-switch-record-patterns-jls.html)
>
> Current total specdiff for both this PR and [the enhanced for PR](https://github.com/openjdk/jdk/pull/10798) is [here](http://cr.openjdk.java.net/~jlahoda/8294945/specdiff.preliminary.00/overview-summary.html).
>
> Any feedback is welcome.
>
> Thanks!
Jan Lahoda has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 15 commits:
- Merge branch 'master' into JDK-8294942
- Merge branch 'master' into JDK-8294942
- Using skipTypeVars as suggested.
- Reflecting review feedback - proper handling of type vars and intersection types.
- Not looking for common supertype, not solving in a loop.
- Reflecting review comment.
- Apply suggestions from code review
Co-authored-by: Maurizio Cimadamore <54672762+mcimadamore at users.noreply.github.com>
- Better tests for inference with recursive bounds, and related fixes.
- Adding a kind to InstanceOfTree, as suggested.
- Reflecting review feedback.
- ... and 5 more: https://git.openjdk.org/jdk/compare/7af6b4b5...4d01e003
-------------
Changes: https://git.openjdk.org/jdk/pull/10814/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10814&range=07
Stats: 1565 lines in 39 files changed: 1176 ins; 279 del; 110 mod
Patch: https://git.openjdk.org/jdk/pull/10814.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/10814/head:pull/10814
PR: https://git.openjdk.org/jdk/pull/10814
More information about the compiler-dev
mailing list