]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/collapsible_if.fixed
Use macro source when creating `Sugg` helper
[rust.git] / tests / ui / collapsible_if.fixed
index 3c7de56406eee1a827063bfca3f9c98968cc312c..6bb7682bae9530883c8035aa3ca0a1aebf5c5cbe 100644 (file)
@@ -1,5 +1,5 @@
 // run-rustfix
-#![allow(clippy::cyclomatic_complexity, clippy::assertions_on_constants)]
+#![allow(clippy::assertions_on_constants, clippy::equatable_if_let)]
 
 #[rustfmt::skip]
 #[warn(clippy::collapsible_if)]
@@ -7,86 +7,28 @@ fn main() {
     let x = "hello";
     let y = "world";
     if x == "hello" && y == "world" {
-    println!("Hello world!");
-}
+        println!("Hello world!");
+    }
 
     if (x == "hello" || x == "world") && (y == "world" || y == "hello") {
-    println!("Hello world!");
-}
+        println!("Hello world!");
+    }
 
     if x == "hello" && x == "world" && (y == "world" || y == "hello") {
-    println!("Hello world!");
-}
+        println!("Hello world!");
+    }
 
     if (x == "hello" || x == "world") && y == "world" && y == "hello" {
-    println!("Hello world!");
-}
+        println!("Hello world!");
+    }
 
     if x == "hello" && x == "world" && y == "world" && y == "hello" {
-    println!("Hello world!");
-}
+        println!("Hello world!");
+    }
 
     if 42 == 1337 && 'a' != 'A' {
-    println!("world!")
-}
-
-    // Collapse `else { if .. }` to `else if ..`
-    if x == "hello" {
-        print!("Hello ");
-    } else if y == "world" {
-    println!("world!")
-}
-
-    if x == "hello" {
-        print!("Hello ");
-    } else if let Some(42) = Some(42) {
-    println!("world!")
-}
-
-    if x == "hello" {
-        print!("Hello ");
-    } else if y == "world" {
-    println!("world")
-}
-else {
-    println!("!")
-}
-
-    if x == "hello" {
-        print!("Hello ");
-    } else if let Some(42) = Some(42) {
-    println!("world")
-}
-else {
-    println!("!")
-}
-
-    if let Some(42) = Some(42) {
-        print!("Hello ");
-    } else if let Some(42) = Some(42) {
-    println!("world")
-}
-else {
-    println!("!")
-}
-
-    if let Some(42) = Some(42) {
-        print!("Hello ");
-    } else if x == "hello" {
-    println!("world")
-}
-else {
-    println!("!")
-}
-
-    if let Some(42) = Some(42) {
-        print!("Hello ");
-    } else if let Some(42) = Some(42) {
-    println!("world")
-}
-else {
-    println!("!")
-}
+        println!("world!")
+    }
 
     // Works because any if with an else statement cannot be collapsed.
     if x == "hello" {
@@ -139,8 +81,8 @@ else {
     }
 
     if x == "hello" && y == "world" { // Collapsible
-    println!("Hello world!");
-}
+        println!("Hello world!");
+    }
 
     if x == "hello" {
         print!("Hello ");
@@ -172,4 +114,38 @@ else {
             println!("Hello world!");
         }
     }
+
+    // Test behavior wrt. `let_chains`.
+    // None of the cases below should be collapsed.
+    fn truth() -> bool { true }
+
+    // Prefix:
+    if let 0 = 1 {
+        if truth() {}
+    }
+
+    // Suffix:
+    if truth() {
+        if let 0 = 1 {}
+    }
+
+    // Midfix:
+    if truth() {
+        if let 0 = 1 {
+            if truth() {}
+        }
+    }
+
+    // Fix #5962
+    if matches!(true, true) && matches!(true, true) {}
+
+    // Issue #9375
+    if matches!(true, true) && truth() && matches!(true, true) {}
+
+    if true {
+        #[cfg(not(teehee))]
+        if true {
+            println!("Hello world!");
+        }
+    }
 }