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 method references checked correctly aoqi@0: * @author Maurizio Cimadamore aoqi@0: * @compile/fail/ref=MethodReference22.out -XDrawDiagnostics MethodReference22.java aoqi@0: */ aoqi@0: aoqi@0: class MethodReference22 { aoqi@0: aoqi@0: void m1(String x) { } aoqi@0: void m1(MethodReference22 rec, String x) { } aoqi@0: aoqi@0: static void m2(String x) { } aoqi@0: static void m2(MethodReference22 rec, String x) { } aoqi@0: aoqi@0: static void m3(String x) { } aoqi@0: void m3(MethodReference22 rec, String x) { } aoqi@0: aoqi@0: void m4(String x) { } aoqi@0: static void m4(MethodReference22 rec, String x) { } aoqi@0: aoqi@0: interface SAM1 { aoqi@0: void m(String x); aoqi@0: } aoqi@0: aoqi@0: interface SAM2 { aoqi@0: void m(MethodReference22 rec, String x); aoqi@0: } aoqi@0: aoqi@0: static void call1(SAM1 s) { } aoqi@0: aoqi@0: static void call2(SAM2 s) { } aoqi@0: aoqi@0: static void call3(SAM1 s) { } aoqi@0: static void call3(SAM2 s) { } aoqi@0: aoqi@0: static void test1() { aoqi@0: SAM1 s1 = MethodReference22::m1; //fail aoqi@0: call1(MethodReference22::m1); //fail aoqi@0: SAM1 s2 = MethodReference22::m2; //ok aoqi@0: call1(MethodReference22::m2); //ok aoqi@0: SAM1 s3 = MethodReference22::m3; //ok aoqi@0: call1(MethodReference22::m3); //ok aoqi@0: SAM1 s4 = MethodReference22::m4; //fail aoqi@0: call1(MethodReference22::m4); //fail aoqi@0: } aoqi@0: aoqi@0: static void test2() { mcimadamore@1610: SAM2 s1 = MethodReference22::m1; //ambiguous mcimadamore@1610: call2(MethodReference22::m1); //ambiguous mcimadamore@1610: SAM2 s2 = MethodReference22::m2; //ambiguous mcimadamore@1610: call2(MethodReference22::m2); //ambiguous mcimadamore@1610: SAM2 s3 = MethodReference22::m3; //ambiguous mcimadamore@1610: call2(MethodReference22::m3); //ambiguous mcimadamore@1610: SAM2 s4 = MethodReference22::m4; //ambiguous mcimadamore@1610: call2(MethodReference22::m4); //ambiguous aoqi@0: } aoqi@0: aoqi@0: static void test3() { mcimadamore@1610: call3(MethodReference22::m1); //fail mcimadamore@1610: call3(MethodReference22::m2); //ok aoqi@0: call3(MethodReference22::m3); //ok aoqi@0: call3(MethodReference22::m4); //fail aoqi@0: } aoqi@0: }