| #![allow(unused)] | |
| #![warn(clippy::collapsible_str_replace)] | |
| fn get_filter() -> char { | |
| 'u' | |
| } | |
| fn main() { | |
| let d = 'd'; | |
| let p = 'p'; | |
| let s = 's'; | |
| let u = 'u'; | |
| let l = "l"; | |
| let mut iter = ["l", "z"].iter(); | |
| // LINT CASES | |
| let _ = "hesuo worpd".replace(['s', 'u'], "l"); | |
| //~^ collapsible_str_replace | |
| let _ = "hesuo worpd".replace(['s', 'u'], l); | |
| //~^ collapsible_str_replace | |
| let _ = "hesuo worpd".replace(['s', 'u', 'p'], "l"); | |
| //~^ collapsible_str_replace | |
| let _ = "hesuo worpd" | |
| .replace(['s', 'u', 'p', 'd'], "l"); | |
| let _ = "hesuo world".replace([s, 'u'], "l"); | |
| //~^ collapsible_str_replace | |
| let _ = "hesuo worpd".replace([s, 'u', 'p'], "l"); | |
| //~^ collapsible_str_replace | |
| let _ = "hesuo worpd".replace([s, u, 'p'], "l"); | |
| //~^ collapsible_str_replace | |
| let _ = "hesuo worpd".replace([s, u, p], "l"); | |
| //~^ collapsible_str_replace | |
| let _ = "hesuo worlp".replace(['s', 'u'], "l").replace('p', "d"); | |
| //~^ collapsible_str_replace | |
| let _ = "hesuo worpd".replace('s', "x").replace(['u', 'p'], "l"); | |
| //~^ collapsible_str_replace | |
| // Note: Future iterations could lint `replace(|c| matches!(c, "su" | 'd' | 'p'), "l")` | |
| let _ = "hesudo worpd".replace("su", "l").replace(['d', 'p'], "l"); | |
| //~^ collapsible_str_replace | |
| let _ = "hesudo worpd".replace([d, 'p'], "l").replace("su", "l"); | |
| //~^ collapsible_str_replace | |
| let _ = "hesuo world".replace([get_filter(), 's'], "l"); | |
| //~^ collapsible_str_replace | |
| // NO LINT CASES | |
| let _ = "hesuo world".replace('s', "l").replace('u', "p"); | |
| let _ = "hesuo worpd".replace('s', "l").replace('p', l); | |
| let _ = "hesudo worpd".replace('d', "l").replace("su", "l").replace('p', "l"); | |
| // Note: Future iterations of `collapsible_str_replace` might lint this and combine to `[s, u, p]` | |
| let _ = "hesuo worpd".replace([s, u], "l").replace([u, p], "l"); | |
| let _ = "hesuo worpd".replace(['s', 'u'], "l").replace(['u', 'p'], "l"); | |
| let _ = "hesuo worpd".replace('s', "l").replace(['u', 'p'], "l"); | |
| let _ = "hesuo worpd".replace(['s', 'u', 'p'], "l").replace('r', "l"); | |
| let _ = "hesuo worpd".replace(['s', 'u', 'p'], l).replace('r', l); | |
| let _ = "hesuo worpd".replace(['s', u, 'p'], "l").replace('r', "l"); | |
| let _ = "hesuo worpd".replace([s, u], "l").replace(p, "l"); | |
| // Regression test | |
| let _ = "hesuo worpd" | |
| .replace('u', iter.next().unwrap()) | |
| .replace('s', iter.next().unwrap()); | |
| } | |
| #[clippy::msrv = "1.57"] | |
| fn msrv_1_57() { | |
| let _ = "".replace('a', "1.57").replace('b', "1.57"); | |
| } | |
| #[clippy::msrv = "1.58"] | |
| fn msrv_1_58() { | |
| let _ = "".replace(['a', 'b'], "1.58"); | |
| //~^ collapsible_str_replace | |
| } |