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