aoqi@0: /* aoqi@0: * @test /nodynamiccopyright/ aoqi@0: * @bug 8003280 aoqi@0: * @summary Add lambda tests aoqi@0: * check that non-compatible method references are rejected aoqi@0: * @compile/fail/ref=MethodReference28.out -XDrawDiagnostics MethodReference28.java aoqi@0: */ aoqi@0: aoqi@0: class MethodReference28 { aoqi@0: aoqi@0: interface SAM1 { aoqi@0: void m(int i); aoqi@0: } aoqi@0: aoqi@0: interface SAM2 { aoqi@0: void m(MethodReference28 rec, int i); aoqi@0: } aoqi@0: aoqi@0: static void static_m1(Integer i) { } //ok - boxing aoqi@0: static void static_m2(Integer i1, Integer i2) { } //wrong arity aoqi@0: static void static_m3(String s) { } //type mismatch aoqi@0: static void static_m4(String... ss) { } //type mismatch - varargs aoqi@0: aoqi@0: void m1(Integer i) { } //ok - boxing aoqi@0: void m2(Integer i1, Integer i2) { } //wrong arity aoqi@0: void m3(String s) { } //type mismatch aoqi@0: void m4(String... ss) { } //type mismatch - varargs aoqi@0: aoqi@0: static void testStatic() { aoqi@0: SAM1 s1 = MethodReference28::static_m1; aoqi@0: SAM1 s2 = MethodReference28::static_m2; aoqi@0: SAM1 s3 = MethodReference28::static_m3; aoqi@0: SAM1 s4 = MethodReference28::static_m4; aoqi@0: } aoqi@0: aoqi@0: void testBadMember() { aoqi@0: SAM1 s1 = MethodReference28::m1; aoqi@0: SAM1 s2 = MethodReference28::m2; aoqi@0: SAM1 s3 = MethodReference28::m3; aoqi@0: SAM1 s4 = MethodReference28::m4; aoqi@0: } aoqi@0: aoqi@0: void testMember() { aoqi@0: SAM1 s1 = this::m1; aoqi@0: SAM1 s2 = this::m2; aoqi@0: SAM1 s3 = this::m3; aoqi@0: SAM1 s4 = this::m4; aoqi@0: } aoqi@0: aoqi@0: static void testUnbound() { aoqi@0: SAM2 s1 = MethodReference28::m1; aoqi@0: SAM2 s2 = MethodReference28::m2; aoqi@0: SAM2 s3 = MethodReference28::m3; aoqi@0: SAM2 s4 = MethodReference28::m4; aoqi@0: } aoqi@0: }