]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/collapsible_str_replace.rs
Rollup merge of #100185 - compiler-errors:issue-100183, r=wesleywiser
[rust.git] / src / tools / clippy / tests / ui / collapsible_str_replace.rs
1 // run-rustfix
2
3 #![warn(clippy::collapsible_str_replace)]
4
5 fn get_filter() -> char {
6     'u'
7 }
8
9 fn main() {
10     let d = 'd';
11     let p = 'p';
12     let s = 's';
13     let u = 'u';
14     let l = "l";
15
16     let mut iter = ["l", "z"].iter();
17
18     // LINT CASES
19     let _ = "hesuo worpd".replace('s', "l").replace('u', "l");
20
21     let _ = "hesuo worpd".replace('s', l).replace('u', l);
22
23     let _ = "hesuo worpd".replace('s', "l").replace('u', "l").replace('p', "l");
24
25     let _ = "hesuo worpd"
26         .replace('s', "l")
27         .replace('u', "l")
28         .replace('p', "l")
29         .replace('d', "l");
30
31     let _ = "hesuo world".replace(s, "l").replace('u', "l");
32
33     let _ = "hesuo worpd".replace(s, "l").replace('u', "l").replace('p', "l");
34
35     let _ = "hesuo worpd".replace(s, "l").replace(u, "l").replace('p', "l");
36
37     let _ = "hesuo worpd".replace(s, "l").replace(u, "l").replace(p, "l");
38
39     let _ = "hesuo worlp".replace('s', "l").replace('u', "l").replace('p', "d");
40
41     let _ = "hesuo worpd".replace('s', "x").replace('u', "l").replace('p', "l");
42
43     // Note: Future iterations could lint `replace(|c| matches!(c, "su" | 'd' | 'p'), "l")`
44     let _ = "hesudo worpd".replace("su", "l").replace('d', "l").replace('p', "l");
45
46     let _ = "hesudo worpd".replace(d, "l").replace('p', "l").replace("su", "l");
47
48     let _ = "hesuo world".replace(get_filter(), "l").replace('s', "l");
49
50     // NO LINT CASES
51     let _ = "hesuo world".replace('s', "l").replace('u', "p");
52
53     let _ = "hesuo worpd".replace('s', "l").replace('p', l);
54
55     let _ = "hesudo worpd".replace('d', "l").replace("su", "l").replace('p', "l");
56
57     // Note: Future iterations of `collapsible_str_replace` might lint this and combine to `[s, u, p]`
58     let _ = "hesuo worpd".replace([s, u], "l").replace([u, p], "l");
59
60     let _ = "hesuo worpd".replace(['s', 'u'], "l").replace(['u', 'p'], "l");
61
62     let _ = "hesuo worpd".replace('s', "l").replace(['u', 'p'], "l");
63
64     let _ = "hesuo worpd".replace(['s', 'u', 'p'], "l").replace('r', "l");
65
66     let _ = "hesuo worpd".replace(['s', 'u', 'p'], l).replace('r', l);
67
68     let _ = "hesuo worpd".replace(['s', u, 'p'], "l").replace('r', "l");
69
70     let _ = "hesuo worpd".replace([s, u], "l").replace(p, "l");
71
72     // Regression test
73     let _ = "hesuo worpd"
74         .replace('u', iter.next().unwrap())
75         .replace('s', iter.next().unwrap());
76 }