@@ -288,7 +288,6 @@ macro_rules! make_ast_visitor {
288
288
make_visit!{ GenericArgs , visit_generic_args, walk_generic_args}
289
289
make_visit!{ GenericArg , visit_generic_arg, walk_generic_arg}
290
290
make_visit!{ AssocItemConstraint , visit_assoc_item_constraint, walk_assoc_item_constraint}
291
- make_visit!{ Attribute , visit_attribute, walk_attribute}
292
291
make_visit!{ Visibility , visit_vis, walk_vis}
293
292
make_visit!{ FnRetTy , visit_fn_ret_ty, walk_fn_ret_ty}
294
293
make_visit!{ AngleBracketedArgs , visit_angle_bracketed_parameter_data, walk_angle_bracketed_parameter_data}
@@ -307,6 +306,7 @@ macro_rules! make_ast_visitor {
307
306
308
307
// flat_maps
309
308
make_visit!{ Arm , visit_arm, walk_arm, flat_map_arm, walk_flat_map_arm}
309
+ make_visit!{ Attribute , visit_attribute, walk_attribute, flat_map_attribute, walk_flat_map_attribute}
310
310
make_visit!{ ExprField , visit_expr_field, walk_expr_field, flat_map_expr_field, walk_flat_map_expr_field}
311
311
make_visit!{ GenericParam , visit_generic_param, walk_generic_param, flat_map_generic_param, walk_flat_map_generic_param}
312
312
make_visit!{ FieldDef , visit_field_def, walk_field_def, flat_map_field_def, walk_flat_map_field_def}
@@ -605,7 +605,22 @@ macro_rules! make_ast_visitor {
605
605
return_result!( V )
606
606
}
607
607
608
+ pub fn walk_crate<$( $lt, ) ? V : $trait$( <$lt>) ?>(
609
+ vis: & mut V ,
610
+ krate: ref_t!( Crate )
611
+ ) -> result!( V ) {
612
+ let Crate { attrs, items, spans, id, is_placeholder: _ } = krate;
613
+ try_v!( visit_id!( vis, id) ) ;
614
+ visit_list!( vis, visit_attribute, flat_map_attribute, attrs) ;
615
+ visit_list!( vis, visit_item, flat_map_item, items) ;
616
+ let ModSpans { inner_span, inject_use_span } = spans;
617
+ try_v!( visit_span!( vis, inner_span) ) ;
618
+ try_v!( visit_span!( vis, inject_use_span) ) ;
619
+ return_result!( V )
620
+ }
621
+
608
622
make_walk_flat_map!{ Arm , walk_flat_map_arm, visit_arm}
623
+ make_walk_flat_map!{ Attribute , walk_flat_map_attribute, visit_attribute}
609
624
make_walk_flat_map!{ ExprField , walk_flat_map_expr_field, visit_expr_field}
610
625
make_walk_flat_map!{ FieldDef , walk_flat_map_field_def, visit_field_def}
611
626
make_walk_flat_map!{ GenericParam , walk_flat_map_generic_param, visit_generic_param}
@@ -741,13 +756,6 @@ pub mod visit {
741
756
742
757
make_ast_visitor ! ( Visitor <' ast>) ;
743
758
744
- pub fn walk_crate < ' a , V : Visitor < ' a > > ( visitor : & mut V , krate : & ' a Crate ) -> V :: Result {
745
- let Crate { attrs, items, spans : _, id : _, is_placeholder : _ } = krate;
746
- walk_list ! ( visitor, visit_attribute, attrs) ;
747
- walk_list ! ( visitor, visit_item, items) ;
748
- V :: Result :: output ( )
749
- }
750
-
751
759
pub fn walk_local < ' a , V : Visitor < ' a > > ( visitor : & mut V , local : & ' a Local ) -> V :: Result {
752
760
let Local { id : _, pat, ty, kind, span : _, colon_sp : _, attrs, tokens : _ } = local;
753
761
walk_list ! ( visitor, visit_attribute, attrs) ;
@@ -2554,16 +2562,6 @@ pub mod mut_visit {
2554
2562
visit_safety ( vis, safety) ;
2555
2563
}
2556
2564
2557
- pub fn walk_crate < T : MutVisitor > ( vis : & mut T , krate : & mut Crate ) {
2558
- let Crate { attrs, items, spans, id, is_placeholder : _ } = krate;
2559
- vis. visit_id ( id) ;
2560
- visit_attrs ( vis, attrs) ;
2561
- items. flat_map_in_place ( |item| vis. flat_map_item ( item) ) ;
2562
- let ModSpans { inner_span, inject_use_span } = spans;
2563
- vis. visit_span ( inner_span) ;
2564
- vis. visit_span ( inject_use_span) ;
2565
- }
2566
-
2567
2565
/// Mutates one item, returning the item again.
2568
2566
pub fn walk_flat_map_item < K : WalkItemKind > (
2569
2567
visitor : & mut impl MutVisitor ,
0 commit comments