Skip to content

Commit 6a934a9

Browse files
committed
Finish lint almost_complete_range
1 parent 4e98406 commit 6a934a9

5 files changed

+240
-84
lines changed

tests/ui/almost_complete_range.fixed

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#![warn(clippy::almost_complete_range)]
88
#![allow(ellipsis_inclusive_range_patterns)]
99
#![allow(clippy::needless_parens_on_range_literals)]
10+
#![allow(clippy::double_parens)]
1011

1112
#[macro_use]
1213
extern crate macro_rules;
@@ -16,10 +17,22 @@ macro_rules! a {
1617
'a'
1718
};
1819
}
20+
macro_rules! A {
21+
() => {
22+
'A'
23+
};
24+
}
25+
macro_rules! zero {
26+
() => {
27+
'0'
28+
};
29+
}
1930

2031
macro_rules! b {
2132
() => {
2233
let _ = 'a'..='z';
34+
let _ = 'A'..='Z';
35+
let _ = '0'..='9';
2336
};
2437
}
2538

@@ -28,52 +41,68 @@ fn main() {
2841
{
2942
let _ = ('a') ..='z';
3043
let _ = 'A' ..= ('Z');
44+
let _ = ((('0'))) ..= ('9');
3145
}
3246

3347
let _ = 'b'..'z';
3448
let _ = 'B'..'Z';
49+
let _ = '1'..'9';
3550

3651
let _ = (b'a')..=(b'z');
3752
let _ = b'A'..=b'Z';
53+
let _ = b'0'..=b'9';
3854

3955
let _ = b'b'..b'z';
4056
let _ = b'B'..b'Z';
57+
let _ = b'1'..b'9';
4158

4259
let _ = a!()..='z';
60+
let _ = A!()..='Z';
61+
let _ = zero!()..='9';
4362

4463
let _ = match 0u8 {
4564
b'a'..=b'z' if true => 1,
4665
b'A'..=b'Z' if true => 2,
47-
b'b'..b'z' => 3,
48-
b'B'..b'Z' => 4,
49-
_ => 5,
66+
b'0'..=b'9' if true => 3,
67+
b'b'..b'z' => 4,
68+
b'B'..b'Z' => 5,
69+
b'1'..b'9' => 6,
70+
_ => 7,
5071
};
5172

5273
let _ = match 'x' {
5374
'a'..='z' if true => 1,
5475
'A'..='Z' if true => 2,
55-
'b'..'z' => 3,
56-
'B'..'Z' => 4,
57-
_ => 5,
76+
'0'..='9' if true => 3,
77+
'b'..'z' => 4,
78+
'B'..'Z' => 5,
79+
'1'..'9' => 6,
80+
_ => 7,
5881
};
5982

60-
almost_complete_letter_range!();
83+
almost_complete_range!();
6184
b!();
6285
}
6386

6487
#[clippy::msrv = "1.25"]
6588
fn _under_msrv() {
6689
let _ = match 'a' {
6790
'a'...'z' => 1,
68-
_ => 2,
91+
'A'...'Z' => 2,
92+
'0'...'9' => 3,
93+
_ => 4,
6994
};
7095
}
7196

7297
#[clippy::msrv = "1.26"]
7398
fn _meets_msrv() {
7499
let _ = 'a'..='z';
100+
let _ = 'A'..='Z';
101+
let _ = '0'..='9';
75102
let _ = match 'a' {
76103
'a'..='z' => 1,
77-
_ => 2,
104+
'A'..='Z' => 1,
105+
'0'..='9' => 3,
106+
_ => 4,
78107
};
79108
}

tests/ui/almost_complete_range.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#![warn(clippy::almost_complete_range)]
88
#![allow(ellipsis_inclusive_range_patterns)]
99
#![allow(clippy::needless_parens_on_range_literals)]
10+
#![allow(clippy::double_parens)]
1011

