]>
Commit | Line | Data |
---|---|---|
f20569fa XL |
1 | #![warn(clippy::manual_strip)] |
2 | ||
3 | fn main() { | |
4 | let s = "abc"; | |
5 | ||
6 | if s.starts_with("ab") { | |
7 | str::to_string(&s["ab".len()..]); | |
8 | s["ab".len()..].to_string(); | |
9 | ||
10 | str::to_string(&s[2..]); | |
11 | s[2..].to_string(); | |
12 | } | |
13 | ||
14 | if s.ends_with("bc") { | |
15 | str::to_string(&s[..s.len() - "bc".len()]); | |
16 | s[..s.len() - "bc".len()].to_string(); | |
17 | ||
18 | str::to_string(&s[..s.len() - 2]); | |
19 | s[..s.len() - 2].to_string(); | |
20 | } | |
21 | ||
22 | // Character patterns | |
23 | if s.starts_with('a') { | |
24 | str::to_string(&s[1..]); | |
25 | s[1..].to_string(); | |
26 | } | |
27 | ||
28 | // Variable prefix | |
29 | let prefix = "ab"; | |
30 | if s.starts_with(prefix) { | |
31 | str::to_string(&s[prefix.len()..]); | |
32 | } | |
33 | ||
34 | // Constant prefix | |
35 | const PREFIX: &str = "ab"; | |
36 | if s.starts_with(PREFIX) { | |
37 | str::to_string(&s[PREFIX.len()..]); | |
38 | str::to_string(&s[2..]); | |
39 | } | |
40 | ||
41 | // Constant target | |
42 | const TARGET: &str = "abc"; | |
43 | if TARGET.starts_with(prefix) { | |
44 | str::to_string(&TARGET[prefix.len()..]); | |
45 | } | |
46 | ||
47 | // String target - not mutated. | |
48 | let s1: String = "abc".into(); | |
49 | if s1.starts_with("ab") { | |
50 | s1[2..].to_uppercase(); | |
51 | } | |
52 | ||
53 | // String target - mutated. (Don't lint.) | |
54 | let mut s2: String = "abc".into(); | |
55 | if s2.starts_with("ab") { | |
56 | s2.push('d'); | |
57 | s2[2..].to_uppercase(); | |
58 | } | |
59 | ||
60 | // Target not stripped. (Don't lint.) | |
61 | let s3 = String::from("abcd"); | |
62 | let s4 = String::from("efgh"); | |
63 | if s3.starts_with("ab") { | |
64 | s4[2..].to_string(); | |
65 | } | |
66 | } | |
2b03887a | 67 | |
487cf647 | 68 | #[clippy::msrv = "1.44"] |
2b03887a | 69 | fn msrv_1_44() { |
2b03887a FG |
70 | let s = "abc"; |
71 | if s.starts_with('a') { | |
72 | s[1..].to_string(); | |
73 | } | |
74 | } | |
75 | ||
487cf647 | 76 | #[clippy::msrv = "1.45"] |
2b03887a | 77 | fn msrv_1_45() { |
2b03887a FG |
78 | let s = "abc"; |
79 | if s.starts_with('a') { | |
80 | s[1..].to_string(); | |
81 | } | |
82 | } |