aoqi@0: /* aoqi@0: * @test /nodynamiccopyright/ aoqi@0: * @bug 8003280 aoqi@0: * @summary Add lambda tests aoqi@0: * check that candidates with incompatible SAM descriptor args length aoqi@0: are removed from the set of applicable methods aoqi@0: * @compile/fail/ref=TargetType22.out -Xlint:unchecked -XDrawDiagnostics TargetType22.java aoqi@0: */ aoqi@0: aoqi@0: class TargetType22 { aoqi@0: aoqi@0: interface Sam0 { aoqi@0: void m(); aoqi@0: } aoqi@0: aoqi@0: interface Sam1 { aoqi@0: void m(A a); aoqi@0: } aoqi@0: aoqi@0: interface Sam2 { aoqi@0: void m(A a1, A a2); aoqi@0: } aoqi@0: aoqi@0: interface Sam3 { aoqi@0: void m(A a1, A a2, A a3); aoqi@0: } aoqi@0: aoqi@0: interface SamX { aoqi@0: void m(A... as); 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: void call(SamX s) { } aoqi@0: aoqi@0: void test() { aoqi@0: call(() -> { }); aoqi@0: call(a1 -> { }); //ambiguous - both call(Sam1) and call(SamX) match aoqi@0: call((a1, a2) -> { }); aoqi@0: call((a1, a2, a3) -> { }); aoqi@0: } aoqi@0: }