test/tools/javac/lambda/TargetType14.java

changeset 0
959103a6100f
equal deleted inserted replaced
-1:000000000000 0:959103a6100f
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> {
13 X m(int i, int j);
14 }
15
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
23 static void m(SAM<Integer> s) { }
24 static <X> SAM<X> m2(SAM<X> s) { return null; }
25 }

mercurial