@@ -279,6 +279,9 @@ pub trait Visitor<'v> : Sized {
279
279
fn visit_ty ( & mut self , t : & ' v Ty ) {
280
280
walk_ty ( self , t)
281
281
}
282
+ fn visit_generic_param ( & mut self , p : & ' v GenericParam ) {
283
+ walk_generic_param ( self , p)
284
+ }
282
285
fn visit_generics ( & mut self , g : & ' v Generics ) {
283
286
walk_generics ( self , g)
284
287
}
@@ -336,9 +339,6 @@ pub trait Visitor<'v> : Sized {
336
339
fn visit_lifetime ( & mut self , lifetime : & ' v Lifetime ) {
337
340
walk_lifetime ( self , lifetime)
338
341
}
339
- fn visit_lifetime_def ( & mut self , lifetime : & ' v LifetimeDef ) {
340
- walk_lifetime_def ( self , lifetime)
341
- }
342
342
fn visit_qpath ( & mut self , qpath : & ' v QPath , id : NodeId , span : Span ) {
343
343
walk_qpath ( self , qpath, id, span)
344
344
}
@@ -430,17 +430,12 @@ pub fn walk_lifetime<'v, V: Visitor<'v>>(visitor: &mut V, lifetime: &'v Lifetime
430
430
}
431
431
}
432
432
433
- pub fn walk_lifetime_def < ' v , V : Visitor < ' v > > ( visitor : & mut V , lifetime_def : & ' v LifetimeDef ) {
434
- visitor. visit_lifetime ( & lifetime_def. lifetime ) ;
435
- walk_list ! ( visitor, visit_lifetime, & lifetime_def. bounds) ;
436
- }
437
-
438
433
pub fn walk_poly_trait_ref < ' v , V > ( visitor : & mut V ,
439
434
trait_ref : & ' v PolyTraitRef ,
440
435
_modifier : TraitBoundModifier )
441
436
where V : Visitor < ' v >
442
437
{
443
- walk_list ! ( visitor, visit_lifetime_def , & trait_ref. bound_lifetimes ) ;
438
+ walk_list ! ( visitor, visit_generic_param , & trait_ref. bound_generic_params ) ;
444
439
visitor. visit_trait_ref ( & trait_ref. trait_ref ) ;
445
440
}
446
441
@@ -581,7 +576,7 @@ pub fn walk_ty<'v, V: Visitor<'v>>(visitor: &mut V, typ: &'v Ty) {
581
576
}
582
577
TyBareFn ( ref function_declaration) => {
583
578
visitor. visit_fn_decl ( & function_declaration. decl ) ;
584
- walk_list ! ( visitor, visit_lifetime_def , & function_declaration. lifetimes ) ;
579
+ walk_list ! ( visitor, visit_generic_param , & function_declaration. generic_params ) ;
585
580
}
586
581
TyPath ( ref qpath) => {
587
582
visitor. visit_qpath ( qpath, typ. id , typ. span ) ;
@@ -729,14 +724,23 @@ pub fn walk_ty_param_bound<'v, V: Visitor<'v>>(visitor: &mut V, bound: &'v TyPar
729
724
}
730
725
}
731
726
732
- pub fn walk_generics < ' v , V : Visitor < ' v > > ( visitor : & mut V , generics : & ' v Generics ) {
733
- for param in & generics. ty_params {
734
- visitor. visit_id ( param. id ) ;
735
- visitor. visit_name ( param. span , param. name ) ;
736
- walk_list ! ( visitor, visit_ty_param_bound, & param. bounds) ;
737
- walk_list ! ( visitor, visit_ty, & param. default ) ;
727
+ pub fn walk_generic_param < ' v , V : Visitor < ' v > > ( visitor : & mut V , param : & ' v GenericParam ) {
728
+ match * param {
729
+ GenericParam :: Lifetime ( ref ld) => {
730
+ visitor. visit_lifetime ( & ld. lifetime ) ;
731
+ walk_list ! ( visitor, visit_lifetime, & ld. bounds) ;
732
+ }
733
+ GenericParam :: Type ( ref ty_param) => {
734
+ visitor. visit_id ( ty_param. id ) ;
735
+ visitor. visit_name ( ty_param. span , ty_param. name ) ;
736
+ walk_list ! ( visitor, visit_ty_param_bound, & ty_param. bounds) ;
737
+ walk_list ! ( visitor, visit_ty, & ty_param. default ) ;
738
+ }
738
739
}
739
- walk_list ! ( visitor, visit_lifetime_def, & generics. lifetimes) ;
740
+ }
741
+
742
+ pub fn walk_generics < ' v , V : Visitor < ' v > > ( visitor : & mut V , generics : & ' v Generics ) {
743
+ walk_list ! ( visitor, visit_generic_param, & generics. params) ;
740
744
visitor. visit_id ( generics. where_clause . id ) ;
741
745
walk_list ! ( visitor, visit_where_predicate, & generics. where_clause. predicates) ;
742
746
}
@@ -748,11 +752,11 @@ pub fn walk_where_predicate<'v, V: Visitor<'v>>(
748
752
match predicate {
749
753
& WherePredicate :: BoundPredicate ( WhereBoundPredicate { ref bounded_ty,
750
754
ref bounds,
751
- ref bound_lifetimes ,
755
+ ref bound_generic_params ,
752
756
..} ) => {
753
757
visitor. visit_ty ( bounded_ty) ;
754
758
walk_list ! ( visitor, visit_ty_param_bound, bounds) ;
755
- walk_list ! ( visitor, visit_lifetime_def , bound_lifetimes ) ;
759
+ walk_list ! ( visitor, visit_generic_param , bound_generic_params ) ;
756
760
}
757
761
& WherePredicate :: RegionPredicate ( WhereRegionPredicate { ref lifetime,
758
762
ref bounds,
0 commit comments