]> git.lizzy.rs Git - rust.git/blob - tests/ui/match_str_case_mismatch.rs
208a4bba3d23c40d5cf2cbe4a2f650c18ba584b5
[rust.git] / tests / ui / match_str_case_mismatch.rs
1 #![warn(clippy::match_str_case_mismatch)]
2
3 // Valid
4
5 fn as_str_match() {
6     let var = "BAR";
7
8     match var.to_ascii_lowercase().as_str() {
9         "foo" => {},
10         "bar" => {},
11         _ => {},
12     }
13 }
14
15 fn addrof_unary_match() {
16     let var = "BAR";
17
18     match &*var.to_ascii_lowercase() {
19         "foo" => {},
20         "bar" => {},
21         _ => {},
22     }
23 }
24
25 fn alternating_chain() {
26     let var = "BAR";
27
28     match &*var
29         .to_ascii_lowercase()
30         .to_uppercase()
31         .to_lowercase()
32         .to_ascii_uppercase()
33     {
34         "FOO" => {},
35         "BAR" => {},
36         _ => {},
37     }
38 }
39
40 fn unrelated_method() {
41     struct Item {
42         a: String,
43     }
44
45     impl Item {
46         #[allow(clippy::wrong_self_convention)]
47         fn to_lowercase(self) -> String {
48             self.a
49         }
50     }
51
52     let item = Item { a: String::from("BAR") };
53
54     match &*item.to_lowercase() {
55         "FOO" => {},
56         "BAR" => {},
57         _ => {},
58     }
59 }
60
61 // Invalid
62
63 fn as_str_match_mismatch() {
64     let var = "BAR";
65
66     match var.to_ascii_lowercase().as_str() {
67         "foo" => {},
68         "Bar" => {},
69         _ => {},
70     }
71 }
72
73 fn addrof_unary_match_mismatch() {
74     let var = "BAR";
75
76     match &*var.to_ascii_lowercase() {
77         "foo" => {},
78         "Bar" => {},
79         _ => {},
80     }
81 }
82
83 fn alternating_chain_mismatch() {
84     let var = "BAR";
85
86     match &*var
87         .to_ascii_lowercase()
88         .to_uppercase()
89         .to_lowercase()
90         .to_ascii_uppercase()
91     {
92         "FOO" => {},
93         "bAR" => {},
94         _ => {},
95     }
96 }
97
98 fn main() {}