Wed, 24 Sep 2014 11:38:26 -0700
Added tag jdk8u40-b07 for changeset 2fa3858a281f
aoqi@0 | 1 | /* |
aoqi@0 | 2 | * @test /nodynamiccopyright/ |
aoqi@0 | 3 | * @bug 8042759 |
aoqi@0 | 4 | * @summary Lambda returning implicitly-typed lambdas considered pertinent to applicability |
aoqi@0 | 5 | * @compile/fail/ref=ImplicitLambdaConsideredForApplicabilityTest.out -XDrawDiagnostics ImplicitLambdaConsideredForApplicabilityTest.java |
aoqi@0 | 6 | */ |
aoqi@0 | 7 | |
aoqi@0 | 8 | abstract class ImplicitLambdaConsideredForApplicabilityTest { |
aoqi@0 | 9 | interface A { |
aoqi@0 | 10 | B m(int a, int b); |
aoqi@0 | 11 | } |
aoqi@0 | 12 | |
aoqi@0 | 13 | interface C { |
aoqi@0 | 14 | String m(int a, int b); |
aoqi@0 | 15 | } |
aoqi@0 | 16 | |
aoqi@0 | 17 | interface B { |
aoqi@0 | 18 | int m(int c); |
aoqi@0 | 19 | } |
aoqi@0 | 20 | |
aoqi@0 | 21 | abstract void foo(A a); |
aoqi@0 | 22 | |
aoqi@0 | 23 | abstract void foo(C c); |
aoqi@0 | 24 | |
aoqi@0 | 25 | void bar() { |
aoqi@0 | 26 | foo((int a, int b) -> { |
aoqi@0 | 27 | if(a < b) |
aoqi@0 | 28 | return c -> 0; |
aoqi@0 | 29 | else |
aoqi@0 | 30 | return c -> 0; |
aoqi@0 | 31 | }); |
aoqi@0 | 32 | } |
aoqi@0 | 33 | } |