@@ -208,7 +208,7 @@ pub trait MutVisitor: Sized {
208208 }
209209
210210 fn visit_ident ( & mut self , i : & mut Ident ) {
211- walk_ident ( self , i ) ;
211+ self . visit_span ( & mut i . span ) ;
212212 }
213213
214214 fn visit_path ( & mut self , p : & mut Path ) {
@@ -364,13 +364,16 @@ pub trait MutVisitor: Sized {
364364super :: common_visitor_and_walkers!( ( mut ) MutVisitor ) ;
365365
366366macro_rules! generate_flat_map_visitor_fns {
367- ( $( $name: ident, $Ty: ty, $flat_map_fn: ident; ) +) => {
367+ ( $( $name: ident, $Ty: ty, $flat_map_fn: ident$ ( , $param : ident : $ParamTy : ty ) * ; ) +) => {
368368 $(
369369 fn $name<V : MutVisitor >(
370370 vis: & mut V ,
371371 values: & mut ThinVec <$Ty>,
372+ $(
373+ $param: $ParamTy,
374+ ) *
372375 ) {
373- values. flat_map_in_place( |value| vis. $flat_map_fn( value) ) ;
376+ values. flat_map_in_place( |value| vis. $flat_map_fn( value$ ( , $param ) * ) ) ;
374377 }
375378 ) +
376379 }
@@ -383,6 +386,8 @@ generate_flat_map_visitor_fns! {
383386 visit_stmts, Stmt , flat_map_stmt;
384387 visit_exprs, P <Expr >, filter_map_expr;
385388 visit_pat_fields, PatField , flat_map_pat_field;
389+ visit_variants, Variant , flat_map_variant;
390+ visit_assoc_items, P <AssocItem >, flat_map_assoc_item, ctxt: AssocCtxt ;
386391}
387392
388393#[ inline]
@@ -439,15 +444,6 @@ fn visit_delim_args<T: MutVisitor>(vis: &mut T, args: &mut DelimArgs) {
439444 vis. visit_span ( close) ;
440445}
441446
442- pub fn walk_pat_field < T : MutVisitor > ( vis : & mut T , fp : & mut PatField ) {
443- let PatField { attrs, id, ident, is_placeholder : _, is_shorthand : _, pat, span } = fp;
444- vis. visit_id ( id) ;
445- visit_attrs ( vis, attrs) ;
446- vis. visit_ident ( ident) ;
447- vis. visit_pat ( pat) ;
448- vis. visit_span ( span) ;
449- }
450-
451447pub fn walk_flat_map_pat_field < T : MutVisitor > (
452448 vis : & mut T ,
453449 mut fp : PatField ,
@@ -456,21 +452,13 @@ pub fn walk_flat_map_pat_field<T: MutVisitor>(
456452 smallvec ! [ fp]
457453}
458454
459- fn walk_use_tree < T : MutVisitor > ( vis : & mut T , use_tree : & mut UseTree ) {
460- let UseTree { prefix, kind, span } = use_tree;
461- vis. visit_path ( prefix) ;
462- match kind {
463- UseTreeKind :: Simple ( rename) => visit_opt ( rename, |rename| vis. visit_ident ( rename) ) ,
464- UseTreeKind :: Nested { items, span } => {
465- for ( tree, id) in items {
466- vis. visit_id ( id) ;
467- vis. visit_use_tree ( tree) ;
468- }
469- vis. visit_span ( span) ;
470- }
471- UseTreeKind :: Glob => { }
472- }
473- vis. visit_span ( span) ;
455+ fn visit_nested_use_tree < V : MutVisitor > (
456+ vis : & mut V ,
457+ nested_tree : & mut UseTree ,
458+ nested_id : & mut NodeId ,
459+ ) {
460+ vis. visit_id ( nested_id) ;
461+ vis. visit_use_tree ( nested_tree) ;
474462}
475463
476464pub fn walk_arm < T : MutVisitor > ( vis : & mut T , arm : & mut Arm ) {
@@ -507,31 +495,6 @@ fn walk_assoc_item_constraint<T: MutVisitor>(
507495 vis. visit_span ( span) ;
508496}
509497
510- pub fn walk_ty_pat < T : MutVisitor > ( vis : & mut T , ty : & mut TyPat ) {
511- let TyPat { id, kind, span, tokens : _ } = ty;
512- vis. visit_id ( id) ;
513- match kind {
514- TyPatKind :: Range ( start, end, _include_end) => {
515- visit_opt ( start, |c| vis. visit_anon_const ( c) ) ;
516- visit_opt ( end, |c| vis. visit_anon_const ( c) ) ;
517- }
518- TyPatKind :: Or ( variants) => visit_thin_vec ( variants, |p| vis. visit_ty_pat ( p) ) ,
519- TyPatKind :: Err ( _) => { }
520- }
521- vis. visit_span ( span) ;
522- }
523-
524- pub fn walk_variant < T : MutVisitor > ( visitor : & mut T , variant : & mut Variant ) {
525- let Variant { ident, vis, attrs, id, data, disr_expr, span, is_placeholder : _ } = variant;
526- visitor. visit_id ( id) ;
527- visit_attrs ( visitor, attrs) ;
528- visitor. visit_vis ( vis) ;
529- visitor. visit_ident ( ident) ;
530- visitor. visit_variant_data ( data) ;
531- visit_opt ( disr_expr, |disr_expr| visitor. visit_anon_const ( disr_expr) ) ;
532- visitor. visit_span ( span) ;
533- }
534-
535498pub fn walk_flat_map_variant < T : MutVisitor > (
536499 vis : & mut T ,
537500 mut variant : Variant ,
@@ -540,25 +503,6 @@ pub fn walk_flat_map_variant<T: MutVisitor>(
540503 smallvec ! [ variant]
541504}
542505
543- fn walk_ident < T : MutVisitor > ( vis : & mut T , Ident { name : _, span } : & mut Ident ) {
544- vis. visit_span ( span) ;
545- }
546-
547- fn walk_path < T : MutVisitor > ( vis : & mut T , Path { segments, span, tokens : _ } : & mut Path ) {
548- for segment in segments {
549- vis. visit_path_segment ( segment) ;
550- }
551- vis. visit_span ( span) ;
552- }
553-
554- fn walk_qself < T : MutVisitor > ( vis : & mut T , qself : & mut Option < P < QSelf > > ) {
555- visit_opt ( qself, |qself| {
556- let QSelf { ty, path_span, position : _ } = & mut * * qself;
557- vis. visit_ty ( ty) ;
558- vis. visit_span ( path_span) ;
559- } )
560- }
561-
562506fn walk_generic_args < T : MutVisitor > ( vis : & mut T , generic_args : & mut GenericArgs ) {
563507 match generic_args {
564508 GenericArgs :: AngleBracketed ( data) => vis. visit_angle_bracketed_parameter_data ( data) ,
@@ -841,11 +785,6 @@ fn walk_variant_data<T: MutVisitor>(vis: &mut T, vdata: &mut VariantData) {
841785 }
842786}
843787
844- fn walk_trait_ref < T : MutVisitor > ( vis : & mut T , TraitRef { path, ref_id } : & mut TraitRef ) {
845- vis. visit_id ( ref_id) ;
846- vis. visit_path ( path) ;
847- }
848-
849788pub fn walk_field_def < T : MutVisitor > ( visitor : & mut T , fd : & mut FieldDef ) {
850789 let FieldDef { span, ident, vis, id, ty, attrs, is_placeholder : _, safety, default } = fd;
851790 visitor. visit_id ( id) ;
@@ -866,15 +805,6 @@ pub fn walk_flat_map_field_def<T: MutVisitor>(
866805 smallvec ! [ fd]
867806}
868807
869- pub fn walk_expr_field < T : MutVisitor > ( vis : & mut T , f : & mut ExprField ) {
870- let ExprField { ident, expr, span, is_shorthand : _, attrs, id, is_placeholder : _ } = f;
871- vis. visit_id ( id) ;
872- visit_attrs ( vis, attrs) ;
873- vis. visit_ident ( ident) ;
874- vis. visit_expr ( expr) ;
875- vis. visit_span ( span) ;
876- }
877-
878808pub fn walk_flat_map_expr_field < T : MutVisitor > (
879809 vis : & mut T ,
880810 mut f : ExprField ,
0 commit comments