langtools/test/tools/javac/lambda/TargetType23.java
author sogoel
Thu, 22 May 2014 15:42:10 -0700
changeset 24608 71f05b7d5c10
parent 24404 cf534ffbc9d8
permissions -rw-r--r--
8043336: Missing bug id in test/tools/javac/lambda/TargetType23.java Reviewed-by: jjg, vromero, dlsmith
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14547
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
     1
/*
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
     2
 * @test /nodynamiccopyright/
24608
71f05b7d5c10 8043336: Missing bug id in test/tools/javac/lambda/TargetType23.java
sogoel
parents: 24404
diff changeset
     3
 * @bug 8003280 8034223
14547
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
     4
 * @summary Add lambda tests
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
     5
 *  check case of ambiguous method call with lambda whose body cannot
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
     6
            complete normally
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
     7
 * @compile/fail/ref=TargetType23.out -XDrawDiagnostics TargetType23.java
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
     8
 */
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
     9
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    10
class TargetType23 {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    11
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    12
    interface Sam0 {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    13
        void m();
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    14
    }
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    15
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    16
    interface Sam1 {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    17
        int m();
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    18
    }
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    19
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    20
    interface Sam2 {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    21
        String m();
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    22
    }
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    23
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    24
    interface Sam3<A> {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    25
        A m();
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    26
    }
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    27
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    28
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    29
    void call(Sam0 s) { }
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    30
    void call(Sam1 s) { }
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    31
    void call(Sam2 s) { }
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    32
    <Z> void call(Sam3<Z> s) { }
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    33
24404
cf534ffbc9d8 8034223: Most-specific should not have any special treatment for boxed vs. unboxed types
dlsmith
parents: 14547
diff changeset
    34
    void call2(Sam0 s) { }
cf534ffbc9d8 8034223: Most-specific should not have any special treatment for boxed vs. unboxed types
dlsmith
parents: 14547
diff changeset
    35
    void call2(Sam2 s) { }
cf534ffbc9d8 8034223: Most-specific should not have any special treatment for boxed vs. unboxed types
dlsmith
parents: 14547
diff changeset
    36
    <Z> void call2(Sam3<Z> s) { }
cf534ffbc9d8 8034223: Most-specific should not have any special treatment for boxed vs. unboxed types
dlsmith
parents: 14547
diff changeset
    37
14547
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    38
    void test() {
24404
cf534ffbc9d8 8034223: Most-specific should not have any special treatment for boxed vs. unboxed types
dlsmith
parents: 14547
diff changeset
    39
        call(()-> { throw new RuntimeException(); }); // ambiguous - call(Sam1) vs. call(Sam2)
cf534ffbc9d8 8034223: Most-specific should not have any special treatment for boxed vs. unboxed types
dlsmith
parents: 14547
diff changeset
    40
        call2(()-> { throw new RuntimeException(); }); // ok
14547
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    41
    }
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    42
}