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