eclipse-jdt / eclipse-jdt/eclipse.jdt.core
[Switch Expressions] ECJ vs javac difference compiling method invocation involving switch expressions with poly type result expressions
Open
javac
- Dominant language
- Java
- Stars
- 237
- Forks
- 195
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 49
Description
This program is by javac (`X.java:18: error: reference to foo is ambiguous`) while ECJ happily compiles it:
```
interface I {
void foo();
}
interface J {
void foo();
}
public class X {
public static void foo(Object o, J j) {
System.out.println("Object");
}
public static void foo(String s, I i) {
System.out.println("String");
}
public static void main(String[] args) {
foo("Hello", switch (args.length) {
case 0 -> () -> System.out.println("empty arguments vector");
default -> () -> System.out.println("non-empty arguments vector");
});
}
}
```
Contributor guide
Assessment
This issue has not been assessed yet.