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: }