RFR: 8324651: Compiler Implementation for Derived Record Creation (Preview)
Jan Lahoda
jlahoda at openjdk.org
Wed Mar 27 15:47:35 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.
-------------
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
More information about the compiler-dev
mailing list