aoqi@0: /* aoqi@0: * @test /nodynamiccopyright/ aoqi@0: * @bug 8003280 aoqi@0: * @summary Add lambda tests aoqi@0: * special cases of method references (getClass()/Array.clone()) not handled properly aoqi@0: * @compile/fail/ref=MethodReference52.out -XDrawDiagnostics MethodReference52.java aoqi@0: */ aoqi@0: import java.util.*; aoqi@0: aoqi@0: class MethodReference52 { aoqi@0: aoqi@0: interface Clone1 { aoqi@0: int[] m(); aoqi@0: } aoqi@0: aoqi@0: interface Clone2 { aoqi@0: Object m(); aoqi@0: } aoqi@0: aoqi@0: interface WrongClone { aoqi@0: long[] m(); aoqi@0: } aoqi@0: aoqi@0: interface GetClass { aoqi@0: Class m(); aoqi@0: } aoqi@0: aoqi@0: interface WrongGetClass { aoqi@0: Class> m(); aoqi@0: } aoqi@0: aoqi@0: void test(int[] iarr, List ls) { aoqi@0: Clone1 c1 = iarr::clone; //ok aoqi@0: Clone2 c2 = iarr::clone; //ok - type more generic aoqi@0: WrongClone c3 = iarr::clone; //bad return type aoqi@0: GetClass c4 = ls::getClass; //ok aoqi@0: WrongGetClass c5 = ls::getClass; //bad return type aoqi@0: } aoqi@0: }