]> git.lizzy.rs Git - rust.git/blob - tests/ui/wildcard_enum_match_arm.rs
arm.pats -> arm.pat
[rust.git] / tests / ui / wildcard_enum_match_arm.rs
1 // run-rustfix
2
3 #![deny(clippy::wildcard_enum_match_arm)]
4 #![allow(unreachable_code, unused_variables, dead_code)]
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         _ => eprintln!("Not red"),
30     };
31     match color {
32         Color::Red => println!("Red"),
33         _not_red => eprintln!("Not red"),
34     };
35     let _str = match color {
36         Color::Red => "Red".to_owned(),
37         not_red => 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         _ => "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 }