RFR: 8294942: Compiler implementation for Record Patterns (Second Preview) [v2]

Jan Lahoda jlahoda at openjdk.org
Mon Nov 7 08:49:35 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 incrementally with three additional commits since the last revision:

 - Better tests for inference with recursive bounds, and related fixes.
 - Adding a kind to InstanceOfTree, as suggested.
 - Reflecting review feedback.

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/10814/files
  - new: https://git.openjdk.org/jdk/pull/10814/files/6f1c30d8..77c34fcf

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

  Stats: 165 lines in 4 files changed: 66 ins; 14 del; 85 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