about summary refs log tree commit diff
path: root/compiler/rustc_resolve/src/check_unused.rs
diff options
context:
space:
mode:
authorXiretza <xiretza@xiretza.xyz>2024-04-15 18:07:22 +0000
committerXiretza <xiretza@xiretza.xyz>2024-05-21 20:16:39 +0000
commit8004e6a3796f832eb7752dcd22252b8e6d04e240 (patch)
tree832d257e8cc1c468cd95d084ae7000f5af3e1e66 /compiler/rustc_resolve/src/check_unused.rs
parentb7abf014ec85e362c10bd7dc222a1a71968bc427 (diff)
downloadrust-8004e6a3796f832eb7752dcd22252b8e6d04e240.tar.gz
rust-8004e6a3796f832eb7752dcd22252b8e6d04e240.zip
Make early lints translatable
Diffstat (limited to 'compiler/rustc_resolve/src/check_unused.rs')
-rw-r--r--compiler/rustc_resolve/src/check_unused.rs34
1 files changed, 11 insertions, 23 deletions
diff --git a/compiler/rustc_resolve/src/check_unused.rs b/compiler/rustc_resolve/src/check_unused.rs
index 55b2d91260e..93b53f510fc 100644
--- a/compiler/rustc_resolve/src/check_unused.rs
+++ b/compiler/rustc_resolve/src/check_unused.rs
@@ -433,20 +433,12 @@ impl Resolver<'_, '_> {
         visitor.report_unused_extern_crate_items(maybe_unused_extern_crates);
 
         for unused in visitor.unused_imports.values() {
-            let mut fixes = Vec::new();
-            let spans = match calc_unused_spans(unused, &unused.use_tree, unused.use_tree_id) {
-                UnusedSpanResult::Used => continue,
-                UnusedSpanResult::Unused { spans, remove } => {
-                    fixes.push((remove, String::new()));
-                    spans
-                }
-                UnusedSpanResult::PartialUnused { spans, remove } => {
-                    for fix in &remove {
-                        fixes.push((*fix, String::new()));
-                    }
-                    spans
-                }
-            };
+            let (spans, remove_spans) =
+                match calc_unused_spans(unused, &unused.use_tree, unused.use_tree_id) {
+                    UnusedSpanResult::Used => continue,
+                    UnusedSpanResult::Unused { spans, remove } => (spans, vec![remove]),
+                    UnusedSpanResult::PartialUnused { spans, remove } => (spans, remove),
+                };
 
             let ms = MultiSpan::from_spans(spans);
 
@@ -458,13 +450,8 @@ impl Resolver<'_, '_> {
                 .collect::<Vec<String>>();
             span_snippets.sort();
 
-            let fix_msg = if fixes.len() == 1 && fixes[0].0 == unused.item_span {
-                "remove the whole `use` item"
-            } else if ms.primary_spans().len() > 1 {
-                "remove the unused imports"
-            } else {
-                "remove the unused import"
-            };
+            let remove_whole_use = remove_spans.len() == 1 && remove_spans[0] == unused.item_span;
+            let num_to_remove = ms.primary_spans().len();
 
             // If we are in the `--test` mode, suppress a help that adds the `#[cfg(test)]`
             // attribute; however, if not, suggest adding the attribute. There is no way to
@@ -495,8 +482,9 @@ impl Resolver<'_, '_> {
                 unused.use_tree_id,
                 ms,
                 BuiltinLintDiag::UnusedImports {
-                    fix_msg: fix_msg.into(),
-                    fixes,
+                    remove_whole_use,
+                    num_to_remove,
+                    remove_spans,
                     test_module_span,
                     span_snippets,
                 },