blob: 3d77c95fd5ab1384677a3d087491288c8ff21fa7 [file] [log] [blame]
/*
* @test /nodynamiccopyright/
* @bug 8003280
* @summary Add lambda tests
* Overloaded methods take raw SAM types that have type inference according to SAM descriptor
should have ambiguous resolution of method
* @compile/fail/ref=InferenceTest_neg1_2.out -XDrawDiagnostics InferenceTest_neg1_2.java
*/
public class InferenceTest_neg1_2 {
public static void main(String[] args) {
InferenceTest_neg1_2 test = new InferenceTest_neg1_2();
test.method(n -> null); //method 1-5 all match
test.method(n -> "a"); //method 2, 4 match
test.method(n -> 0); //method 1, 3, 5 match
}
void method(SAM1 s) { //method 1
Integer i = s.foo("a");
}
void method(SAM2 s) { //method 2
String str = s.foo(0);
}
void method(SAM3<Integer> s) { //method 3
Integer i = s.get(0);
}
void method(SAM4<Double, String> s) { //method 4
String str = s.get(0.0);
}
void method(SAM5<Integer> s) { //method 5
Integer i = s.get(0.0);
}
interface SAM1 {
Integer foo(String a);
}
interface SAM2 {
String foo(Integer a);
}
interface SAM3<T> {
T get(T t);
}
interface SAM4<T, V> {
V get(T t);
}
interface SAM5<T> {
T get(Double i);
}
}