]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/match_same_arms.rs
Auto merge of #4478 - tsurai:master, r=flip1995
[rust.git] / tests / ui / match_same_arms.rs
index a1f15c0268b525b0c8036d5732b78ff69001bbda..b53ca79adb5b5a6fbdcbbb720ae3742fe9e0de0a 100644 (file)
@@ -1,7 +1,8 @@
+#![warn(clippy::match_same_arms)]
 #![allow(
     clippy::blacklisted_name,
     clippy::collapsible_if,
-    clippy::cyclomatic_complexity,
+    clippy::cognitive_complexity,
     clippy::eq_op,
     clippy::needless_continue,
     clippy::needless_return,
@@ -21,7 +22,6 @@ pub enum Abc {
     C,
 }
 
-#[warn(clippy::match_same_arms)]
 #[allow(clippy::unused_unit)]
 fn match_same_arms() {
     let _ = match 42 {
@@ -108,6 +108,39 @@ fn match_same_arms() {
         (None, Some(a)) => bar(a), // bindings have different types
         _ => (),
     }
+
+    let _ = match 42 {
+        42 => 1,
+        51 => 1, //~ ERROR match arms have same body
+        41 => 2,
+        52 => 2, //~ ERROR match arms have same body
+        _ => 0,
+    };
+
+    let _ = match 42 {
+        1 => 2,
+        2 => 2, //~ ERROR 2nd matched arms have same body
+        3 => 2, //~ ERROR 3rd matched arms have same body
+        4 => 3,
+        _ => 0,
+    };
+}
+
+mod issue4244 {
+    #[derive(PartialEq, PartialOrd, Eq, Ord)]
+    pub enum CommandInfo {
+        BuiltIn { name: String, about: Option<String> },
+        External { name: String, path: std::path::PathBuf },
+    }
+
+    impl CommandInfo {
+        pub fn name(&self) -> String {
+            match self {
+                CommandInfo::BuiltIn { name, .. } => name.to_string(),
+                CommandInfo::External { name, .. } => name.to_string(),
+            }
+        }
+    }
 }
 
 fn main() {}