RFR: 8324651: Compiler Implementation for Derived Record Creation (Preview) [v6]

Jan Lahoda jlahoda at openjdk.org
Fri Apr 5 12:35:26 UTC 2024


> This is a patch for javac, that adds the Derived Record Creation expressions. The current draft specification for the feature is:
> https://cr.openjdk.org/~gbierman/jep468/jep468-20240326/specs/derived-record-creation-jls.html
> 
> The current CSR is here:
> https://bugs.openjdk.org/browse/JDK-8328637
> 
> The patch is mostly straightforward, with two notable changes:
>  - there is a new `ElementKind.COMPONENT_LOCAL_VARIABLE`, as the specification introduces this term, and it seems consistent with `ElementKind.BINDING_VARIABLE` that was introduced some time ago.
>  - there are a bit broader changes in `Flow`, to facilitate the introduction of variables without an explicit declaration for definite assignment and effectively final computation.

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

 - Improving the javax.lang.model for component local variables, by darcy.
 - Reflecting review feedback.
 - Merge branch 'master' into wthexp
 - Fixing tests.
 - Adding tests.
 - The var declaration can be any JCTree.
 - Renaming visitReconstruction to visitDerivedInstance as suggested.
 - Fixing support for derived record creation expression in JShell.
 - Removing whitespace
 - Cleanup.
 - ... and 19 more: https://git.openjdk.org/jdk/compare/18c925cd...f9b6c403

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

Changes: https://git.openjdk.org/jdk/pull/18509/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=18509&range=05
  Stats: 1772 lines in 50 files changed: 1687 ins; 20 del; 65 mod
  Patch: https://git.openjdk.org/jdk/pull/18509.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18509/head:pull/18509

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


More information about the core-libs-dev mailing list