about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-01-19 07:49:48 +0000
committerbors <bors@rust-lang.org>2020-01-19 07:49:48 +0000
commitf728bcd43187bbebceab3ff9424ecbb89524441c (patch)
treebfd0a37d897feaa31d54dfc308f70c917bbd5988
parent0a7003ecf0e80b3237068df0210767120aca4d25 (diff)
parentdfab83fe11bf933ec26a45349780ef08c016d43a (diff)
downloadrust-f728bcd43187bbebceab3ff9424ecbb89524441c.tar.gz
rust-f728bcd43187bbebceab3ff9424ecbb89524441c.zip
Auto merge of #5066 - JohnTitor:split-up-1447, r=llogiq
Split up `if_same_then_else` ui test

Part of #2038

changelog: none
-rw-r--r--tests/ui/if_same_then_else.rs137
-rw-r--r--tests/ui/if_same_then_else.stderr157
-rw-r--r--tests/ui/if_same_then_else2.rs140
-rw-r--r--tests/ui/if_same_then_else2.stderr125
4 files changed, 279 insertions, 280 deletions
diff --git a/tests/ui/if_same_then_else.rs b/tests/ui/if_same_then_else.rs
index ecdc5623ca5..67b4c311085 100644
--- a/tests/ui/if_same_then_else.rs
+++ b/tests/ui/if_same_then_else.rs
@@ -1,14 +1,11 @@
 #![warn(clippy::if_same_then_else)]
 #![allow(
     clippy::blacklisted_name,
-    clippy::collapsible_if,
-    clippy::cognitive_complexity,
     clippy::eq_op,
-    clippy::needless_return,
     clippy::never_loop,
     clippy::no_effect,
-    clippy::zero_divided_by_zero,
-    clippy::unused_unit
+    clippy::unused_unit,
+    clippy::zero_divided_by_zero
 )]
 
 struct Foo {
@@ -19,7 +16,7 @@ fn foo() -> bool {
     unimplemented!()
 }
 
-fn if_same_then_else() -> Result<&'static str, ()> {
+fn if_same_then_else() {
     if true {
         Foo { bar: 42 };
         0..10;
@@ -95,27 +92,6 @@ fn if_same_then_else() -> Result<&'static str, ()> {
     };
 
     if true {
-        for _ in &[42] {
-            let foo: &Option<_> = &Some::<u8>(42);
-            if true {
-                break;
-            } else {
-                continue;
-            }
-        }
-    } else {
-        //~ ERROR same body as `if` block
-        for _ in &[42] {
-            let foo: &Option<_> = &Some::<u8>(42);
-            if true {
-                break;
-            } else {
-                continue;
-            }
-        }
-    }
-
-    if true {
         let bar = if true { 42 } else { 43 };
 
         while foo() {
@@ -149,113 +125,6 @@ fn if_same_then_else() -> Result<&'static str, ()> {
             _ => 4,
         };
     }
-
-    if true {
-        if let Some(a) = Some(42) {}
-    } else {
-        //~ ERROR same body as `if` block
-        if let Some(a) = Some(42) {}
-    }
-
-    if true {
-        if let (1, .., 3) = (1, 2, 3) {}
-    } else {
-        //~ ERROR same body as `if` block
-        if let (1, .., 3) = (1, 2, 3) {}
-    }
-
-    if true {
-        if let (1, .., 3) = (1, 2, 3) {}
-    } else {
-        if let (.., 3) = (1, 2, 3) {}
-    }
-
-    if true {
-        if let (1, .., 3) = (1, 2, 3) {}
-    } else {
-        if let (.., 4) = (1, 2, 3) {}
-    }
-
-    if true {
-        if let (1, .., 3) = (1, 2, 3) {}
-    } else {
-        if let (.., 1, 3) = (1, 2, 3) {}
-    }
-
-    if true {
-        if let Some(42) = None {}
-    } else {
-        if let Option::Some(42) = None {}
-    }
-
-    if true {
-        if let Some(42) = None::<u8> {}
-    } else {
-        if let Some(42) = None {}
-    }
-
-    if true {
-        if let Some(42) = None::<u8> {}
-    } else {
-        if let Some(42) = None::<u32> {}
-    }
-
-    if true {
-        if let Some(a) = Some(42) {}
-    } else {
-        if let Some(a) = Some(43) {}
-    }
-
-    // Same NaNs
-    let _ = if true {
-        std::f32::NAN
-    } else {
-        //~ ERROR same body as `if` block
-        std::f32::NAN
-    };
-
-    if true {
-        Ok("foo")?;
-    } else {
-        //~ ERROR same body as `if` block
-        Ok("foo")?;
-    }
-
-    if true {
-        let foo = "";
-        return Ok(&foo[0..]);
-    } else if false {
-        let foo = "bar";
-        return Ok(&foo[0..]);
-    } else {
-        let foo = "";
-        return Ok(&foo[0..]);
-    }
-
-    if true {
-        let foo = "";
-        return Ok(&foo[0..]);
-    } else if false {
-        let foo = "bar";
-        return Ok(&foo[0..]);
-    } else if true {
-        let foo = "";
-        return Ok(&foo[0..]);
-    } else {
-        let foo = "";
-        return Ok(&foo[0..]);
-    }
-
-    // False positive `if_same_then_else`: `let (x, y)` vs. `let (y, x)`; see issue #3559.
-    if true {
-        let foo = "";
-        let (x, y) = (1, 2);
-        return Ok(&foo[x..y]);
-    } else {
-        let foo = "";
-        let (y, x) = (1, 2);
-        return Ok(&foo[x..y]);
-    }
 }
 
 // Issue #2423. This was causing an ICE.
diff --git a/tests/ui/if_same_then_else.stderr b/tests/ui/if_same_then_else.stderr
index 0c2a1fdb78a..d9fdf06fa8b 100644
--- a/tests/ui/if_same_then_else.stderr
+++ b/tests/ui/if_same_then_else.stderr
@@ -1,5 +1,5 @@
 error: this `if` has identical blocks
-  --> $DIR/if_same_then_else.rs:31:12
+  --> $DIR/if_same_then_else.rs:28:12
    |
 LL |       } else {
    |  ____________^
@@ -13,7 +13,7 @@ LL | |     }
    |
    = note: `-D clippy::if-same-then-else` implied by `-D warnings`
 note: same as this
