@@ -208,7 +208,7 @@ pub trait MutVisitor: Sized {
208
208
}
209
209
210
210
fn visit_ident ( & mut self , i : & mut Ident ) {
211
- walk_ident ( self , i ) ;
211
+ self . visit_span ( & mut i . span ) ;
212
212
}
213
213
214
214
fn visit_path ( & mut self , p : & mut Path ) {
@@ -364,13 +364,16 @@ pub trait MutVisitor: Sized {
364
364
super :: common_visitor_and_walkers!( ( mut ) MutVisitor ) ;
365
365
366
366
macro_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 ) * ; ) +) => {
368
368
$(
369
369
fn $name<V : MutVisitor >(
370
370
vis: & mut V ,
371
371
values: & mut ThinVec <$Ty>,
372
+ $(
373
+ $param: $ParamTy,
374
+ ) *
372
375
) {
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 ) * ) ) ;
374
377
}
375
378
) +
376
379
}
@@ -383,6 +386,8 @@ generate_flat_map_visitor_fns! {
383
386
visit_stmts, Stmt , flat_map_stmt;
384
387
visit_exprs, P <Expr >, filter_map_expr;
385
388
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 ;
386
391
}
387
392
388
393
#[ inline]
@@ -439,15 +444,6 @@ fn visit_delim_args<T: MutVisitor>(vis: &mut T, args: &mut DelimArgs) {
439
444
vis. visit_span ( close) ;
440
445
}
441
446
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
-
451
447
pub fn walk_flat_map_pat_field < T : MutVisitor > (
452
448
vis : & mut T ,
453
449
mut fp : PatField ,
@@ -456,21 +452,13 @@ pub fn walk_flat_map_pat_field<T: MutVisitor>(
456
452
smallvec ! [ fp]
457
453
}
458
454
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) ;
474
462
}
475
463
476
464
pub fn walk_arm < T : MutVisitor > ( vis : & mut T , arm : & mut Arm ) {
@@ -507,31 +495,6 @@ fn walk_assoc_item_constraint<T: MutVisitor>(
507
495
vis. visit_span ( span) ;
508
496
}
509
497
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
-
535
498
pub fn walk_flat_map_variant < T : MutVisitor > (
536
499
vis : & mut T ,
537
500
mut variant : Variant ,
@@ -540,25 +503,6 @@ pub fn walk_flat_map_variant<T: MutVisitor>(
540
503
smallvec ! [ variant]
541
504
}
542
505
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
-
562
506
fn walk_generic_args < T : MutVisitor > ( vis : & mut T , generic_args : & mut GenericArgs ) {
563
507
match generic_args {
564
508
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) {
841
785
}
842
786
}
843
787
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
-
849
788
pub fn walk_field_def < T : MutVisitor > ( visitor : & mut T , fd : & mut FieldDef ) {
850
789
let FieldDef { span, ident, vis, id, ty, attrs, is_placeholder : _, safety, default } = fd;
851
790
visitor. visit_id ( id) ;
@@ -866,15 +805,6 @@ pub fn walk_flat_map_field_def<T: MutVisitor>(
866
805
smallvec ! [ fd]
867
806
}
868
807
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
-
878
808
pub fn walk_flat_map_expr_field < T : MutVisitor > (
879
809
vis : & mut T ,
880
810
mut f : ExprField ,
0 commit comments