[code-reflection] RFR: Drop support for quoted structural lambdas
Maurizio Cimadamore
mcimadamore at openjdk.org
Thu Nov 6 15:08:03 UTC 2025
The Babylon compiler extension supports structural quoting of lambdas. That is, if a lambda expression has `Quoted` target, then it must have explicit parameter types, and must be type-checked bottom up:
Quoted q = () -> {}
Historically, `Quoted` was the first way to model quotable lambda expressions, and the language changes to support structural quotable lambdas were fairly invasive. Since then we moved to a more minimalistic approach which is similar to what we do for serializable lambdas: we use an intersection type cast to force quotability of the lambda expression:
Runnable r = (Runnable & Quotable)() -> {}
Since the surface area of the `Quotable` support is much smaller (it shares the same machinery already available for serializable lambdas), it would be better to remove support for Quoted target when moving towards incubation.
This PR fixes all existing tests in langtools/JDK to use `Quotable` instead of `Quoted`. I did **not** check HAT, or `cr-examples`.
-------------
Commit messages:
- Fix JDK tests to use Quotable
- Initial push
Changes: https://git.openjdk.org/babylon/pull/667/files
Webrev: https://webrevs.openjdk.org/?repo=babylon&pr=667&range=00
Stats: 2055 lines in 36 files changed: 59 ins; 1892 del; 104 mod
Patch: https://git.openjdk.org/babylon/pull/667.diff
Fetch: git fetch https://git.openjdk.org/babylon.git pull/667/head:pull/667
PR: https://git.openjdk.org/babylon/pull/667
More information about the babylon-dev
mailing list