about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorTaylor Cramer <cramertaylorj@gmail.com>2017-02-15 23:28:59 -0800
committerTaylor Cramer <cramertaylorj@gmail.com>2017-02-18 12:28:44 -0800
commit4d65622dcd3be66ec53656c499afe7bbc8aa1ae7 (patch)
tree9cbc5fbf98ef9ce23444f41a75e17c1f71a792c0 /src/test
parent5205e2f8b8094a5f3d0205593820391dfe481808 (diff)
downloadrust-4d65622dcd3be66ec53656c499afe7bbc8aa1ae7.tar.gz
rust-4d65622dcd3be66ec53656c499afe7bbc8aa1ae7.zip
Properly implement labeled breaks in while conditions
Diffstat (limited to 'src/test')
-rw-r--r--src/test/run-pass/loop-break-value.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/test/run-pass/loop-break-value.rs b/src/test/run-pass/loop-break-value.rs
index 10ff8dbf18e..4906a8e71d7 100644
--- a/src/test/run-pass/loop-break-value.rs
+++ b/src/test/run-pass/loop-break-value.rs
@@ -122,4 +122,20 @@ pub fn main() {
         panic!();
     };
     assert_eq!(nested_break_value, "hello");
+
+    let break_from_while_cond = loop {
+        'inner_loop: while break 'inner_loop {
+            panic!();
+        }
+        break 123;
+    };
+    assert_eq!(break_from_while_cond, 123);
+
+    let break_from_while_to_outer = 'outer_loop: loop {
+        while break 'outer_loop 567 {
+            panic!("from_inner");
+        }
+        panic!("from outer");
+    };
+    assert_eq!(break_from_while_to_outer, 567);
 }