aoqi@0: /* aoqi@0: * @test /nodynamiccopyright/ aoqi@0: * @bug 8003280 aoqi@0: * @summary Add lambda tests aoqi@0: * check that pair of bound/non-bound constructor references is flagged as ambiguous aoqi@0: * @author Maurizio Cimadamore aoqi@0: * @compile/fail/ref=MethodReference23.out -XDrawDiagnostics MethodReference23.java aoqi@0: */ aoqi@0: aoqi@0: class MethodReference23 { aoqi@0: aoqi@0: class Inner1 { aoqi@0: Inner1(MethodReference23 outer) {}; aoqi@0: Inner1() {}; aoqi@0: } aoqi@0: aoqi@0: static class Inner2 { aoqi@0: Inner2(MethodReference23 outer) {}; aoqi@0: Inner2() {}; aoqi@0: } aoqi@0: aoqi@0: interface SAM11 { aoqi@0: Inner1 m(MethodReference23 rec); aoqi@0: } aoqi@0: aoqi@0: interface SAM12 { aoqi@0: Inner1 m(); aoqi@0: } aoqi@0: aoqi@0: interface SAM21 { aoqi@0: Inner2 m(MethodReference23 rec); aoqi@0: } aoqi@0: aoqi@0: interface SAM22 { aoqi@0: Inner2 m(); aoqi@0: } aoqi@0: aoqi@0: static void call11(SAM11 s) { } aoqi@0: aoqi@0: static void call12(SAM12 s) { } aoqi@0: aoqi@0: static void call21(SAM21 s) { } aoqi@0: aoqi@0: static void call22(SAM22 s) { } aoqi@0: aoqi@0: static void call3(SAM11 s) { } aoqi@0: static void call3(SAM12 s) { } aoqi@0: static void call3(SAM21 s) { } aoqi@0: static void call3(SAM22 s) { } aoqi@0: aoqi@0: static void test11() { aoqi@0: SAM11 s = MethodReference23.Inner1::new; //ok aoqi@0: call11(MethodReference23.Inner1::new); //ok aoqi@0: } aoqi@0: aoqi@0: static void test12() { aoqi@0: SAM12 s = MethodReference23.Inner1::new; //fail aoqi@0: call12(MethodReference23.Inner1::new); //fail aoqi@0: } aoqi@0: aoqi@0: static void test21() { aoqi@0: SAM21 s = MethodReference23.Inner2::new; //ok aoqi@0: call21(MethodReference23.Inner2::new); //ok aoqi@0: } aoqi@0: aoqi@0: static void test22() { aoqi@0: SAM22 s = MethodReference23.Inner2::new; //ok aoqi@0: call22(MethodReference23.Inner2::new); //ok aoqi@0: } aoqi@0: aoqi@0: static void test3() { aoqi@0: call3(MethodReference23.Inner2::new); //ambiguous aoqi@0: } aoqi@0: }