]> git.lizzy.rs Git - rust.git/blob - src/test/ui/parser/lifetime_starts_expressions.rs
Rollup merge of #92024 - pcwalton:per-codegen-unit-names, r=davidtwco
[rust.git] / src / test / ui / parser / lifetime_starts_expressions.rs
1 #![allow(unused, dead_code)]
2
3 fn foo() -> u32 {
4     return 'label: loop { break 'label 42; };
5 }
6
7 fn bar() -> u32 {
8     loop { break 'label: loop { break 'label 42; }; }
9     //~^ ERROR: parentheses are required around this expression to avoid confusion
10     //~| HELP: wrap the expression in parentheses
11 }
12
13 fn baz() -> u32 {
14     'label: loop {
15         break 'label
16         //~^ WARNING: this labeled break expression is easy to confuse with an unlabeled break
17             loop { break 42; };
18             //~^ HELP: wrap this expression in parentheses
19     };
20
21     'label2: loop {
22         break 'label2 'inner: loop { break 42; };
23         // no warnings or errors here
24     }
25 }
26
27 pub fn main() {
28     // Regression test for issue #86948, as resolved in #87026:
29     let a = 'first_loop: loop {
30         break 'first_loop 1;
31     };
32     let b = loop {
33         break 'inner_loop: loop {
34         //~^ ERROR: parentheses are required around this expression to avoid confusion
35         //~| HELP: wrap the expression in parentheses
36             break 'inner_loop 1;
37         };
38     };
39 }