@@ -2583,8 +2583,8 @@ impl Methods {
2583
2583
} ,
2584
2584
_ => { } ,
2585
2585
} ,
2586
- ( name @ "count" , args @ [ ] ) => match method_call ( recv) {
2587
- Some ( ( "cloned" , [ recv2] , _) ) => iter_overeager_cloned:: check ( cx, expr, recv2, name , args ) ,
2586
+ ( "count" , [ ] ) => match method_call ( recv) {
2587
+ Some ( ( "cloned" , [ recv2] , _) ) => iter_overeager_cloned:: check ( cx, expr, recv , recv2, true , false ) ,
2588
2588
Some ( ( name2 @ ( "into_iter" | "iter" | "iter_mut" ) , [ recv2] , _) ) => {
2589
2589
iter_count:: check ( cx, expr, recv2, name2) ;
2590
2590
} ,
@@ -2614,9 +2614,9 @@ impl Methods {
2614
2614
flat_map_identity:: check ( cx, expr, arg, span) ;
2615
2615
flat_map_option:: check ( cx, expr, arg, span) ;
2616
2616
} ,
2617
- ( name @ "flatten" , args @ [ ] ) => match method_call ( recv) {
2617
+ ( "flatten" , [ ] ) => match method_call ( recv) {
2618
2618
Some ( ( "map" , [ recv, map_arg] , map_span) ) => map_flatten:: check ( cx, expr, recv, map_arg, map_span) ,
2619
- Some ( ( "cloned" , [ recv2] , _) ) => iter_overeager_cloned:: check ( cx, expr, recv2, name , args ) ,
2619
+ Some ( ( "cloned" , [ recv2] , _) ) => iter_overeager_cloned:: check ( cx, expr, recv , recv2, false , true ) ,
2620
2620
_ => { } ,
2621
2621
} ,
2622
2622
( "fold" , [ init, acc] ) => unnecessary_fold:: check ( cx, expr, init, acc, span) ,
@@ -2636,10 +2636,10 @@ impl Methods {
2636
2636
unnecessary_join:: check ( cx, expr, recv, join_arg, span) ;
2637
2637
}
2638
2638
} ,
2639
- ( "last" , args @ [ ] ) | ( "skip" , args @ [ _] ) => {
2639
+ ( "last" , [ ] ) | ( "skip" , [ _] ) => {
2640
2640
if let Some ( ( name2, [ recv2, args2 @ ..] , _span2) ) = method_call ( recv) {
2641
2641
if let ( "cloned" , [ ] ) = ( name2, args2) {
2642
- iter_overeager_cloned:: check ( cx, expr, recv2, name , args ) ;
2642
+ iter_overeager_cloned:: check ( cx, expr, recv , recv2, false , false ) ;
2643
2643
}
2644
2644
}
2645
2645
} ,
@@ -2660,10 +2660,10 @@ impl Methods {
2660
2660
map_identity:: check ( cx, expr, recv, m_arg, name, span) ;
2661
2661
} ,
2662
2662
( "map_or" , [ def, map] ) => option_map_or_none:: check ( cx, expr, recv, def, map) ,
2663
- ( name @ "next" , args @ [ ] ) => {
2663
+ ( "next" , [ ] ) => {
2664
2664
if let Some ( ( name2, [ recv2, args2 @ ..] , _) ) = method_call ( recv) {
2665
2665
match ( name2, args2) {
2666
- ( "cloned" , [ ] ) => iter_overeager_cloned:: check ( cx, expr, recv2, name , args ) ,
2666
+ ( "cloned" , [ ] ) => iter_overeager_cloned:: check ( cx, expr, recv , recv2, false , false ) ,
2667
2667
( "filter" , [ arg] ) => filter_next:: check ( cx, expr, recv2, arg) ,
2668
2668
( "filter_map" , [ arg] ) => filter_map_next:: check ( cx, expr, recv2, arg, self . msrv ) ,
2669
2669
( "iter" , [ ] ) => iter_next_slice:: check ( cx, expr, recv2) ,
@@ -2673,9 +2673,9 @@ impl Methods {
2673
2673
}
2674
2674
}
2675
2675
} ,
2676
- ( "nth" , args @ [ n_arg] ) => match method_call ( recv) {
2676
+ ( "nth" , [ n_arg] ) => match method_call ( recv) {
2677
2677
Some ( ( "bytes" , [ recv2] , _) ) => bytes_nth:: check ( cx, expr, recv2, n_arg) ,
2678
- Some ( ( "cloned" , [ recv2] , _) ) => iter_overeager_cloned:: check ( cx, expr, recv2, name , args ) ,
2678
+ Some ( ( "cloned" , [ recv2] , _) ) => iter_overeager_cloned:: check ( cx, expr, recv , recv2, false , false ) ,
2679
2679
Some ( ( "iter" , [ recv2] , _) ) => iter_nth:: check ( cx, expr, recv2, recv, n_arg, false ) ,
2680
2680
Some ( ( "iter_mut" , [ recv2] , _) ) => iter_nth:: check ( cx, expr, recv2, recv, n_arg, true ) ,
2681
2681
_ => iter_nth_zero:: check ( cx, expr, recv, n_arg) ,
@@ -2698,10 +2698,10 @@ impl Methods {
2698
2698
}
2699
2699
} ,
2700
2700
( "step_by" , [ arg] ) => iterator_step_by_zero:: check ( cx, expr, arg) ,
2701
- ( "take" , args @ [ _arg] ) => {
2701
+ ( "take" , [ _arg] ) => {
2702
2702
if let Some ( ( name2, [ recv2, args2 @ ..] , _span2) ) = method_call ( recv) {
2703
2703
if let ( "cloned" , [ ] ) = ( name2, args2) {
2704
- iter_overeager_cloned:: check ( cx, expr, recv2, name , args ) ;
2704
+ iter_overeager_cloned:: check ( cx, expr, recv , recv2, false , false ) ;
2705
2705
}
2706
2706
}
2707
2707
} ,
0 commit comments