1 /* 2 * @test /nodynamiccopyright/ 3 * @bug 8003280 4 * @summary Add lambda tests 5 * check that return type is inferred from target type when cyclic inference found 6 * @author Maurizio Cimadamore 7 * @compile/fail/ref=TargetType14.out -XDrawDiagnostics TargetType14.java 8 */ 9 10 class TargetType14 { 11 12 interface SAM<X> { m(int i, int j)13 X m(int i, int j); 14 } 15 test()16 static void test() { 17 SAM<Integer> s1 = (i, j) -> i + j; 18 m((i, j) -> i + j); 19 SAM<Integer> s2 = m2((i, j) -> i + j); //ok 20 SAM<Integer> s3 = m2((i, j) -> "" + i + j); //no 21 } 22 m(SAM<Integer> s)23 static void m(SAM<Integer> s) { } m2(SAM<X> s)24 static <X> SAM<X> m2(SAM<X> s) { return null; } 25 } 26