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