@@ -921,7 +921,13 @@ fn get_details_from_idx<'a, 'tcx>(
921
921
e : & Expr < ' _ > ,
922
922
starts : & [ Start < ' tcx > ] ,
923
923
) -> Option < StartKind < ' tcx > > {
924
- starts. iter ( ) . find ( |var| same_var ( cx, e, var. id ) ) . map ( |v| v. kind )
924
+ starts. iter ( ) . find_map ( |start| {
925
+ if same_var ( cx, e, start. id ) {
926
+ Some ( start. kind )
927
+ } else {
928
+ None
929
+ }
930
+ } )
925
931
}
926
932
927
933
fn get_offset < ' a , ' tcx > (
@@ -1028,8 +1034,8 @@ fn build_manual_memcpy_suggestion<'a, 'tcx>(
1028
1034
start : & Expr < ' _ > ,
1029
1035
end : & Expr < ' _ > ,
1030
1036
limits : ast:: RangeLimits ,
1031
- dst : IndexExpr < ' _ > ,
1032
- src : IndexExpr < ' _ > ,
1037
+ dst : & IndexExpr < ' _ > ,
1038
+ src : & IndexExpr < ' _ > ,
1033
1039
) -> String {
1034
1040
fn print_offset ( offset : MinifyingSugg < ' static > ) -> MinifyingSugg < ' static > {
1035
1041
if offset. as_str ( ) == "0" {
@@ -1180,7 +1186,7 @@ fn detect_manual_memcpy<'a, 'tcx>(
1180
1186
}
1181
1187
} )
1182
1188
} )
1183
- . map ( |o| o. map ( |( dst, src) | build_manual_memcpy_suggestion ( cx, start, end, limits, dst, src) ) )
1189
+ . map ( |o| o. map ( |( dst, src) | build_manual_memcpy_suggestion ( cx, start, end, limits, & dst, & src) ) )
1184
1190
. collect :: < Option < Vec < _ > > > ( )
1185
1191
. filter ( |v| !v. is_empty ( ) )
1186
1192
. map ( |v| v. join ( "\n " ) ) ;
@@ -2129,10 +2135,13 @@ impl<'a, 'tcx> IncrementVisitor<'a, 'tcx> {
2129
2135
}
2130
2136
2131
2137
fn into_results ( self ) -> impl Iterator < Item = HirId > {
2132
- self . states
2133
- . into_iter ( )
2134
- . filter ( |( _, state) | * state == IncrementVisitorVarState :: IncrOnce )
2135
- . map ( |( id, _) | id)
2138
+ self . states . into_iter ( ) . filter_map ( |( id, state) | {
2139
+ if state == IncrementVisitorVarState :: IncrOnce {
2140
+ Some ( id)
2141
+ } else {
2142
+ None
2143
+ }
2144
+ } )
2136
2145
}
2137
2146
}
2138
2147
0 commit comments