@@ -13,36 +13,38 @@ fn main() {
1313 let l = "l" ;
1414
1515 // LINT CASES
16- // If the first argument to a single `str::replace` call is a slice and none of the chars
17- // are variables, recommend `collapsible_str_replace`
18- let replacement = misspelled. replace ( & [ 's' , 'u' , 'p' ] , "l" ) ;
16+ let replacement = misspelled. replace ( 's' , "l" ) . replace ( 'u' , "l" ) ;
1917 println ! ( "{replacement}" ) ;
2018
21- let replacement = misspelled. replace ( & [ 's' , 'u' , 'p' ] , l) ;
19+ let replacement = misspelled. replace ( 's' , l ) . replace ( 'u' , l) ;
2220 println ! ( "{replacement}" ) ;
2321
24- // If multiple `str::replace` calls contain slices and none of the chars are variables,
25- // recommend `collapsible_str_replace`
26- let replacement = misspelled. replace ( & [ 's' , 'u' ] , "l" ) . replace ( & [ 'u' , 'p' ] , "l" ) ;
22+ let replacement = misspelled. replace ( 's' , "l" ) . replace ( 'u' , "l" ) . replace ( 'p' , "l" ) ;
2723 println ! ( "{replacement}" ) ;
2824
29- let replacement = misspelled. replace ( 's' , "l" ) . replace ( & [ 'u' , 'p' ] , "l" ) ;
25+ let replacement = misspelled
26+ . replace ( 's' , "l" )
27+ . replace ( 'u' , "l" )
28+ . replace ( 'p' , "l" )
29+ . replace ( 'd' , "l" ) ;
3030 println ! ( "{replacement}" ) ;
3131
32- let replacement = misspelled. replace ( & [ 's' , 'u' ] , "l" ) . replace ( 'p' , "l" ) ;
33- println ! ( "replacement" ) ;
32+ // FALLBACK CASES
33+ // If there are consecutive calls to `str::replace` and all or any chars are variables,
34+ // recommend the fallback `misspelled.replace(&[s, u, p], "l")`
35+ let replacement = misspelled. replace ( s, "l" ) . replace ( 'u' , "l" ) ;
36+ println ! ( "{replacement}" ) ;
3437
35- // If there are consecutive calls to `str::replace` and none of the chars are variables,
36- // recommend `collapsible_str_replace`
37- let replacement = misspelled. replace ( 's' , "l" ) . replace ( 'u' , "l" ) ;
38+ let replacement = misspelled. replace ( s, "l" ) . replace ( 'u' , "l" ) . replace ( 'p' , "l" ) ;
3839 println ! ( "{replacement}" ) ;
3940
40- let replacement = misspelled. replace ( 's' , "l" ) . replace ( 'u' , "l" ) . replace ( 'p' , "l" ) ;
41+ let replacement = misspelled. replace ( s, "l" ) . replace ( u, "l" ) . replace ( 'p' , "l" ) ;
42+ println ! ( "{replacement}" ) ;
43+
44+ let replacement = misspelled. replace ( s, "l" ) . replace ( u, "l" ) . replace ( p, "l" ) ;
4145 println ! ( "{replacement}" ) ;
4246
4347 // NO LINT CASES
44- // If there is a single call to `str::replace` and the first argument is a char or a variable,
45- // do not recommend `collapsible_str_replace`
4648 let replacement = misspelled. replace ( 's' , "l" ) ;
4749 println ! ( "{replacement}" ) ;
4850
@@ -53,36 +55,33 @@ fn main() {
5355 let replacement = misspelled. replace ( 's' , "l" ) . replace ( 'u' , "p" ) ;
5456 println ! ( "{replacement}" ) ;
5557
56- // If the `from` argument is of kind other than a slice or a char, do not lint
5758 let replacement = misspelled. replace ( & get_filter ( ) , "l" ) ;
59+ println ! ( "{replacement}" ) ;
5860
59- // NO LINT TIL IMPROVEMENT
60- // The first iteration of `collapsible_str_replace` will not create lint if the first argument to
61- // a single `str::replace` call is a slice and one or more of its chars are variables
62- let replacement = misspelled. replace ( & [ 's' , u, 'p' ] , "l" ) ;
61+ let replacement = misspelled. replace ( & [ 's' , 'u' , 'p' ] , "l" ) ;
6362 println ! ( "{replacement}" ) ;
6463
65- let replacement = misspelled. replace ( & [ s , u , 'p' ] , "l" ) ;
64+ let replacement = misspelled. replace ( & [ 's' , 'u' , 'p' ] , l ) ;
6665 println ! ( "{replacement}" ) ;
6766
68- let replacement = misspelled. replace ( & [ s , u , p ] , "l" ) ;
67+ let replacement = misspelled. replace ( & [ 's' , 'u' ] , "l" ) . replace ( & [ 'u' , 'p' ] , "l" ) ;
6968 println ! ( "{replacement}" ) ;
7069
71- let replacement = misspelled. replace ( & [ s , u ] , "l" ) . replace ( & [ u , p ] , "l" ) ;
70+ let replacement = misspelled. replace ( 's' , "l" ) . replace ( & [ 'u' , 'p' ] , "l" ) ;
7271 println ! ( "{replacement}" ) ;
7372
74- // FALLBACK CASES
75- // If there are consecutive calls to `str::replace` and all or any chars are variables,
76- // recommend the fallback `misspelled.replace(&[s, u, p], "l")`
77- let replacement = misspelled. replace ( s , "l" ) . replace ( 'u' , "l" ) ;
73+ let replacement = misspelled . replace ( & [ 's' , 'u' ] , "l" ) . replace ( 'p' , "l" ) ;
74+ println ! ( "replacement" ) ;
75+
76+ let replacement = misspelled. replace ( & [ 's' , u , 'p' ] , "l" ) ;
7877 println ! ( "{replacement}" ) ;
7978
80- let replacement = misspelled. replace ( s, "l" ) . replace ( 'u' , "l" ) . replace ( 'p' , "l" ) ;
79+ let replacement = misspelled. replace ( & [ s, u , 'p' ] , "l" ) ;
8180 println ! ( "{replacement}" ) ;
8281
83- let replacement = misspelled. replace ( s, "l" ) . replace ( u, "l" ) . replace ( 'p' , "l" ) ;
82+ let replacement = misspelled. replace ( & [ s, u, p ] , "l" ) ;
8483 println ! ( "{replacement}" ) ;
8584
86- let replacement = misspelled. replace ( s, "l" ) . replace ( u , "l" ) . replace ( p , "l" ) ;
85+ let replacement = misspelled. replace ( & [ s, u ] , "l" ) . replace ( & [ u , p ] , "l" ) ;
8786 println ! ( "{replacement}" ) ;
8887}
0 commit comments