aoqi@0: /* aoqi@0: * @test /nodynamiccopyright/ aoqi@0: * @bug 8003280 aoqi@0: * @summary Add lambda tests aoqi@0: * check case of nested method calls with lambda expression aoqi@0: * @compile/fail/ref=TargetType24.out -XDrawDiagnostics TargetType24.java aoqi@0: */ aoqi@0: aoqi@0: class TargetType24 { aoqi@0: aoqi@0: interface F { aoqi@0: B f(A a); aoqi@0: } aoqi@0: aoqi@0: interface FSub extends F { } aoqi@0: aoqi@0: static class Array { aoqi@0: boolean forAll(final F f) { aoqi@0: return false; aoqi@0: } aoqi@0: aoqi@0: String forAll(final FSub f) { aoqi@0: return ""; aoqi@0: } aoqi@0: aoqi@0: String forAll2(final FSub f) { aoqi@0: return ""; aoqi@0: } aoqi@0: } aoqi@0: aoqi@0: void test(Array as, final Array ac) { aoqi@0: final boolean b1 = as.forAll((String s) -> ac.forAll((Character c) -> false)); //ok aoqi@0: final boolean b2 = as.forAll(s -> ac.forAll(c -> false)); //ambiguous aoqi@0: final boolean b3 = as.forAll((String s) -> ac.forAll(c -> false)); //ambiguous aoqi@0: final boolean b4 = as.forAll(s -> ac.forAll((Character c) -> false)); //ambiguous aoqi@0: final String s1 = as.forAll2(s -> ac.forAll2(c -> "")); //ok aoqi@0: final boolean b5 = as.forAll(s -> ac.forAll(c -> "" )); //fail aoqi@0: final String s2 = as.forAll2(s -> ac.forAll2(c -> false)); //fail aoqi@0: final boolean b6 = as.forAll((F)s -> ac.forAll((F)c -> "")); //fail aoqi@0: final String s3 = as.forAll((FSub)s -> ac.forAll((FSub)c -> false)); //fail aoqi@0: } aoqi@0: }