aoqi@0: /* aoqi@0: * @test /nodynamiccopyright/ aoqi@0: * @bug 8003280 aoqi@0: * @summary Add lambda tests aoqi@0: * check case of ambiguous method call with lambda whose body cannot aoqi@0: complete normally aoqi@0: * @compile/fail/ref=TargetType23.out -XDrawDiagnostics TargetType23.java aoqi@0: */ aoqi@0: aoqi@0: class TargetType23 { aoqi@0: aoqi@0: interface Sam0 { aoqi@0: void m(); aoqi@0: } aoqi@0: aoqi@0: interface Sam1 { aoqi@0: int m(); aoqi@0: } aoqi@0: aoqi@0: interface Sam2 { aoqi@0: String m(); aoqi@0: } aoqi@0: aoqi@0: interface Sam3 { aoqi@0: A m(); aoqi@0: } aoqi@0: aoqi@0: aoqi@0: void call(Sam0 s) { } aoqi@0: void call(Sam1 s) { } aoqi@0: void call(Sam2 s) { } aoqi@0: void call(Sam3 s) { } aoqi@0: aoqi@0: void call2(Sam0 s) { } aoqi@0: void call2(Sam2 s) { } aoqi@0: void call2(Sam3 s) { } aoqi@0: aoqi@0: void test() { aoqi@0: call(()-> { throw new RuntimeException(); }); // ambiguous - call(Sam1) vs. call(Sam2) aoqi@0: call2(()-> { throw new RuntimeException(); }); // ok aoqi@0: } aoqi@0: }