1 /*
2  * @test /nodynamiccopyright/
3  * @bug 8003280
4  * @summary Add lambda tests
5  *  check that break/continue is disallowed in lambda expressions
6  * @author  Maurizio Cimadamore
7  * @compile/fail/ref=BadBreakContinue.out -XDrawDiagnostics BadBreakContinue.java
8  */
9 
10 class BadBreakContinue {
11 
12     static interface SAM {
m()13        void m();
14     }
15 
16     SAM s1 = ()-> { break; };
17     SAM s2 = ()-> { continue; };
18     SAM s3 = ()-> {
19         SAM s3_1 = ()-> { break; };
20         SAM s3_2 = ()-> { continue; };
21     };
22 
testLabelled()23     void testLabelled() {
24         loop: while (true) {
25             SAM s1 = ()-> { break loop; };
26             SAM s2 = ()-> { continue loop; };
27             SAM s3 = ()-> {
28                 SAM s3_1 = ()-> { break loop; };
29                 SAM s3_2 = ()-> { continue loop; };
30             };
31         }
32     }
33 
testNonLabelled()34     void testNonLabelled() {
35         while (true) {
36             SAM s1 = ()-> { break; };
37             SAM s2 = ()-> { continue; };
38             SAM s3 = ()-> {
39                 SAM s3_1 = ()-> { break; };
40                 SAM s3_2 = ()-> { continue; };
41             };
42         }
43     }
44 }
45