about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Wright <mikerite@lavabit.com>2019-05-06 07:49:45 +0200
committerMichael Wright <mikerite@lavabit.com>2019-05-06 07:49:45 +0200
commita4bba694c0bdf35142682374cb01c3083e11ebae (patch)
tree24560b71dbea67056cbf528accd82a32848d7421
parentfc96aa036884183ddc68d2659f4633e6f138b4e0 (diff)
downloadrust-a4bba694c0bdf35142682374cb01c3083e11ebae.tar.gz
rust-a4bba694c0bdf35142682374cb01c3083e11ebae.zip
Clean up while_loop tests
At some stage, we started adding test cases inside the function which tests
refutable patterns. This commits splits those test cases out into separate
functions.
-rw-r--r--tests/ui/while_loop.rs27
-rw-r--r--tests/ui/while_loop.stderr4
2 files changed, 21 insertions, 10 deletions
diff --git a/tests/ui/while_loop.rs b/tests/ui/while_loop.rs
index ee7f7306a4b..005ce141d27 100644
--- a/tests/ui/while_loop.rs
+++ b/tests/ui/while_loop.rs
@@ -169,7 +169,10 @@ fn refutable() {
     for &(1, 2, 3) in b {}
     for &Option::None in b.next() {}
     // */
+}
 
+fn nested_loops() {
+    let a = [42, 1337];
     let mut y = a.iter();
     loop {
         // x is reused, so don't lint here
@@ -189,7 +192,9 @@ fn refutable() {
             // use a for loop here
         }
     }
+}
 
+fn issue1948() {
     // should not trigger clippy::while_let_loop lint because break passes an expression
     let a = Some(10);
     let b = loop {
@@ -199,7 +204,9 @@ fn refutable() {
             break None;
         }
     };
+}
 
+fn issue1121() {
     use std::collections::HashSet;
     let mut values = HashSet::new();
     values.insert(1);
@@ -207,23 +214,27 @@ fn refutable() {
     while let Some(&value) = values.iter().next() {
         values.remove(&value);
     }
+}
 
+fn issue2965() {
     // This should not cause an ICE and suggest:
     //
     // for _ in values.iter() {}
     //
-    // See #2965
+    use std::collections::HashSet;
+    let mut values = HashSet::new();
+    values.insert(1);
+
     while let Some(..) = values.iter().next() {
         values.remove(&1);
     }
+}
 
-    // Issue 3670
-    {
-        let array = [Some(0), None, Some(1)];
-        let mut iter = array.iter();
+fn issue3670() {
+    let array = [Some(0), None, Some(1)];
+    let mut iter = array.iter();
 
-        while let Some(elem) = iter.next() {
-            let _ = elem.or_else(|| *iter.next()?);
-        }
+    while let Some(elem) = iter.next() {
+        let _ = elem.or_else(|| *iter.next()?);
     }
 }
diff --git a/tests/ui/while_loop.stderr b/tests/ui/while_loop.stderr
index dde98da46c3..4c27ea0b9ba 100644
--- a/tests/ui/while_loop.stderr
+++ b/tests/ui/while_loop.stderr
@@ -100,13 +100,13 @@ LL |         loop {}
    = note: `-D clippy::empty-loop` implied by `-D warnings`
 
 error: this loop could be written as a `for` loop
-  --> $DIR/while_loop.rs:188:29
+  --> $DIR/while_loop.rs:191:29
    |
 LL |         while let Some(v) = y.next() {
    |                             ^^^^^^^^ help: try: `for v in y { .. }`
 
 error: this loop could be written as a `for` loop
-  --> $DIR/while_loop.rs:216:26
+  --> $DIR/while_loop.rs:228:26
    |
 LL |     while let Some(..) = values.iter().next() {
    |                          ^^^^^^^^^^^^^^^^^^^^ help: try: `for _ in values.iter() { .. }`