@@ -1399,44 +1399,26 @@ impl InvocationCollectorNode for P<ast::Item> {
1399
1399
}
1400
1400
1401
1401
fn declared_idents ( & self ) -> Vec < Ident > {
1402
- struct ItemNameVisitor ( Vec < Ident > , u8 ) ;
1403
- impl Visitor < ' _ > for ItemNameVisitor {
1404
- fn visit_item ( & mut self , i : & ast:: Item ) {
1405
- self . 1 += 1 ;
1406
- if let ItemKind :: Use ( ut) = & i. kind {
1407
- fn collect_use_tree_leaves ( ut : & ast:: UseTree , idents : & mut Vec < Ident > ) {
1408
- match & ut. kind {
1409
- ast:: UseTreeKind :: Glob => { }
1410
- ast:: UseTreeKind :: Simple ( _) => idents. push ( ut. ident ( ) ) ,
1411
- ast:: UseTreeKind :: Nested { items, .. } => {
1412
- for ( ut, _) in items {
1413
- collect_use_tree_leaves ( ut, idents) ;
1414
- }
1415
- }
1402
+ if let ItemKind :: Use ( ut) = & self . kind {
1403
+ fn collect_use_tree_leaves ( ut : & ast:: UseTree , idents : & mut Vec < Ident > ) {
1404
+ match & ut. kind {
1405
+ ast:: UseTreeKind :: Glob => { }
1406
+ ast:: UseTreeKind :: Simple ( _) => idents. push ( ut. ident ( ) ) ,
1407
+ ast:: UseTreeKind :: Nested { items, .. } => {
1408
+ for ( ut, _) in items {
1409
+ collect_use_tree_leaves ( ut, idents) ;
1416
1410
}
1417
1411
}
1418
-
1419
- collect_use_tree_leaves ( ut, & mut self . 0 ) ;
1420
- } else {
1421
- if let Some ( ident) = i. kind . ident ( ) {
1422
- self . 0 . push ( ident) ;
1423
- }
1424
- }
1425
- if self . 1 < 4 {
1426
- // We only visit up to 3 levels of nesting from this item, like if we were
1427
- // looking at `mod a`, we'd find item `a::b::c`. We have this limit to guard
1428
- // against deeply nested modules behind `cfg` flags, where we could spend
1429
- // significant time collecting this information purely for a potential
1430
- // diagnostic improvement.
1431
- visit:: walk_item ( self , i) ;
1432
1412
}
1433
- self . 1 -= 1 ;
1434
1413
}
1414
+ let mut idents = vec ! [ ] ;
1415
+ collect_use_tree_leaves ( & ut, & mut idents) ;
1416
+ idents
1417
+ } else if let Some ( ident) = self . kind . ident ( ) {
1418
+ vec ! [ ident]
1419
+ } else {
1420
+ vec ! [ ]
1435
1421
}
1436
-
1437
- let mut v = ItemNameVisitor ( vec ! [ ] , 0 ) ;
1438
- v. visit_item ( self ) ;
1439
- v. 0
1440
1422
}
1441
1423
}
1442
1424
0 commit comments