|
| 1 | +// run-rustfix |
| 2 | + |
| 3 | +#![deny(clippy::wildcard_enum_match_arm)] |
| 4 | +#![allow(unreachable_code, unused_variables)] |
| 5 | + |
| 6 | +#[derive(Clone, Copy, Debug, Eq, PartialEq)] |
| 7 | +enum Color { |
| 8 | + Red, |
| 9 | + Green, |
| 10 | + Blue, |
| 11 | + Rgb(u8, u8, u8), |
| 12 | + Cyan, |
| 13 | +} |
| 14 | + |
| 15 | +impl Color { |
| 16 | + fn is_monochrome(self) -> bool { |
| 17 | + match self { |
| 18 | + Color::Red | Color::Green | Color::Blue => true, |
| 19 | + Color::Rgb(r, g, b) => r | g == 0 || r | b == 0 || g | b == 0, |
| 20 | + Color::Cyan => false, |
| 21 | + } |
| 22 | + } |
| 23 | +} |
| 24 | + |
| 25 | +fn main() { |
| 26 | + let color = Color::Rgb(0, 0, 127); |
| 27 | + match color { |
| 28 | + Color::Red => println!("Red"), |
| 29 | + Color::Green | Color::Blue | Color::Rgb(..) | Color::Cyan => eprintln!("Not red"), |
| 30 | + }; |
| 31 | + match color { |
| 32 | + Color::Red => println!("Red"), |
| 33 | + _not_red @ Color::Green | _not_red @ Color::Blue | _not_red @ Color::Rgb(..) | _not_red @ Color::Cyan => eprintln!("Not red"), |
| 34 | + }; |
| 35 | + let _str = match color { |
| 36 | + Color::Red => "Red".to_owned(), |
| 37 | + not_red @ Color::Green | not_red @ Color::Blue | not_red @ Color::Rgb(..) | not_red @ Color::Cyan => format!("{:?}", not_red), |
| 38 | + }; |
| 39 | + match color { |
| 40 | + Color::Red => {}, |
| 41 | + Color::Green => {}, |
| 42 | + Color::Blue => {}, |
| 43 | + Color::Cyan => {}, |
| 44 | + c if c.is_monochrome() => {}, |
| 45 | + Color::Rgb(_, _, _) => {}, |
| 46 | + }; |
| 47 | + let _str = match color { |
| 48 | + Color::Red => "Red", |
| 49 | + c @ Color::Green | c @ Color::Blue | c @ Color::Rgb(_, _, _) | c @ Color::Cyan => "Not red", |
| 50 | + }; |
| 51 | + match color { |
| 52 | + Color::Rgb(r, _, _) if r > 0 => "Some red", |
| 53 | + Color::Red | Color::Green | Color::Blue | Color::Rgb(..) | Color::Cyan => "No red", |
| 54 | + }; |
| 55 | + match color { |
| 56 | + Color::Red | Color::Green | Color::Blue | Color::Cyan => {}, |
| 57 | + Color::Rgb(..) => {}, |
| 58 | + }; |
| 59 | + let x: u8 = unimplemented!(); |
| 60 | + match x { |
| 61 | + 0 => {}, |
| 62 | + 140 => {}, |
| 63 | + _ => {}, |
| 64 | + }; |
| 65 | +} |
0 commit comments