1
Fork 0

collect diag suggestions instead of pushing into vector repeatedly

This commit is contained in:
Yotam Ofek 2025-01-11 13:21:15 +00:00
parent 6680bc5554
commit 27b0693464

View file

@ -2680,19 +2680,16 @@ impl<'infcx, 'tcx> MirBorrowckCtxt<'_, 'infcx, 'tcx> {
return; return;
} }
let mut sugg = vec![];
let sm = self.infcx.tcx.sess.source_map(); let sm = self.infcx.tcx.sess.source_map();
let sugg = finder
if let Some(span) = finder.closure_arg_span { .closure_arg_span
sugg.push((sm.next_point(span.shrink_to_lo()).shrink_to_hi(), finder.suggest_arg)); .map(|span| (sm.next_point(span.shrink_to_lo()).shrink_to_hi(), finder.suggest_arg))
} .into_iter()
for span in finder.closure_change_spans { .chain(
sugg.push((span, "this".to_string())); finder.closure_change_spans.into_iter().map(|span| (span, "this".to_string())),
} )
.chain(finder.closure_call_changes)
for (span, suggest) in finder.closure_call_changes { .collect();
sugg.push((span, suggest));
}
err.multipart_suggestion_verbose( err.multipart_suggestion_verbose(
"try explicitly passing `&Self` into the closure as an argument", "try explicitly passing `&Self` into the closure as an argument",