about summary refs log tree commit diff
path: root/tests/ui/reachable/expr_loop.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/reachable/expr_loop.rs')
-rw-r--r--tests/ui/reachable/expr_loop.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/ui/reachable/expr_loop.rs b/tests/ui/reachable/expr_loop.rs
new file mode 100644
index 00000000000..7eab6f7bb44
--- /dev/null
+++ b/tests/ui/reachable/expr_loop.rs
@@ -0,0 +1,36 @@
+#![allow(unused_variables)]
+#![allow(unused_assignments)]
+#![allow(dead_code)]
+#![deny(unreachable_code)]
+
+fn a() {
+    loop { return; }
+    println!("I am dead.");
+    //~^ ERROR unreachable statement
+}
+
+fn b() {
+    loop {
+        break;
+    }
+    println!("I am not dead.");
+}
+
+fn c() {
+    loop { return; }
+    println!("I am dead.");
+    //~^ ERROR unreachable statement
+}
+
+fn d() {
+    'outer: loop { loop { break 'outer; } }
+    println!("I am not dead.");
+}
+
+fn e() {
+    loop { 'middle: loop { loop { break 'middle; } } }
+    println!("I am dead.");
+    //~^ ERROR unreachable statement
+}
+
+fn main() { }