Skip to content

Commit e68edb8

Browse files
committed
refactor(compiler/resolve): simplify some code
Removes unnecessary allocates and double-sorting the same vector, makes the code a little nicer.
1 parent cc705b8 commit e68edb8

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

compiler/rustc_resolve/src/check_unused.rs

+10-11
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ impl Resolver<'_, '_> {
338338

339339
for unused in visitor.unused_imports.values() {
340340
let mut fixes = Vec::new();
341-
let mut spans = match calc_unused_spans(unused, unused.use_tree, unused.use_tree_id) {
341+
let spans = match calc_unused_spans(unused, unused.use_tree, unused.use_tree_id) {
342342
UnusedSpanResult::Used => continue,
343343
UnusedSpanResult::FlatUnused(span, remove) => {
344344
fixes.push((remove, String::new()));
@@ -356,20 +356,19 @@ impl Resolver<'_, '_> {
356356
}
357357
};
358358

359-
let len = spans.len();
360-
spans.sort();
361-
let ms = MultiSpan::from_spans(spans.clone());
362-
let mut span_snippets = spans
359+
let ms = MultiSpan::from_spans(spans);
360+
361+
let mut span_snippets = ms
362+
.primary_spans()
363363
.iter()
364-
.filter_map(|s| match tcx.sess.source_map().span_to_snippet(*s) {
365-
Ok(s) => Some(format!("`{s}`")),
366-
_ => None,
367-
})
364+
.filter_map(|span| tcx.sess.source_map().span_to_snippet(*span).ok())
365+
.map(|s| format!("`{s}`"))
368366
.collect::<Vec<String>>();
369367
span_snippets.sort();
368+
370369
let msg = format!(
371370
"unused import{}{}",
372-
pluralize!(len),
371+
pluralize!(ms.primary_spans().len()),
373372
if !span_snippets.is_empty() {
374373
format!(": {}", span_snippets.join(", "))
375374
} else {
@@ -379,7 +378,7 @@ impl Resolver<'_, '_> {
379378

380379
let fix_msg = if fixes.len() == 1 && fixes[0].0 == unused.item_span {
381380
"remove the whole `use` item"
382-
} else if spans.len() > 1 {
381+
} else if ms.primary_spans().len() > 1 {
383382
"remove the unused imports"
384383
} else {
385384
"remove the unused import"

0 commit comments

Comments
 (0)