@@ -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