aoqi@0: /* aoqi@0: * @test /nodynamiccopyright/ aoqi@0: * @bug 8003280 aoqi@0: * @summary Add lambda tests aoqi@0: * check correctness of structural most specific test routine aoqi@0: * @compile/fail/ref=MostSpecific03.out -XDrawDiagnostics MostSpecific03.java aoqi@0: */ aoqi@0: aoqi@0: class Test { aoqi@0: aoqi@0: interface IntMapper { aoqi@0: int map(); aoqi@0: } aoqi@0: aoqi@0: interface LongMapper { aoqi@0: long map(); aoqi@0: } aoqi@0: aoqi@0: void m(IntMapper... im) { } aoqi@0: void m(LongMapper... lm) { } aoqi@0: aoqi@0: void m2(IntMapper im1, IntMapper... im) { } aoqi@0: void m2(LongMapper... lm) { } aoqi@0: aoqi@0: void test1() { aoqi@0: m(); //ambiguous aoqi@0: m(()->1); //ok aoqi@0: m(()->1, ()->1); //ok aoqi@0: m(()->1, ()->1, ()->1); //ok aoqi@0: } aoqi@0: aoqi@0: void test2() { aoqi@0: m(null, null); //ambiguous aoqi@0: m(()->1, null); //ambiguous aoqi@0: m(null, ()->1); //ambiguous aoqi@0: m(()->1L, null); //ok aoqi@0: m(null, ()->1L); //ok aoqi@0: } aoqi@0: aoqi@0: void test3() { aoqi@0: m2(); //ok aoqi@0: m2(()->1); //ambiguous aoqi@0: m2(()->1, ()->1); //ok aoqi@0: m2(()->1, ()->1, ()->1); //ok aoqi@0: } aoqi@0: aoqi@0: void test4() { aoqi@0: m2(null, null, null); //ambiguous aoqi@0: m2(()->1, null, null); //ambiguous aoqi@0: m2(null, ()->1, null); //ambiguous aoqi@0: m2(null, null, ()->1); //ambiguous aoqi@0: m2(()->1, ()->1, null); //ambiguous aoqi@0: m2(null, ()->1, ()->1); //ambiguous aoqi@0: m2(()->1, null, ()->1); //ambiguous aoqi@0: aoqi@0: m2(()->1L, null, null); //ok aoqi@0: m2(null, ()->1L, null); //ok aoqi@0: m2(null, null, ()->1L); //ok aoqi@0: m2(()->1L, ()->1L, null); //ok aoqi@0: m2(null, ()->1L, ()->1L); //ok aoqi@0: m2(()->1L, null, ()->1L); //ok aoqi@0: } aoqi@0: }