| /* | |
| * @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 | |
| } | |
| } |