@@ -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_assoc_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,19 @@ 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 = ( ) > > (
1387
- visitor : & mut impl MutVisitor ,
1388
- item : P < Item < K > > ,
1389
- ) -> SmallVec < [ P < Item < K > > ; 1 ] > {
1390
- walk_flat_map_assoc_item ( visitor, item, ( ) )
1398
+ pub fn walk_item ( visitor : & mut impl MutVisitor , item : & mut P < Item < impl WalkItemKind < Ctxt = ( ) > > > ) {
1399
+ walk_item_ctxt ( visitor, item, ( ) )
1391
1400
}
1392
1401
1393
- pub fn walk_flat_map_assoc_item < K : WalkItemKind > (
1402
+ pub fn walk_assoc_item ( visitor : & mut impl MutVisitor , item : & mut P < AssocItem > , ctxt : AssocCtxt ) {
1403
+ walk_item_ctxt ( visitor, item, ctxt)
1404
+ }
1405
+
1406
+ fn walk_item_ctxt < K : WalkItemKind > (
1394
1407
visitor : & mut impl MutVisitor ,
1395
- mut item : P < Item < K > > ,
1408
+ item : & mut P < Item < K > > ,
1396
1409
ctxt : K :: Ctxt ,
1397
- ) -> SmallVec < [ P < Item < K > > ; 1 ] > {
1410
+ ) {
1398
1411
let Item { ident, attrs, id, kind, vis, span, tokens } = item. deref_mut ( ) ;
1399
1412
visitor. visit_id ( id) ;
1400
1413
visit_attrs ( visitor, attrs) ;
@@ -1403,6 +1416,27 @@ pub fn walk_flat_map_assoc_item<K: WalkItemKind>(
1403
1416
kind. walk ( * span, * id, ident, vis, ctxt, visitor) ;
1404
1417
visit_lazy_tts ( visitor, tokens) ;
1405
1418
visitor. visit_span ( span) ;
1419
+ }
1420
+
1421
+ pub fn walk_flat_map_item ( vis : & mut impl MutVisitor , mut item : P < Item > ) -> SmallVec < [ P < Item > ; 1 ] > {
1422
+ vis. visit_item ( & mut item) ;
1423
+ smallvec ! [ item]
1424
+ }
1425
+
1426
+ pub fn walk_flat_map_foreign_item (
1427
+ vis : & mut impl MutVisitor ,
1428
+ mut item : P < ForeignItem > ,
1429
+ ) -> SmallVec < [ P < ForeignItem > ; 1 ] > {
1430
+ vis. visit_foreign_item ( & mut item) ;
1431
+ smallvec ! [ item]
1432
+ }
1433
+
1434
+ pub fn walk_flat_map_assoc_item (
1435
+ vis : & mut impl MutVisitor ,
1436
+ mut item : P < AssocItem > ,
1437
+ ctxt : AssocCtxt ,
1438
+ ) -> SmallVec < [ P < AssocItem > ; 1 ] > {
1439
+ vis. visit_assoc_item ( & mut item, ctxt) ;
1406
1440
smallvec ! [ item]
1407
1441
}
1408
1442
0 commit comments