3789983e89
Reviewed-by: darcy, ihse
57 lines
1.6 KiB
Java
57 lines
1.6 KiB
Java
/*
|
|
* @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;
|
|
}
|
|
}
|