diff options
| author | Kyle Stachowicz <kylestach99@gmail.com> | 2018-05-15 20:17:20 -0700 |
|---|---|---|
| committer | Kyle Stachowicz <kylestach99@gmail.com> | 2018-05-18 16:57:15 -0700 |
| commit | 0f274122eef3c69c09c406dff32d695fca5509b3 (patch) | |
| tree | 82d339bc69fc23fb16731e5020c495ccafaeff14 | |
| parent | acd6ab8f0f00365b424ac9cd83d9d08852add0bc (diff) | |
| download | rust-0f274122eef3c69c09c406dff32d695fca5509b3.tar.gz rust-0f274122eef3c69c09c406dff32d695fca5509b3.zip | |
Add test case for shadowed labels, with the inner broken multiple times
| -rw-r--r-- | src/test/ui/lint/unused_label.rs | 26 | ||||
| -rw-r--r-- | src/test/ui/lint/unused_label.stderr | 19 |
2 files changed, 37 insertions, 8 deletions
diff --git a/src/test/ui/lint/unused_label.rs b/src/test/ui/lint/unused_label.rs index ceb70fc542d..f19b793546e 100644 --- a/src/test/ui/lint/unused_label.rs +++ b/src/test/ui/lint/unused_label.rs @@ -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 { diff --git a/src/test/ui/lint/unused_label.stderr b/src/test/ui/lint/unused_label.stderr index 31f78b28ef5..e78df677942 100644 --- a/src/test/ui/lint/unused_label.stderr +++ b/src/test/ui/lint/unused_label.stderr @@ -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 + |