-  --> $DIR/if_same_then_else.rs:23:13
+  --> $DIR/if_same_then_else.rs:20:13
    |
 LL |       if true {
    |  _____________^
@@ -26,7 +26,7 @@ LL | |     } else {
    | |_____^
 
 error: this `if` has identical blocks
-  --> $DIR/if_same_then_else.rs:69:12
+  --> $DIR/if_same_then_else.rs:66:12
    |
 LL |       } else {
    |  ____________^
@@ -36,7 +36,7 @@ LL | |     };
    | |_____^
    |
 note: same as this
-  --> $DIR/if_same_then_else.rs:67:21
+  --> $DIR/if_same_then_else.rs:64:21
    |
 LL |       let _ = if true {
    |  _____________________^
@@ -45,7 +45,7 @@ LL | |     } else {
    | |_____^
 
 error: this `if` has identical blocks
-  --> $DIR/if_same_then_else.rs:76:12
+  --> $DIR/if_same_then_else.rs:73:12
    |
 LL |       } else {
    |  ____________^
@@ -55,7 +55,7 @@ LL | |     };
    | |_____^
    |
 note: same as this
-  --> $DIR/if_same_then_else.rs:74:21
+  --> $DIR/if_same_then_else.rs:71:21
    |
 LL |       let _ = if true {
    |  _____________________^
@@ -64,7 +64,7 @@ LL | |     } else {
    | |_____^
 
 error: this `if` has identical blocks
-  --> $DIR/if_same_then_else.rs:92:12
+  --> $DIR/if_same_then_else.rs:89:12
    |
 LL |       } else {
    |  ____________^
@@ -74,7 +74,7 @@ LL | |     };
    | |_____^
    |
 note: same as this
