]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/never_loop.rs
Auto merge of #4478 - tsurai:master, r=flip1995
[rust.git] / tests / ui / never_loop.rs
index 2712db2bd318657e7af092f798838e08c51f04b4..cbc4ca39161681f3edd71b684a9a91a2d8722d0b 100644 (file)
@@ -1,13 +1,17 @@
-
-
-#![allow(single_match, unused_assignments, unused_variables)]
+#![allow(
+    clippy::single_match,
+    unused_assignments,
+    unused_variables,
+    clippy::while_immutable_condition
+)]
 
 fn test1() {
     let mut x = 0;
-    loop { // never_loop
+    loop {
+        // clippy::never_loop
         x += 1;
         if x == 1 {
-            return
+            return;
         }
         break;
     }
@@ -18,16 +22,17 @@ fn test2() {
     loop {
         x += 1;
         if x == 1 {
-            break
+            break;
         }
     }
 }
 
 fn test3() {
     let mut x = 0;
-    loop { // never loops
+    loop {
+        // never loops
         x += 1;
-        break
+        break;
     }
 }
 
@@ -44,24 +49,29 @@ fn test4() {
 
 fn test5() {
     let i = 0;
-       loop { // never loops
-        while i == 0 { // never loops
-            break
+    loop {
+        // never loops
+        while i == 0 {
+            // never loops
+            break;
         }
-        return
-       }
+        return;
+    }
 }
 
 fn test6() {
     let mut x = 0;
     'outer: loop {
         x += 1;
-               loop { // never loops
-            if x == 5 { break }
-                       continue 'outer
-               }
-               return
-       }
+        loop {
+            // never loops
+            if x == 5 {
+                break;
+            }
+            continue 'outer;
+        }
+        return;
+    }
 }
 
 fn test7() {
@@ -72,7 +82,7 @@ fn test7() {
             1 => continue,
             _ => (),
         }
-        return
+        return;
     }
 }
 
@@ -89,13 +99,15 @@ fn test8() {
 
 fn test9() {
     let x = Some(1);
-    while let Some(y) = x { // never loops
-        return
+    while let Some(y) = x {
+        // never loops
+        return;
     }
 }
 
 fn test10() {
-    for x in 0..10 { // never loops
+    for x in 0..10 {
+        // never loops
         match x {
             1 => break,
             _ => return,
@@ -108,7 +120,7 @@ fn test11<F: FnMut() -> i32>(mut f: F) {
         return match f() {
             1 => continue,
             _ => (),
-        }
+        };
     }
 }
 
@@ -128,7 +140,8 @@ pub fn test12(a: bool, b: bool) {
 
 pub fn test13() {
     let mut a = true;
-    loop { // infinite loop
+    loop {
+        // infinite loop
         while a {
             if true {
                 a = false;
@@ -141,11 +154,12 @@ pub fn test13() {
 
 pub fn test14() {
     let mut a = true;
-    'outer: while a { // never loops
+    'outer: while a {
+        // never loops
         while a {
             if a {
                 a = false;
-                continue
+                continue;
             }
         }
         break 'outer;
@@ -161,6 +175,17 @@ pub fn test15() {
     }
 }
 
+// Issue #4058: `continue` in `break` expression
+pub fn test16() {
+    let mut n = 1;
+    loop {
+        break if n != 5 {
+            n += 1;
+            continue;
+        };
+    }
+}
+
 fn main() {
     test1();
     test2();
@@ -177,4 +202,3 @@ fn main() {
     test13();
     test14();
 }
-