]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/match_str_case_mismatch.fixed
Rollup merge of #101420 - kraktus:doc_hir_local, r=cjgillot
[rust.git] / src / tools / clippy / tests / ui / match_str_case_mismatch.fixed
1 // run-rustfix
2 #![warn(clippy::match_str_case_mismatch)]
3 #![allow(dead_code)]
4
5 // Valid
6
7 fn as_str_match() {
8     let var = "BAR";
9
10     match var.to_ascii_lowercase().as_str() {
11         "foo" => {},
12         "bar" => {},
13         _ => {},
14     }
15 }
16
17 fn non_alphabetic() {
18     let var = "~!@#$%^&*()-_=+FOO";
19
20     match var.to_ascii_lowercase().as_str() {
21         "1234567890" => {},
22         "~!@#$%^&*()-_=+foo" => {},
23         "\n\r\t\x7F" => {},
24         _ => {},
25     }
26 }
27
28 fn unicode_cased() {
29     let var = "ВОДЫ";
30
31     match var.to_lowercase().as_str() {
32         "水" => {},
33         "νερό" => {},
34         "воды" => {},
35         "물" => {},
36         _ => {},
37     }
38 }
39
40 fn titlecase() {
41     let var = "BarDz";
42
43     match var.to_lowercase().as_str() {
44         "foolj" => {},
45         "bardz" => {},
46         _ => {},
47     }
48 }
49
50 fn no_case_equivalent() {
51     let var = "barʁ";
52
53     match var.to_uppercase().as_str() {
54         "FOOɕ" => {},
55         "BARʁ" => {},
56         _ => {},
57     }
58 }
59
60 fn addrof_unary_match() {
61     let var = "BAR";
62
63     match &*var.to_ascii_lowercase() {
64         "foo" => {},
65         "bar" => {},
66         _ => {},
67     }
68 }
69
70 fn alternating_chain() {
71     let var = "BAR";
72
73     match &*var
74         .to_ascii_lowercase()
75         .to_uppercase()
76         .to_lowercase()
77         .to_ascii_uppercase()
78     {
79         "FOO" => {},
80         "BAR" => {},
81         _ => {},
82     }
83 }
84
85 fn unrelated_method() {
86     struct Item {
87         a: String,
88     }
89
90     impl Item {
91         #[allow(clippy::wrong_self_convention)]
92         fn to_lowercase(self) -> String {
93             self.a
94         }
95     }
96
97     let item = Item { a: String::from("BAR") };
98
99     match &*item.to_lowercase() {
100         "FOO" => {},
101         "BAR" => {},
102         _ => {},
103     }
104 }
105
106 // Invalid
107
108 fn as_str_match_mismatch() {
109     let var = "BAR";
110
111     match var.to_ascii_lowercase().as_str() {
112         "foo" => {},
113         "bar" => {},
114         _ => {},
115     }
116 }
117
118 fn non_alphabetic_mismatch() {
119     let var = "~!@#$%^&*()-_=+FOO";
120
121     match var.to_ascii_lowercase().as_str() {
122         "1234567890" => {},
123         "~!@#$%^&*()-_=+foo" => {},
124         "\n\r\t\x7F" => {},
125         _ => {},
126     }
127 }
128
129 fn unicode_cased_mismatch() {
130     let var = "ВОДЫ";
131
132     match var.to_lowercase().as_str() {
133         "水" => {},
134         "νερό" => {},
135         "воды" => {},
136         "물" => {},
137         _ => {},
138     }
139 }
140
141 fn titlecase_mismatch() {
142     let var = "BarDz";
143
144     match var.to_lowercase().as_str() {
145         "foolj" => {},
146         "bardz" => {},
147         _ => {},
148     }
149 }
150
151 fn no_case_equivalent_mismatch() {
152     let var = "barʁ";
153
154     match var.to_uppercase().as_str() {
155         "FOOɕ" => {},
156         "BARʁ" => {},
157         _ => {},
158     }
159 }
160
161 fn addrof_unary_match_mismatch() {
162     let var = "BAR";
163
164     match &*var.to_ascii_lowercase() {
165         "foo" => {},
166         "bar" => {},
167         _ => {},
168     }
169 }
170
171 fn alternating_chain_mismatch() {
172     let var = "BAR";
173
174     match &*var
175         .to_ascii_lowercase()
176         .to_uppercase()
177         .to_lowercase()
178         .to_ascii_uppercase()
179     {
180         "FOO" => {},
181         "BAR" => {},
182         _ => {},
183     }
184 }
185
186 fn main() {}