@@ -299,20 +299,20 @@ fn calc_unused_spans(
299299
300300 let mut unused_spans = Vec :: new ( ) ;
301301 let mut to_remove = Vec :: new ( ) ;
302- let mut all_nested_unused = true ;
302+ let mut used_childs = 0 ;
303303 let mut previous_unused = false ;
304304 for ( pos, ( use_tree, use_tree_id) ) in nested. iter ( ) . enumerate ( ) {
305305 let remove = match calc_unused_spans ( unused_import, use_tree, * use_tree_id) {
306306 UnusedSpanResult :: Used => {
307- all_nested_unused = false ;
307+ used_childs += 1 ;
308308 None
309309 }
310310 UnusedSpanResult :: Unused { mut spans, remove } => {
311311 unused_spans. append ( & mut spans) ;
312312 Some ( remove)
313313 }
314314 UnusedSpanResult :: PartialUnused { mut spans, remove : mut to_remove_extra } => {
315- all_nested_unused = false ;
315+ used_childs += 1 ;
316316 unused_spans. append ( & mut spans) ;
317317 to_remove. append ( & mut to_remove_extra) ;
318318 None
@@ -321,7 +321,7 @@ fn calc_unused_spans(
321321 if let Some ( remove) = remove {
322322 let remove_span = if nested. len ( ) == 1 {
323323 remove
324- } else if pos == nested. len ( ) - 1 || !all_nested_unused {
324+ } else if pos == nested. len ( ) - 1 || used_childs > 0 {
325325 // Delete everything from the end of the last import, to delete the
326326 // previous comma
327327 nested[ pos - 1 ] . 0 . span . shrink_to_hi ( ) . to ( use_tree. span )
@@ -343,7 +343,7 @@ fn calc_unused_spans(
343343 }
344344 if unused_spans. is_empty ( ) {
345345 UnusedSpanResult :: Used
346- } else if all_nested_unused {
346+ } else if used_childs == 0 {
347347 UnusedSpanResult :: Unused { spans : unused_spans, remove : full_span }
348348 } else {
349349 UnusedSpanResult :: PartialUnused { spans : unused_spans, remove : to_remove }
0 commit comments