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