@@ -952,7 +952,13 @@ fn get_details_from_idx<'tcx>(
952
952
e : & Expr < ' _ > ,
953
953
starts : & [ Start < ' tcx > ] ,
954
954
) -> Option < StartKind < ' tcx > > {
955
- starts. iter ( ) . find ( |var| same_var ( cx, e, var. id ) ) . map ( |v| v. kind )
955
+ starts. iter ( ) . find_map ( |start| {
956
+ if same_var ( cx, e, start. id ) {
957
+ Some ( start. kind )
958
+ } else {
959
+ None
960
+ }
961
+ } )
956
962
}
957
963
958
964
fn get_offset < ' tcx > (
@@ -1059,8 +1065,8 @@ fn build_manual_memcpy_suggestion<'tcx>(
1059
1065
start : & Expr < ' _ > ,
1060
1066
end : & Expr < ' _ > ,
1061
1067
limits : ast:: RangeLimits ,
1062
- dst : IndexExpr < ' _ > ,
1063
- src : IndexExpr < ' _ > ,
1068
+ dst : & IndexExpr < ' _ > ,
1069
+ src : & IndexExpr < ' _ > ,
1064
1070
) -> String {
1065
1071
fn print_offset ( offset : MinifyingSugg < ' static > ) -> MinifyingSugg < ' static > {
1066
1072
if offset. as_str ( ) == "0" {
@@ -1211,7 +1217,7 @@ fn detect_manual_memcpy<'tcx>(
1211
1217
}
1212
1218
} )
1213
1219
} )
1214
- . map ( |o| o. map ( |( dst, src) | build_manual_memcpy_suggestion ( cx, start, end, limits, dst, src) ) )
1220
+ . map ( |o| o. map ( |( dst, src) | build_manual_memcpy_suggestion ( cx, start, end, limits, & dst, & src) ) )
1215
1221
. collect :: < Option < Vec < _ > > > ( )
1216
1222
. filter ( |v| !v. is_empty ( ) )
1217
1223
. map ( |v| v. join ( "\n " ) ) ;
@@ -2319,10 +2325,13 @@ impl<'a, 'tcx> IncrementVisitor<'a, 'tcx> {
2319
2325
}
2320
2326
2321
2327
fn into_results ( self ) -> impl Iterator < Item = HirId > {
2322
- self . states
2323
- . into_iter ( )
2324
- . filter ( |( _, state) | * state == IncrementVisitorVarState :: IncrOnce )
2325
- . map ( |( id, _) | id)
2328
+ self . states . into_iter ( ) . filter_map ( |( id, state) | {
2329
+ if state == IncrementVisitorVarState :: IncrOnce {
2330
+ Some ( id)
2331
+ } else {
2332
+ None
2333
+ }
2334
+ } )
2326
2335
}
2327
2336
}
2328
2337
0 commit comments