langtools/test/tools/javac/lambda/BadBreakContinue.java
author mcimadamore
Sat, 17 Nov 2012 19:01:03 +0000
changeset 14547 86d8d242b0c4
permissions -rw-r--r--
8003280: Add lambda tests Summary: Turn on lambda expression, method reference and default method support Reviewed-by: jjg
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 break/continue is disallowed in lambda expressions
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=BadBreakContinue.out -XDrawDiagnostics BadBreakContinue.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 BadBreakContinue {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    11
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    12
    static interface SAM {
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
    SAM s1 = ()-> { break; };
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    17
    SAM s2 = ()-> { continue; };
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    18
    SAM s3 = ()-> {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    19
        SAM s3_1 = ()-> { break; };
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    20
        SAM s3_2 = ()-> { continue; };
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    21
    };
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    22
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    23
    void testLabelled() {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    24
        loop: while (true) {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    25
            SAM s1 = ()-> { break loop; };
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    26
            SAM s2 = ()-> { continue loop; };
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    27
            SAM s3 = ()-> {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    28
                SAM s3_1 = ()-> { break loop; };
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    29
                SAM s3_2 = ()-> { continue loop; };
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    30
            };
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    31
        }
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    32
    }
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    33
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    34
    void testNonLabelled() {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    35
        while (true) {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    36
            SAM s1 = ()-> { break; };
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    37
            SAM s2 = ()-> { continue; };
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    38
            SAM s3 = ()-> {
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    39
                SAM s3_1 = ()-> { break; };
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    40
                SAM s3_2 = ()-> { continue; };
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    41
            };
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    42
        }
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    43
    }
86d8d242b0c4 8003280: Add lambda tests
mcimadamore
parents:
diff changeset
    44
}