3789983e89
Reviewed-by: darcy, ihse
40 lines
895 B
Java
40 lines
895 B
Java
/*
|
|
* @test /nodynamiccopyright/
|
|
* @bug 8003280
|
|
* @summary Add lambda tests
|
|
* special cases of method references (getClass()/Array.clone()) not handled properly
|
|
* @compile/fail/ref=MethodReference52.out -XDrawDiagnostics MethodReference52.java
|
|
*/
|
|
import java.util.*;
|
|
|
|
class MethodReference52 {
|
|
|
|
interface Clone1 {
|
|
int[] m();
|
|
}
|
|
|
|
interface Clone2 {
|
|
Object m();
|
|
}
|
|
|
|
interface WrongClone {
|
|
long[] m();
|
|
}
|
|
|
|
interface GetClass {
|
|
Class<? extends List> m();
|
|
}
|
|
|
|
interface WrongGetClass {
|
|
Class<List<String>> m();
|
|
}
|
|
|
|
void test(int[] iarr, List<String> ls) {
|
|
Clone1 c1 = iarr::clone; //ok
|
|
Clone2 c2 = iarr::clone; //ok - type more generic
|
|
WrongClone c3 = iarr::clone; //bad return type
|
|
GetClass c4 = ls::getClass; //ok
|
|
WrongGetClass c5 = ls::getClass; //bad return type
|
|
}
|
|
}
|