1112
#[macro_use]
1213
extern crate macro_rules;
@@ -30,11 +31,7 @@ macro_rules! zero {
3031
macro_rules! b {
3132
() => {
3233
let _ = 'a'..'z';
33-
};
34-
() => {
3534
let _ = 'A'..'Z';
36-
};
37-
() => {
3835
let _ = '0'..'9';
3936
};
4037
}

tests/ui/almost_complete_range.stderr

Lines changed: 150 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,127 @@
1-
error: almost complete ascii letter range
2-
--> $DIR/almost_complete_letter_range.rs:29:17
1+
error: almost complete ascii range
2+
--> $DIR/almost_complete_range.rs:42:17
33
|
44
LL | let _ = ('a') ..'z';
55
| ^^^^^^--^^^
66
| |
77
| help: use an inclusive range: `..=`
88
|
9-
= note: `-D clippy::almost-complete-letter-range` implied by `-D warnings`
9+
= note: `-D clippy::almost-complete-range` implied by `-D warnings`
1010

11-
error: almost complete ascii letter range
12-
--> $DIR/almost_complete_letter_range.rs:30:17
11+
error: almost complete ascii range
12+
--> $DIR/almost_complete_range.rs:43:17
1313
|
1414
LL | let _ = 'A' .. ('Z');
1515
| ^^^^--^^^^^^
1616
| |
1717
| help: use an inclusive range: `..=`
1818

19-
error: almost complete ascii letter range
20-
--> $DIR/almost_complete_letter_range.rs:36:13
19+
error: almost complete ascii range
20+
--> $DIR/almost_complete_range.rs:44:17
21+
|
22+
LL | let _ = ((('0'))) .. ('9');
23+
| ^^^^^^^^^^--^^^^^^
24+
| |
25+
| help: use an inclusive range: `..=`
26+
27+
error: almost complete ascii range
28+
--> $DIR/almost_complete_range.rs:51:13
2129
|
2230
LL | let _ = (b'a')..(b'z');
2331
| ^^^^^^--^^^^^^
2432
| |
2533
| help: use an inclusive range: `..=`
2634

27-
error: almost complete ascii letter range
28-
--> $DIR/almost_complete_letter_range.rs:37:13
35+
error: almost complete ascii range
36+
--> $DIR/almost_complete_range.rs:52:13
2937
|
3038
LL | let _ = b'A'..b'Z';
3139
| ^^^^--^^^^
3240
| |
3341
| help: use an inclusive range: `..=`
3442

35-
error: almost complete ascii letter range
36-
--> $DIR/almost_complete_letter_range.rs:42:13
43+
error: almost complete ascii range
44+
--> $DIR/almost_complete_range.rs:53:13
45+
|
46+
LL | let _ = b'0'..b'9';
47+
| ^^^^--^^^^
48+
| |
49+
| help: use an inclusive range: `..=`
50+
51+
error: almost complete ascii range
52+
--> $DIR/almost_complete_range.rs:59:13
3753
|
3854
LL | let _ = a!()..'z';
3955
| ^^^^--^^^
4056
| |
4157
| help: use an inclusive range: `..=`
4258

43-
error: almost complete ascii letter range
44-
--> $DIR/almost_complete_letter_range.rs:45:9
59+
error: almost complete ascii range
60+
--> $DIR/almost_complete_range.rs:60:13
61+
|
62+
LL | let _ = A!()..'Z';
63+
| ^^^^--^^^
64+
| |
65+
| help: use an inclusive range: `..=`
66+
67+
error: almost complete ascii range
68+
--> $DIR/almost_complete_range.rs:61:13
69+
|
70+
LL | let _ = zero!()..'9';
71+
| ^^^^^^^--^^^
72+
| |
73+
| help: use an inclusive range: `..=`
74+
75+
error: almost complete ascii range
76+
--> $DIR/almost_complete_range.rs:64:9
4577
|
4678
LL | b'a'..b'z' if true => 1,
4779
| ^^^^--^^^^
4880
| |
4981
| help: use an inclusive range: `..=`
5082

51-
error: almost complete ascii letter range
52-
--> $DIR/almost_complete_letter_range.rs:46:9
83+
error: almost complete ascii range
84+
--> $DIR/almost_complete_range.rs:65:9
5385
|
5486
LL | b'A'..b'Z' if true => 2,
5587
| ^^^^--^^^^
5688
| |
5789
| help: use an inclusive range: `..=`
5890

59-
error: almost complete ascii letter range
60-
--> $DIR/almost_complete_letter_range.rs:53:9
91+
error: almost complete ascii range
92+
--> $DIR/almost_complete_range.rs:66:9
93+
|
94+
LL | b'0'..b'9' if true => 3,
95+
| ^^^^--^^^^
96+
| |
97+
| help: use an inclusive range: `..=`
98+
99+
error: almost complete ascii range
100+
--> $DIR/almost_complete_range.rs:74:9
61101
|
62102
LL | 'a'..'z' if true => 1,
63103
| ^^^--^^^
64104
| |
65105
| help: use an inclusive range: `..=`
66106

67-
error: almost complete ascii letter range
68-
--> $DIR/almost_complete_letter_range.rs:54:9
107+
error: almost complete ascii range
108+
--> $DIR/almost_complete_range.rs:75:9
69109
|
70110
LL | 'A'..'Z' if true => 2,
71111
| ^^^--^^^
72112
| |
73113
| help: use an inclusive range: `..=`
74114

75-
error: almost complete ascii letter range
76-
--> $DIR/almost_complete_letter_range.rs:22:17
115+
error: almost complete ascii range
116+
--> $DIR/almost_complete_range.rs:76:9
117+
|
118+
LL | '0'..'9' if true => 3,
119+
| ^^^--^^^
120+
| |
121+
| help: use an inclusive range: `..=`
122+
123+
error: almost complete ascii range
124+
--> $DIR/almost_complete_range.rs:33:17
77125
|
78126
LL | let _ = 'a'..'z';
79127
| ^^^--^^^
@@ -85,29 +133,103 @@ LL | b!();
85133
|
86134
= note: this error originates in the macro `b` (in Nightly builds, run with -Z macro-backtrace for more info)
87135

88-
error: almost complete ascii letter range
89-
--> $DIR/almost_complete_letter_range.rs:67:9
136+
error: almost complete ascii range
137+
--> $DIR/almost_complete_range.rs:34:17
138+
|
139+
LL | let _ = 'A'..'Z';
140+
| ^^^--^^^
141+
| |
142+
| help: use an inclusive range: `..=`
143+
...
144+
LL | b!();
145+
| ---- in this macro invocation
146+
|
147+
= note: this error originates in the macro `b` (in Nightly builds, run with -Z macro-backtrace for more info)
148+
149+
error: almost complete ascii range
150+
--> $DIR/almost_complete_range.rs:35:17
151+
|
152+
LL | let _ = '0'..'9';
153+
| ^^^--^^^
154+
| |
155+
| help: use an inclusive range: `..=`
156+
...
157+
LL | b!();
158+
| ---- in this macro invocation
159+
|
160+
= note: this error originates in the macro `b` (in Nightly builds, run with -Z macro-backtrace for more info)
161+
162+
error: almost complete ascii range
163+
--> $DIR/almost_complete_range.rs:90:9
90164
|
91165
LL | 'a'..'z' => 1,
92166
| ^^^--^^^
93167
| |
94168
| help: use an inclusive range: `...`
95169

96-
error: almost complete ascii letter range
97-
--> $DIR/almost_complete_letter_range.rs:74:13
170+
error: almost complete ascii range
171+
--> $DIR/almost_complete_range.rs:91:9
172+
|
173+
LL | 'A'..'Z' => 2,
174+
| ^^^--^^^
175+
| |
176+
| help: use an inclusive range: `...`
177+
178+
error: almost complete ascii range
179+
--> $DIR/almost_complete_range.rs:92:9
180+
|
181+
LL | '0'..'9' => 3,
182+
| ^^^--^^^
183+
| |
184+
| help: use an inclusive range: `...`
185+
186+
error: almost complete ascii range
187+
--> $DIR/almost_complete_range.rs:99:13
98188
|
99189
LL | let _ = 'a'..'z';
100190
| ^^^--^^^
101191
| |
102192
| help: use an inclusive range: `..=`
103193

104-
error: almost complete ascii letter range
105-
--> $DIR/almost_complete_letter_range.rs:76:9
194+
error: almost complete ascii range
195+
--> $DIR/almost_complete_range.rs:100:13
196+
|
197+
LL | let _ = 'A'..'Z';
198+
| ^^^--^^^
199+
| |
200+
| help: use an inclusive range: `..=`
201+
202+
error: almost complete ascii range
203+
--> $DIR/almost_complete_range.rs:101:13
204+
|
205+
LL | let _ = '0'..'9';
206+
| ^^^--^^^
207+
| |
208+
| help: use an inclusive range: `..=`
209+
210+
error: almost complete ascii range
211+
--> $DIR/almost_complete_range.rs:103:9
106212
|
107213
LL | 'a'..'z' => 1,
108214
| ^^^--^^^
109215
| |
110216
| help: use an inclusive range: `..=`
111217

112-
error: aborting due to 13 previous errors
218+
error: almost complete ascii range
219+
--> $DIR/almost_complete_range.rs:104:9
220+
|
221+
LL | 'A'..'Z' => 1,
222+
| ^^^--^^^
223+
| |
224+
| help: use an inclusive range: `..=`
225+
226+
error: almost complete ascii range
227+
--> $DIR/almost_complete_range.rs:105:9
228+
|
229+
LL | '0'..'9' => 3,
230+
| ^^^--^^^
231+
| |
232+
| help: use an inclusive range: `..=`
233+
234+
error: aborting due to 27 previous errors
113235

0 commit comments

Comments
 (0)