@@ -104,8 +104,16 @@ pub trait MutVisitor: Sized {
104
104
walk_use_tree ( self , use_tree) ;
105
105
}
106
106
107
+ fn visit_foreign_item ( & mut self , ni : & mut P < ForeignItem > ) {
108
+ walk_item ( self , ni, ( ) ) ;
109
+ }
110
+
107
111
fn flat_map_foreign_item ( & mut self , ni : P < ForeignItem > ) -> SmallVec < [ P < ForeignItem > ; 1 ] > {
108
- walk_flat_map_item ( self , ni)
112
+ walk_flat_map_foreign_item ( self , ni)
113
+ }
114
+
115
+ fn visit_item ( & mut self , i : & mut P < Item > ) {
116
+ walk_item ( self , i, ( ) ) ;
109
117
}
110
118
111
119
fn flat_map_item ( & mut self , i : P < Item > ) -> SmallVec < [ P < Item > ; 1 ] > {
@@ -124,6 +132,10 @@ pub trait MutVisitor: Sized {
124
132
walk_flat_map_field_def ( self , fd)
125
133
}
126
134
135
+ fn visit_assoc_item ( & mut self , i : & mut P < AssocItem > , ctxt : AssocCtxt ) {
136
+ walk_item ( self , i, ctxt)
137
+ }
138
+
127
139
fn flat_map_assoc_item (
128
140
& mut self ,
129
141
i : P < AssocItem > ,
@@ -1383,18 +1395,11 @@ pub fn walk_crate<T: MutVisitor>(vis: &mut T, krate: &mut Crate) {
1383
1395
vis. visit_span ( inject_use_span) ;
1384
1396
}
1385
1397
1386
- pub fn walk_flat_map_item < K : WalkItemKind < Ctxt = ( ) > > (
1398
+ pub fn walk_item < K : WalkItemKind > (
1387
1399
visitor : & mut impl MutVisitor ,
1388
- item : P < Item < K > > ,
1389
- ) -> SmallVec < [ P < Item < K > > ; 1 ] > {
1390
- walk_flat_map_assoc_item ( visitor, item, ( ) )
1391
- }
1392
-
1393
- pub fn walk_flat_map_assoc_item < K : WalkItemKind > (
1394
- visitor : & mut impl MutVisitor ,
1395
- mut item : P < Item < K > > ,
1400
+ item : & mut P < Item < K > > ,
1396
1401
ctxt : K :: Ctxt ,
1397
- ) -> SmallVec < [ P < Item < K > > ; 1 ] > {
1402
+ ) {
1398
1403
let Item { ident, attrs, id, kind, vis, span, tokens } = item. deref_mut ( ) ;
1399
1404
visitor. visit_id ( id) ;
1400
1405
visit_attrs ( visitor, attrs) ;
@@ -1403,6 +1408,27 @@ pub fn walk_flat_map_assoc_item<K: WalkItemKind>(
1403
1408
kind. walk ( * span, * id, ident, vis, ctxt, visitor) ;
1404
1409
visit_lazy_tts ( visitor, tokens) ;
1405
1410
visitor. visit_span ( span) ;
1411
+ }
1412
+
1413
+ pub fn walk_flat_map_item ( vis : & mut impl MutVisitor , mut item : P < Item > ) -> SmallVec < [ P < Item > ; 1 ] > {
1414
+ vis. visit_item ( & mut item) ;
1415
+ smallvec ! [ item]
1416
+ }
1417
+
1418
+ pub fn walk_flat_map_foreign_item (
1419
+ vis : & mut impl MutVisitor ,
1420
+ mut item : P < ForeignItem > ,
1421
+ ) -> SmallVec < [ P < ForeignItem > ; 1 ] > {
1422
+ vis. visit_foreign_item ( & mut item) ;
1423
+ smallvec ! [ item]
1424
+ }
1425
+
1426
+ pub fn walk_flat_map_assoc_item (
1427
+ vis : & mut impl MutVisitor ,
1428
+ mut item : P < AssocItem > ,
1429
+ ctxt : AssocCtxt ,
1430
+ ) -> SmallVec < [ P < AssocItem > ; 1 ] > {
1431
+ vis. visit_assoc_item ( & mut item, ctxt) ;
1406
1432
smallvec ! [ item]
1407
1433
}
1408
1434
0 commit comments