| // run-rustfix |
| |
| #![warn(clippy::match_like_matches_macro)] |
| #![allow(unreachable_patterns, dead_code)] |
| |
| fn main() { |
| let x = Some(5); |
| |
| // Lint |
| let _y = match x { |
| Some(0) => true, |
| _ => false, |
| }; |
| |
| // Lint |
| let _w = match x { |
| Some(_) => true, |
| _ => false, |
| }; |
| |
| // Turn into is_none |
| let _z = match x { |
| Some(_) => false, |
| None => true, |
| }; |
| |
| // Lint |
| let _zz = match x { |
| Some(r) if r == 0 => false, |
| _ => true, |
| }; |
| |
| // Lint |
| let _zzz = if let Some(5) = x { true } else { false }; |
| |
| // No lint |
| let _a = match x { |
| Some(_) => false, |
| _ => false, |
| }; |
| |
| // No lint |
| let _ab = match x { |
| Some(0) => false, |
| _ => true, |
| None => false, |
| }; |
| |
| enum E { |
| A(u32), |
| B(i32), |
| C, |
| D, |
| }; |
| let x = E::A(2); |
| { |
| // lint |
| let _ans = match x { |
| E::A(_) => true, |
| E::B(_) => true, |
| _ => false, |
| }; |
| } |
| { |
| // lint |
| let _ans = match x { |
| E::B(_) => false, |
| E::C => false, |
| _ => true, |
| }; |
| } |
| { |
| // no lint |
| let _ans = match x { |
| E::A(_) => false, |
| E::B(_) => false, |
| E::C => true, |
| _ => true, |
| }; |
| } |
| { |
| // no lint |
| let _ans = match x { |
| E::A(_) => true, |
| E::B(_) => false, |
| E::C => false, |
| _ => true, |
| }; |
| } |
| { |
| // no lint |
| let _ans = match x { |
| E::A(a) if a < 10 => false, |
| E::B(a) if a < 10 => false, |
| _ => true, |
| }; |
| } |
| { |
| // no lint |
| let _ans = match x { |
| E::A(_) => false, |
| E::B(a) if a < 10 => false, |
| _ => true, |
| }; |
| } |
| { |
| // no lint |
| let _ans = match x { |
| E::A(a) => a == 10, |
| E::B(_) => false, |
| _ => true, |
| }; |
| } |
| { |
| // no lint |
| let _ans = match x { |
| E::A(_) => false, |
| E::B(_) => true, |
| _ => false, |
| }; |
| } |
| } |