@@ -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_assoc_item ( self , i, ctxt)
137+ }
138+
127139 fn flat_map_assoc_item (
128140 & mut self ,
129141 i : P < AssocItem > ,
@@ -1383,18 +1395,19 @@ 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 = ( ) > > (
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, ( ) )
13911400}
13921401
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 > (
13941407 visitor : & mut impl MutVisitor ,
1395- mut item : P < Item < K > > ,
1408+ item : & mut P < Item < K > > ,
13961409 ctxt : K :: Ctxt ,
1397- ) -> SmallVec < [ P < Item < K > > ; 1 ] > {
1410+ ) {
13981411 let Item { ident, attrs, id, kind, vis, span, tokens } = item. deref_mut ( ) ;
13991412 visitor. visit_id ( id) ;
14001413 visit_attrs ( visitor, attrs) ;
@@ -1403,6 +1416,27 @@ pub fn walk_flat_map_assoc_item<K: WalkItemKind>(
14031416 kind. walk ( * span, * id, ident, vis, ctxt, visitor) ;
14041417 visit_lazy_tts ( visitor, tokens) ;
14051418 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) ;
14061440 smallvec ! [ item]
14071441}
14081442
0 commit comments