@@ -104,8 +104,16 @@ pub trait MutVisitor: Sized {
104104 walk_use_tree ( self , use_tree) ;
105105 }
106106
107+ fn visit_foreign_item ( & mut self , ni : & mut P < ForeignItem > ) {
108+ walk_item ( self , ni, ( ) ) ;
109+ }
110+
107111 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, ( ) ) ;
109117 }
110118
111119 fn flat_map_item ( & mut self , i : P < Item > ) -> SmallVec < [ P < Item > ; 1 ] > {
@@ -124,6 +132,10 @@ pub trait MutVisitor: Sized {
124132 walk_flat_map_field_def ( self , fd)
125133 }
126134
135+ fn visit_assoc_item ( & mut self , i : & mut P < AssocItem > , ctxt : AssocCtxt ) {
136+ walk_item ( self , i, ctxt)
137+ }
138+
127139 fn flat_map_assoc_item (
128140 & mut self ,
129141 i : P < AssocItem > ,
@@ -1383,18 +1395,11 @@ pub fn walk_crate<T: MutVisitor>(vis: &mut T, krate: &mut Crate) {
13831395 vis. visit_span ( inject_use_span) ;
13841396}
13851397
1386- pub fn walk_flat_map_item < K : WalkItemKind < Ctxt = ( ) > > (
1398+ pub fn walk_item < K : WalkItemKind > (
13871399 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 > > ,
13961401 ctxt : K :: Ctxt ,
1397- ) -> SmallVec < [ P < Item < K > > ; 1 ] > {
1402+ ) {
13981403 let Item { ident, attrs, id, kind, vis, span, tokens } = item. deref_mut ( ) ;
13991404 visitor. visit_id ( id) ;
14001405 visit_attrs ( visitor, attrs) ;
@@ -1403,6 +1408,27 @@ pub fn walk_flat_map_assoc_item<K: WalkItemKind>(
14031408 kind. walk ( * span, * id, ident, vis, ctxt, visitor) ;
14041409 visit_lazy_tts ( visitor, tokens) ;
14051410 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) ;
14061432 smallvec ! [ item]
14071433}
14081434
0 commit comments