aoqi@0: /* aoqi@0: * @test /nodynamiccopyright/ aoqi@0: * @bug 8003280 8029718 aoqi@0: * @summary Add lambda tests aoqi@0: * check overload resolution and target type inference w.r.t. generic methods aoqi@0: * Should always use lambda body structure to disambiguate overload resolution aoqi@0: * @author Maurizio Cimadamore aoqi@0: * @compile/fail/ref=TargetType02.out -XDrawDiagnostics TargetType02.java aoqi@0: */ aoqi@0: aoqi@0: public class TargetType02 { aoqi@0: aoqi@0: interface S1 { aoqi@0: X m(Integer x); aoqi@0: } aoqi@0: aoqi@0: interface S2 { aoqi@0: abstract X m(Integer x); aoqi@0: } aoqi@0: aoqi@0: static void call1(S1 s) { } aoqi@0: aoqi@0: static void call2(S2 s) { } aoqi@0: aoqi@0: static void call3(S1 s) { } aoqi@0: static void call3(S2 s) { } aoqi@0: aoqi@0: static Z call4(S1 s) { return null; } aoqi@0: static Z call4(S2 s) { return null; } aoqi@0: aoqi@0: void test() { aoqi@0: call1(i -> { toString(); return i; }); aoqi@0: call2(i -> { toString(); return i; }); aoqi@0: call3(i -> { toString(); return i; }); aoqi@0: call3(i -> { aoqi@0: toString(); aoqi@0: return call4(j -> { aoqi@0: return j; aoqi@0: }); aoqi@0: }); aoqi@0: } aoqi@0: }