RFR: 8322810: Lambda expression types can't be classes [v8]

Vicente Romero vromero at openjdk.org
Fri Apr 11 15:52:55 UTC 2025


> Currently javac is accepting code like:
> 
> 
> class Test {
>     void m() {
>         var r = (Test & Runnable) () -> System.out.println("Hello, World!");
>     }
> }
> 
> 
> according to: `4.9 Intersection Types` a notional interface can't be induced here as one of the components is a class different from `j.l.Object`
> 
> With this fix this code pattern will be rejected with a compiler error
> 
> TIA

Vicente Romero has updated the pull request incrementally with one additional commit since the last revision:

  fixing bug in test, variables with same name

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/24548/files
  - new: https://git.openjdk.org/jdk/pull/24548/files/7c633986..427fa6dd

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=24548&range=07
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24548&range=06-07

  Stats: 14 lines in 2 files changed: 0 ins; 2 del; 12 mod
  Patch: https://git.openjdk.org/jdk/pull/24548.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24548/head:pull/24548

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


More information about the compiler-dev mailing list