]> git.proxmox.com Git - rustc.git/blame - src/tools/clippy/tests/ui/match_overlapping_arm.rs
bump version to 1.80.1+dfsg1-1~bpo12+pve1
[rustc.git] / src / tools / clippy / tests / ui / match_overlapping_arm.rs
CommitLineData
f20569fa
XL
1#![warn(clippy::match_overlapping_arm)]
2#![allow(clippy::redundant_pattern_matching)]
fe692bf9 3#![allow(clippy::if_same_then_else, clippy::equatable_if_let, clippy::needless_if)]
f20569fa
XL
4
5/// Tests for match_overlapping_arm
6
7fn overlapping() {
8 const FOO: u64 = 2;
9
10 match 42 {
3c0e092e 11 0..=10 => println!("0..=10"),
781aab86 12 //~^ ERROR: some ranges overlap
3c0e092e 13 0..=11 => println!("0..=11"),
f20569fa
XL
14 _ => (),
15 }
16
17 match 42 {
3c0e092e 18 0..=5 => println!("0..=5"),
781aab86 19 //~^ ERROR: some ranges overlap
3c0e092e
XL
20 6..=7 => println!("6..=7"),
21 FOO..=11 => println!("FOO..=11"),
f20569fa
XL
22 _ => (),
23 }
24
25 match 42 {
26 2 => println!("2"),
3c0e092e 27 0..=5 => println!("0..=5"),
f20569fa
XL
28 _ => (),
29 }
30
31 match 42 {
32 2 => println!("2"),
3c0e092e 33 0..=2 => println!("0..=2"),
f20569fa
XL
34 _ => (),
35 }
36
37 match 42 {
3c0e092e
XL
38 0..=10 => println!("0..=10"),
39 11..=50 => println!("11..=50"),
f20569fa
XL
40 _ => (),
41 }
42
43 match 42 {
44 2 => println!("2"),
3c0e092e 45 0..2 => println!("0..2"),
f20569fa
XL
46 _ => (),
47 }
48
49 match 42 {
3c0e092e
XL
50 0..10 => println!("0..10"),
51 10..50 => println!("10..50"),
f20569fa
XL
52 _ => (),
53 }
54
55 match 42 {
3c0e092e 56 0..11 => println!("0..11"),
781aab86 57 //~^ ERROR: some ranges overlap
3c0e092e 58 0..=11 => println!("0..=11"),
f20569fa
XL
59 _ => (),
60 }
61
62 match 42 {
3c0e092e
XL
63 5..7 => println!("5..7"),
64 0..10 => println!("0..10"),
f20569fa
XL
65 _ => (),
66 }
67
68 match 42 {
3c0e092e
XL
69 5..10 => println!("5..10"),
70 0..=10 => println!("0..=10"),
f20569fa
XL
71 _ => (),
72 }
73
74 match 42 {
3c0e092e
XL
75 0..14 => println!("0..14"),
76 5..10 => println!("5..10"),
f20569fa
XL
77 _ => (),
78 }
79
80 match 42 {
3c0e092e
XL
81 5..14 => println!("5..14"),
82 0..=10 => println!("0..=10"),
781aab86 83 //~^ ERROR: some ranges overlap
f20569fa
XL
84 _ => (),
85 }
86
87 match 42 {
3c0e092e 88 0..7 => println!("0..7"),
781aab86 89 //~^ ERROR: some ranges overlap
3c0e092e 90 0..=10 => println!("0..=10"),
f20569fa
XL
91 _ => (),
92 }
93
f20569fa 94 match 42 {
3c0e092e
XL
95 3.. => println!("3.."),
96 0.. => println!("0.."),
f20569fa
XL
97 _ => (),
98 }
99
100 match 42 {
3c0e092e 101 ..=23 => println!("..=23"),
781aab86 102 //~^ ERROR: some ranges overlap
3c0e092e
XL
103 ..26 => println!("..26"),
104 _ => (),
105 }
106
a2a8927a
XL
107 // Issue #7816 - overlap after included range
108 match 42 {
109 5..=10 => (),
110 0..=20 => (),
111 21..=30 => (),
781aab86 112 //~^ ERROR: some ranges overlap
a2a8927a
XL
113 21..=40 => (),
114 _ => (),
115 }
116
3c0e092e
XL
117 // Issue #7829
118 match 0 {
119 -1..=1 => (),
120 -2..=2 => (),
f20569fa
XL
121 _ => (),
122 }
f20569fa 123
a2a8927a
XL
124 // Only warn about the first if there are multiple overlaps
125 match 42u128 {
126 0..=0x0000_0000_0000_00ff => (),
781aab86 127 //~^ ERROR: some ranges overlap
a2a8927a
XL
128 0..=0x0000_0000_0000_ffff => (),
129 0..=0x0000_0000_ffff_ffff => (),
130 0..=0xffff_ffff_ffff_ffff => (),
131 _ => (),
132 }
133
f20569fa
XL
134 if let None = Some(42) {
135 // nothing
136 } else if let None = Some(42) {
137 // another nothing :-)
138 }
139}
140
141fn main() {}