Add test case for shadowed labels, with the inner broken multiple times
This commit is contained in:
parent
acd6ab8f0f
commit
0f274122ee
2 changed files with 37 additions and 8 deletions
|
|
@ -33,27 +33,41 @@ fn main() {
|
|||
break 'used_loop_label;
|
||||
}
|
||||
|
||||
'used_loop_label_outer_1: loop {
|
||||
'used_loop_label_inner_1: loop {
|
||||
'used_loop_label_outer_1: for _ in 0..10 {
|
||||
'used_loop_label_inner_1: for _ in 0..10 {
|
||||
break 'used_loop_label_inner_1;
|
||||
}
|
||||
break 'used_loop_label_outer_1;
|
||||
}
|
||||
|
||||
'used_loop_label_outer_2: loop {
|
||||
'unused_loop_label_inner_2: loop {
|
||||
'used_loop_label_outer_2: for _ in 0..10 {
|
||||
'unused_loop_label_inner_2: for _ in 0..10 {
|
||||
//~^ WARN unused label
|
||||
break 'used_loop_label_outer_2;
|
||||
}
|
||||
}
|
||||
|
||||
'unused_loop_label_outer_3: loop {
|
||||
'unused_loop_label_outer_3: for _ in 0..10 {
|
||||
//~^ WARN unused label
|
||||
'used_loop_label_inner_3: loop {
|
||||
'used_loop_label_inner_3: for _ in 0..10 {
|
||||
break 'used_loop_label_inner_3;
|
||||
}
|
||||
}
|
||||
|
||||
// Test breaking many times with the same inner label doesn't break the
|
||||
// warning on the outer label
|
||||
'many_used_shadowed: for _ in 0..10 {
|
||||
//~^ WARN unused label
|
||||
'many_used_shadowed: for _ in 0..10 {
|
||||
//~^ WARN label name `'many_used_shadowed` shadows a label name that is already in scope
|
||||
if 1 % 2 == 0 {
|
||||
break 'many_used_shadowed;
|
||||
} else {
|
||||
break 'many_used_shadowed;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This is diverging, so put it at the end so we don't get
|
||||
// unreachable_code errors everywhere else
|
||||
'unused_loop_label: loop {
|
||||
|
|
|
|||
|
|
@ -21,18 +21,33 @@ LL | 'unused_for_label: for _ in 0..10 {
|
|||
warning: unused label
|
||||
--> $DIR/unused_label.rs:44:9
|
||||
|
|
||||
LL | 'unused_loop_label_inner_2: loop {
|
||||
LL | 'unused_loop_label_inner_2: for _ in 0..10 {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
warning: unused label
|
||||
--> $DIR/unused_label.rs:50:5
|
||||
|
|
||||
LL | 'unused_loop_label_outer_3: loop {
|
||||
LL | 'unused_loop_label_outer_3: for _ in 0..10 {
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
warning: unused label
|
||||
--> $DIR/unused_label.rs:59:5
|
||||
|
|
||||
LL | 'many_used_shadowed: for _ in 0..10 {
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
warning: unused label
|
||||
--> $DIR/unused_label.rs:73:5
|
||||
|
|
||||
LL | 'unused_loop_label: loop {
|
||||
| ^^^^^^^^^^^^^^^^^^
|
||||
|
||||
warning: label name `'many_used_shadowed` shadows a label name that is already in scope
|
||||
--> $DIR/unused_label.rs:61:9
|
||||
|
|
||||
LL | 'many_used_shadowed: for _ in 0..10 {
|
||||
| ------------------- first declared here
|
||||
LL | //~^ WARN unused label
|
||||
LL | 'many_used_shadowed: for _ in 0..10 {
|
||||
| ^^^^^^^^^^^^^^^^^^^ lifetime 'many_used_shadowed already in scope
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue