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. ------------- Commit messages: - Removing whitespace - Cleanup. - Cleanup, bugfixes. - Adding tests. - Adding examples. - More correct handling of exceptions in derived record creation expression; optimizing the resulting bytecode. - Javadoc cleanup. - Merge branch 'master' into wthexp - Adding missing file. - Cleanup. - ... and 11 more: https://git.openjdk.org/jdk/compare/0c1b254b...a61682ff Changes: https://git.openjdk.org/jdk/pull/18509/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=18509&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8324651 Stats: 1551 lines in 41 files changed: 1481 ins; 20 del; 50 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