@@ -299,20 +299,20 @@ fn calc_unused_spans(
299
299
300
300
let mut unused_spans = Vec :: new ( ) ;
301
301
let mut to_remove = Vec :: new ( ) ;
302
- let mut all_nested_unused = true ;
302
+ let mut used_childs = 0 ;
303
303
let mut previous_unused = false ;
304
304
for ( pos, ( use_tree, use_tree_id) ) in nested. iter ( ) . enumerate ( ) {
305
305
let remove = match calc_unused_spans ( unused_import, use_tree, * use_tree_id) {
306
306
UnusedSpanResult :: Used => {
307
- all_nested_unused = false ;
307
+ used_childs += 1 ;
308
308
None
309
309
}
310
310
UnusedSpanResult :: Unused { mut spans, remove } => {
311
311
unused_spans. append ( & mut spans) ;
312
312
Some ( remove)
313
313
}
314
314
UnusedSpanResult :: PartialUnused { mut spans, remove : mut to_remove_extra } => {
315
- all_nested_unused = false ;
315
+ used_childs += 1 ;
316
316
unused_spans. append ( & mut spans) ;
317
317
to_remove. append ( & mut to_remove_extra) ;
318
318
None
@@ -321,7 +321,7 @@ fn calc_unused_spans(
321
321
if let Some ( remove) = remove {
322
322
let remove_span = if nested. len ( ) == 1 {
323
323
remove
324
- } else if pos == nested. len ( ) - 1 || !all_nested_unused {
324
+ } else if pos == nested. len ( ) - 1 || used_childs > 0 {
325
325
// Delete everything from the end of the last import, to delete the
326
326
// previous comma
327
327
nested[ pos - 1 ] . 0 . span . shrink_to_hi ( ) . to ( use_tree. span )
@@ -343,7 +343,7 @@ fn calc_unused_spans(
343
343
}
344
344
if unused_spans. is_empty ( ) {
345
345
UnusedSpanResult :: Used
346
- } else if all_nested_unused {
346
+ } else if used_childs == 0 {
347
347
UnusedSpanResult :: Unused { spans : unused_spans, remove : full_span }
348
348
} else {
349
349
UnusedSpanResult :: PartialUnused { spans : unused_spans, remove : to_remove }
0 commit comments