]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/almost_complete_range.rs
Merge commit '4bdfb0741dbcecd5279a2635c3280726db0604b5' into clippyup
[rust.git] / src / tools / clippy / tests / ui / almost_complete_range.rs
1 // run-rustfix
2 // edition:2018
3 // aux-build:macro_rules.rs
4
5 #![feature(exclusive_range_pattern)]
6 #![feature(stmt_expr_attributes)]
7 #![warn(clippy::almost_complete_range)]
8 #![allow(ellipsis_inclusive_range_patterns)]
9 #![allow(clippy::needless_parens_on_range_literals)]
10 #![allow(clippy::double_parens)]
11
12 #[macro_use]
13 extern crate macro_rules;
14
15 macro_rules! a {
16     () => {
17         'a'
18     };
19 }
20 macro_rules! A {
21     () => {
22         'A'
23     };
24 }
25 macro_rules! zero {
26     () => {
27         '0'
28     };
29 }
30
31 macro_rules! b {
32     () => {
33         let _ = 'a'..'z';
34         let _ = 'A'..'Z';
35         let _ = '0'..'9';
36     };
37 }
38
39 fn main() {
40     #[rustfmt::skip]
41     {
42         let _ = ('a') ..'z';
43         let _ = 'A' .. ('Z');
44         let _ = ((('0'))) .. ('9');
45     }
46
47     let _ = 'b'..'z';
48     let _ = 'B'..'Z';
49     let _ = '1'..'9';
50
51     let _ = (b'a')..(b'z');
52     let _ = b'A'..b'Z';
53     let _ = b'0'..b'9';
54
55     let _ = b'b'..b'z';
56     let _ = b'B'..b'Z';
57     let _ = b'1'..b'9';
58
59     let _ = a!()..'z';
60     let _ = A!()..'Z';
61     let _ = zero!()..'9';
62
63     let _ = match 0u8 {
64         b'a'..b'z' if true => 1,
65         b'A'..b'Z' if true => 2,
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,
71     };
72
73     let _ = match 'x' {
74         'a'..'z' if true => 1,
75         'A'..'Z' if true => 2,
76         '0'..'9' if true => 3,
77         'b'..'z' => 4,
78         'B'..'Z' => 5,
79         '1'..'9' => 6,
80         _ => 7,
81     };
82
83     almost_complete_range!();
84     b!();
85 }
86
87 #[clippy::msrv = "1.25"]
88 fn _under_msrv() {
89     let _ = match 'a' {
90         'a'..'z' => 1,
91         'A'..'Z' => 2,
92         '0'..'9' => 3,
93         _ => 4,
94     };
95 }
96
97 #[clippy::msrv = "1.26"]
98 fn _meets_msrv() {
99     let _ = 'a'..'z';
100     let _ = 'A'..'Z';
101     let _ = '0'..'9';
102     let _ = match 'a' {
103         'a'..'z' => 1,
104         'A'..'Z' => 1,
105         '0'..'9' => 3,
106         _ => 4,
107     };
108 }