langtools/test/tools/javac/lambda/BadReturn.java
author mcimadamore
Wed, 17 Jul 2013 14:04:01 +0100
changeset 18909 8f9fc5d876e4
parent 14547 86d8d242b0c4
permissions -rw-r--r--
8012242: Lambda compatibility and checked exceptions Summary: Inference variables in 'throws' clause with no constraints should be inferred as RuntimeException Reviewed-by: jjg, vromero
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/
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
     3
 * @bug 8003280
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 that incompatible return types in lambdas are flagged with error
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
     6
 * @author  Maurizio Cimadamore
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
     7
 * @compile/fail/ref=BadReturn.out -XDrawDiagnostics BadReturn.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 BadReturn {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    11
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    12
    interface SAM {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    13
        Comparable<?> 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
    static void testNeg1() {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    17
        SAM s = ()-> {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    18
            if (true) {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    19
                return "";
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    20
            } else {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    21
                return System.out.println("");
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
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    25
    static void testNeg2() {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    26
        SAM s = ()-> { return System.out.println(""); };
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
    static void testPos() {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    30
        SAM s = ()-> {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    31
            if (false) {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    32
                return 10;
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    33
            }
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    34
            else {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    35
                return true;
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    36
            }};
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    37
    }
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    38
}