1/* 2 * @test /nodynamiccopyright/ 3 * @bug 8003280 8034223 4 * @summary Add lambda tests 5 * check case of ambiguous method call with lambda whose body cannot 6 complete normally 7 * @compile/fail/ref=TargetType23.out -XDrawDiagnostics TargetType23.java 8 */ 9 10class TargetType23 { 11 12 interface Sam0 { 13 void m(); 14 } 15 16 interface Sam1 { 17 int m(); 18 } 19 20 interface Sam2 { 21 String m(); 22 } 23 24 interface Sam3<A> { 25 A m(); 26 } 27 28 29 void call(Sam0 s) { } 30 void call(Sam1 s) { } 31 void call(Sam2 s) { } 32 <Z> void call(Sam3<Z> s) { } 33 34 void call2(Sam0 s) { } 35 void call2(Sam2 s) { } 36 <Z> void call2(Sam3<Z> s) { } 37 38 void test() { 39 call(()-> { throw new RuntimeException(); }); // ambiguous - call(Sam1) vs. call(Sam2) 40 call2(()-> { throw new RuntimeException(); }); // ok 41 } 42} 43