]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/match_overlapping_arm.rs
Rollup merge of #84221 - ABouttefeux:generic-arg-elision, r=estebank
[rust.git] / src / tools / clippy / tests / ui / match_overlapping_arm.rs
1 #![feature(exclusive_range_pattern)]
2 #![feature(half_open_range_patterns)]
3 #![warn(clippy::match_overlapping_arm)]
4 #![allow(clippy::redundant_pattern_matching)]
5
6 /// Tests for match_overlapping_arm
7
8 fn overlapping() {
9     const FOO: u64 = 2;
10
11     match 42 {
12         0..=10 => println!("0 ... 10"),
13         0..=11 => println!("0 ... 11"),
14         _ => (),
15     }
16
17     match 42 {
18         0..=5 => println!("0 ... 5"),
19         6..=7 => println!("6 ... 7"),
20         FOO..=11 => println!("0 ... 11"),
21         _ => (),
22     }
23
24     match 42 {
25         2 => println!("2"),
26         0..=5 => println!("0 ... 5"),
27         _ => (),
28     }
29
30     match 42 {
31         2 => println!("2"),
32         0..=2 => println!("0 ... 2"),
33         _ => (),
34     }
35
36     match 42 {
37         0..=10 => println!("0 ... 10"),
38         11..=50 => println!("11 ... 50"),
39         _ => (),
40     }
41
42     match 42 {
43         2 => println!("2"),
44         0..2 => println!("0 .. 2"),
45         _ => (),
46     }
47
48     match 42 {
49         0..10 => println!("0 .. 10"),
50         10..50 => println!("10 .. 50"),
51         _ => (),
52     }
53
54     match 42 {
55         0..11 => println!("0 .. 11"),
56         0..=11 => println!("0 ... 11"),
57         _ => (),
58     }
59
60     match 42 {
61         5..7 => println!("5 .. 7"),
62         0..10 => println!("0 .. 10"),
63         _ => (),
64     }
65
66     match 42 {
67         5..10 => println!("5 .. 10"),
68         0..=10 => println!("0 ... 10"),
69         _ => (),
70     }
71
72     match 42 {
73         0..14 => println!("0 .. 14"),
74         5..10 => println!("5 .. 10"),
75         _ => (),
76     }
77
78     match 42 {
79         5..14 => println!("5 .. 14"),
80         0..=10 => println!("0 ... 10"),
81         _ => (),
82     }
83
84     match 42 {
85         0..7 => println!("0 .. 7"),
86         0..=10 => println!("0 ... 10"),
87         _ => (),
88     }
89
90     /*
91     // FIXME(JohnTitor): uncomment this once rustfmt knows half-open patterns
92     match 42 {
93         0.. => println!("0 .. 42"),
94         3.. => println!("3 .. 42"),
95         _ => (),
96     }
97
98     match 42 {
99         ..=23 => println!("0 ... 23"),
100         ..26 => println!("0 .. 26"),
101         _ => (),
102     }
103     */
104
105     if let None = Some(42) {
106         // nothing
107     } else if let None = Some(42) {
108         // another nothing :-)
109     }
110 }
111
112 fn main() {}