-  --> $DIR/if_same_then_else.rs:90:21
+  --> $DIR/if_same_then_else.rs:87:21
    |
 LL |       let _ = if true {
    |  _____________________^
@@ -83,33 +83,7 @@ LL | |     } else {
    | |_____^
 
 error: this `if` has identical blocks
-  --> $DIR/if_same_then_else.rs:106:12
-   |
-LL |       } else {
-   |  ____________^
-LL | |         //~ ERROR same body as `if` block
-LL | |         for _ in &[42] {
-LL | |             let foo: &Option<_> = &Some::<u8>(42);
-...  |
-LL | |         }
-LL | |     }
-   | |_____^
-   |
-note: same as this
-  --> $DIR/if_same_then_else.rs:97:13
-   |
-LL |       if true {
-   |  _____________^
-LL | |         for _ in &[42] {
-LL | |             let foo: &Option<_> = &Some::<u8>(42);
-LL | |             if true {
-...  |
-LL | |         }
-LL | |     } else {
-   | |_____^
-
-error: this `if` has identical blocks
-  --> $DIR/if_same_then_else.rs:125:12
+  --> $DIR/if_same_then_else.rs:101:12
    |
 LL |       } else {
    |  ____________^
@@ -122,7 +96,7 @@ LL | |     }
    | |_____^
    |
 note: same as this
-  --> $DIR/if_same_then_else.rs:118:13
+  --> $DIR/if_same_then_else.rs:94:13
    |
 LL |       if true {
    |  _____________^
@@ -134,114 +108,5 @@ LL | |         bar + 1;
 LL | |     } else {
    | |_____^
 
-error: this `if` has identical blocks
-  --> $DIR/if_same_then_else.rs:155:12
-   |
-LL |       } else {
-   |  ____________^
-LL | |         //~ ERROR same body as `if` block
-LL | |         if let Some(a) = Some(42) {}
-LL | |     }
-   | |_____^
-   |
-note: same as this
-  --> $DIR/if_same_then_else.rs:153:13
-   |
-LL |       if true {
-   |  _____________^
-LL | |         if let Some(a) = Some(42) {}
-LL | |     } else {
-   | |_____^
-
-error: this `if` has identical blocks
-  --> $DIR/if_same_then_else.rs:162:12
-   |
-LL |       } else {
-   |  ____________^
-LL | |         //~ ERROR same body as `if` block
-LL | |         if let (1, .., 3) = (1, 2, 3) {}
-LL | |     }
-   | |_____^
-   |
-note: same as this
-  --> $DIR/if_same_then_else.rs:160:13
-   |
-LL |       if true {
-   |  _____________^
-LL | |         if let (1, .., 3) = (1, 2, 3) {}
-LL | |     } else {
-   | |_____^
-
-error: this `if` has identical blocks
-  --> $DIR/if_same_then_else.rs:212:12
-   |
-LL |       } else {
-   |  ____________^
-LL | |         //~ ERROR same body as `if` block
-LL | |         std::f32::NAN
-LL | |     };
-   | |_____^
-   |
-note: same as this
-  --> $DIR/if_same_then_else.rs:210:21
-   |
-LL |       let _ = if true {
-   |  _____________________^
-LL | |         std::f32::NAN
-LL | |     } else {
-   | |_____^
-
-error: this `if` has identical blocks
-  --> $DIR/if_same_then_else.rs:219:12
-   |
-LL |       } else {
-   |  ____________^
-LL | |         //~ ERROR same body as `if` block
-LL | |         Ok("foo")?;
-LL | |     }
-   | |_____^
-   |
-note: same as this
-  --> $DIR/if_same_then_else.rs:217:13
-   |
-LL |       if true {
-   |  _____________^
-LL | |         Ok("foo")?;
-LL | |     } else {
-   | |_____^
-
-error: this `if` has identical blocks
-  --> $DIR/if_same_then_else.rs:244:12
-   |
-LL |       } else {
-   |  ____________^
-LL | |         let foo = "";
-LL | |         return Ok(&foo[0..]);
-LL | |     }
-   | |_____^
-   |
-note: same as this
-  --> $DIR/if_same_then_else.rs:241:20
-   |
-LL |       } else if true {
-   |  ____________________^
-LL | |         let foo = "";
-LL | |         return Ok(&foo[0..]);
-LL | |     } else {
-   | |_____^
-
-error: this `if` has the same condition as a previous `if`
-  --> $DIR/if_same_then_else.rs:241:15
-   |
-LL |     } else if true {
-   |               ^^^^
-   |
-   = note: `#[deny(clippy::ifs_same_cond)]` on by default
-note: same as this
-  --> $DIR/if_same_then_else.rs:235:8
-   |
-LL |     if true {
-   |        ^^^^
-
-error: aborting due to 12 previous errors
+error: aborting due to 5 previous errors
 
diff --git a/tests/ui/if_same_then_else2.rs b/tests/ui/if_same_then_else2.rs
new file mode 100644
index 00000000000..8e61bf3830b
--- /dev/null
+++ b/tests/ui/if_same_then_else2.rs
@@ -0,0 +1,140 @@
+#![warn(clippy::if_same_then_else)]
+#![allow(
+    clippy::blacklisted_name,
+    clippy::cognitive_complexity,
+    clippy::collapsible_if,
+    clippy::ifs_same_cond,
+    clippy::needless_return
+)]
+
+fn if_same_then_else2() -> Result<&'static str, ()> {
+    if true {
+        for _ in &[42] {
+            let foo: &Option<_> = &Some::<u8>(42);
+            if true {
+                break;
+            } else {
+                continue;
+            }
+        }
+    } else {
+        //~ ERROR same body as `if` block
+        for _ in &[42] {
+            let foo: &Option<_> = &Some::<u8>(42);
+            if true {
+                break;
+            } else {
+                continue;
+            }
+        }
+    }
+
+    if true {
+        if let Some(a) = Some(42) {}
+    } else {
+        //~ ERROR same body as `if` block
+        if let Some(a) = Some(42) {}
+    }
+
+    if true {
+        if let (1, .., 3) = (1, 2, 3) {}
+    } else {
+        //~ ERROR same body as `if` block
+        if let (1, .., 3) = (1, 2, 3) {}
+    }
+
+    if true {
+        if let (1, .., 3) = (1, 2, 3) {}
+    } else {
+        if let (.., 3) = (1, 2, 3) {}
+    }
+
+    if true {
+        if let (1, .., 3) = (1, 2, 3) {}
+    } else {
+        if let (.., 4) = (1, 2, 3) {}
+    }
+
+    if true {
+        if let (1, .., 3) = (1, 2, 3) {}
+    } else {
+        if let (.., 1, 3) = (1, 2, 3) {}
+    }
+
+    if true {
+        if let Some(42) = None {}
+    } else {
+        if let Option::Some(42) = None {}
+    }
+
+    if true {
+        if let Some(42) = None::<u8> {}
+    } else {
+        if let Some(42) = None {}
+    }
+
+    if true {
+        if let Some(42) = None::<u8> {}
+    } else {
+        if let Some(42) = None::<u32> {}
+    }
+
+    if true {
+        if let Some(a) = Some(42) {}
+    } else {
+        if let Some(a) = Some(43) {}
+    }
+
+    // Same NaNs
+    let _ = if true {
+        std::f32::NAN
+    } else {
+        //~ ERROR same body as `if` block
+        std::f32::NAN
+    };
+
+    if true {
+        Ok("foo")?;
+    } else {
+        //~ ERROR same body as `if` block
+        Ok("foo")?;
+    }
+
+    if true {
+        let foo = "";
+        return Ok(&foo[0..]);
+    } else if false {
+        let foo = "bar";
+        return Ok(&foo[0..]);
+    } else {
+        let foo = "";
+        return Ok(&foo[0..]);
+    }
+
+    if true {
+        let foo = "";
+        return Ok(&foo[0..]);
+    } else if false {
+        let foo = "bar";
+        return Ok(&foo[0..]);
+    } else if true {
+        let foo = "";
+        return Ok(&foo[0..]);
+    } else {
+        let foo = "";
+        return Ok(&foo[0..]);
+    }
+
+    // False positive `if_same_then_else`: `let (x, y)` vs. `let (y, x)`; see issue #3559.
+    if true {
+        let foo = "";
+        let (x, y) = (1, 2);
+        return Ok(&foo[x..y]);
+    } else {
+        let foo = "";
+        let (y, x) = (1, 2);
+        return Ok(&foo[x..y]);
+    }
+}
+
+fn main() {}
diff --git a/tests/ui/if_same_then_else2.stderr b/tests/ui/if_same_then_else2.stderr
new file mode 100644
index 00000000000..c6da3c6be64
--- /dev/null
+++ b/tests/ui/if_same_then_else2.stderr
@@ -0,0 +1,125 @@
+error: this `if` has identical blocks
+  --> $DIR/if_same_then_else2.rs:20:12
+   |
+LL |       } else {
+   |  ____________^
+LL | |         //~ ERROR same body as `if` block
+LL | |         for _ in &[42] {
+LL | |             let foo: &Option<_> = &Some::<u8>(42);
+...  |
+LL | |         }
+LL | |     }
+   | |_____^
+   |
+   = note: `-D clippy::if-same-then-else` implied by `-D warnings`
+note: same as this
+  --> $DIR/if_same_then_else2.rs:11:13
+   |
+LL |       if true {
+   |  _____________^
+LL | |         for _ in &[42] {
+LL | |             let foo: &Option<_> = &Some::<u8>(42);
+LL | |             if true {
+...  |
+LL | |         }
+LL | |     } else {
+   | |_____^
+
+error: this `if` has identical blocks
+  --> $DIR/if_same_then_else2.rs:34:12
+   |
+LL |       } else {
+   |  ____________^
+LL | |         //~ ERROR same body as `if` block
+LL | |         if let Some(a) = Some(42) {}
+LL | |     }
+   | |_____^
+   |
+note: same as this
+  --> $DIR/if_same_then_else2.rs:32:13
+   |
+LL |       if true {
+   |  _____________^
+LL | |         if let Some(a) = Some(42) {}
+LL | |     } else {
+   | |_____^
+
+error: this `if` has identical blocks
+  --> $DIR/if_same_then_else2.rs:41:12
+   |
+LL |       } else {
+   |  ____________^
+LL | |         //~ ERROR same body as `if` block
+LL | |         if let (1, .., 3) = (1, 2, 3) {}
+LL | |     }
+   | |_____^
+   |
+note: same as this
+  --> $DIR/if_same_then_else2.rs:39:13
+   |
+LL |       if true {
+   |  _____________^
+LL | |         if let (1, .., 3) = (1, 2, 3) {}
+LL | |     } else {
+   | |_____^
+
+error: this `if` has identical blocks
+  --> $DIR/if_same_then_else2.rs:91:12
+   |
+LL |       } else {
+   |  ____________^
+LL | |         //~ ERROR same body as `if` block
+LL | |         std::f32::NAN
+LL | |     };
+   | |_____^
+   |
+note: same as this
+  --> $DIR/if_same_then_else2.rs:89:21
+   |
+LL |       let _ = if true {
+   |  _____________________^
+LL | |         std::f32::NAN
+LL | |     } else {
+   | |_____^
+
+error: this `if` has identical blocks
+  --> $DIR/if_same_then_else2.rs:98:12
+   |
+LL |       } else {
+   |  ____________^
+LL | |         //~ ERROR same body as `if` block
+LL | |         Ok("foo")?;
+LL | |     }
+   | |_____^
+   |
+note: same as this
+  --> $DIR/if_same_then_else2.rs:96:13
+   |
+LL |       if true {
+   |  _____________^
+LL | |         Ok("foo")?;
+LL | |     } else {
+   | |_____^
+
+error: this `if` has identical blocks
+  --> $DIR/if_same_then_else2.rs:123:12
+   |
+LL |       } else {
+   |  ____________^
+LL | |         let foo = "";
+LL | |         return Ok(&foo[0..]);
+LL | |     }
+   | |_____^
+   |
+note: same as this
+  --> $DIR/if_same_then_else2.rs:120:20
+   |
+LL |       } else if true {
+   |  ____________________^
+LL | |         let foo = "";
+LL | |         return Ok(&foo[0..]);
+LL | |     } else {
+   | |_____^
+
+error: aborting due to 6 previous errors
+