Wed, 27 Apr 2016 01:34:52 +0800
Initial load
http://hg.openjdk.java.net/jdk8u/jdk8u/langtools/
changeset: 2573:53ca196be1ae
tag: jdk8u25-b17
aoqi@0 | 1 | /* |
aoqi@0 | 2 | * @test /nodynamiccopyright/ |
aoqi@0 | 3 | * @bug 8003280 |
aoqi@0 | 4 | * @summary Add lambda tests |
aoqi@0 | 5 | * check case of nested method calls with lambda expression |
aoqi@0 | 6 | * @compile/fail/ref=TargetType24.out -XDrawDiagnostics TargetType24.java |
aoqi@0 | 7 | */ |
aoqi@0 | 8 | |
aoqi@0 | 9 | class TargetType24 { |
aoqi@0 | 10 | |
aoqi@0 | 11 | interface F<A, B> { |
aoqi@0 | 12 | B f(A a); |
aoqi@0 | 13 | } |
aoqi@0 | 14 | |
aoqi@0 | 15 | interface FSub<A, B> extends F<A,B> { } |
aoqi@0 | 16 | |
aoqi@0 | 17 | static class Array<A> { |
aoqi@0 | 18 | boolean forAll(final F<A, Boolean> f) { |
aoqi@0 | 19 | return false; |
aoqi@0 | 20 | } |
aoqi@0 | 21 | |
aoqi@0 | 22 | String forAll(final FSub<A, String> f) { |
aoqi@0 | 23 | return ""; |
aoqi@0 | 24 | } |
aoqi@0 | 25 | |
aoqi@0 | 26 | String forAll2(final FSub<A, String> f) { |
aoqi@0 | 27 | return ""; |
aoqi@0 | 28 | } |
aoqi@0 | 29 | } |
aoqi@0 | 30 | |
aoqi@0 | 31 | void test(Array<String> as, final Array<Character> ac) { |
aoqi@0 | 32 | final boolean b1 = as.forAll((String s) -> ac.forAll((Character c) -> false)); //ok |
aoqi@0 | 33 | final boolean b2 = as.forAll(s -> ac.forAll(c -> false)); //ambiguous |
aoqi@0 | 34 | final boolean b3 = as.forAll((String s) -> ac.forAll(c -> false)); //ambiguous |
aoqi@0 | 35 | final boolean b4 = as.forAll(s -> ac.forAll((Character c) -> false)); //ambiguous |
aoqi@0 | 36 | final String s1 = as.forAll2(s -> ac.forAll2(c -> "")); //ok |
aoqi@0 | 37 | final boolean b5 = as.forAll(s -> ac.forAll(c -> "" )); //fail |
aoqi@0 | 38 | final String s2 = as.forAll2(s -> ac.forAll2(c -> false)); //fail |
aoqi@0 | 39 | final boolean b6 = as.forAll((F<String, Boolean>)s -> ac.forAll((F<Character, Boolean>)c -> "")); //fail |
aoqi@0 | 40 | final String s3 = as.forAll((FSub<String, String>)s -> ac.forAll((FSub<Character, String>)c -> false)); //fail |
aoqi@0 | 41 | } |
aoqi@0 | 42 | } |