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