@@ -283,7 +283,6 @@ macro_rules! make_ast_visitor {
283283
284284 make_visit!{ AssocItem , ctxt: AssocCtxt ; visit_assoc_item, walk_assoc_item}
285285 make_visit!{ ForeignItem ; visit_foreign_item, walk_item}
286- make_visit!{ GenericParam ; visit_generic_param, walk_generic_param}
287286 make_visit!{ Item ; visit_item, walk_item}
288287 make_visit!{ Stmt ; visit_stmt, walk_stmt}
289288
@@ -324,6 +323,7 @@ macro_rules! make_ast_visitor {
324323 make_visit!{ GenericArg ; visit_generic_arg, walk_generic_arg}
325324 make_visit!{ GenericArgs ; visit_generic_args, walk_generic_args}
326325 make_visit!{ GenericBound , _ ctxt: BoundKind ; visit_param_bound, walk_param_bound}
326+ make_visit!{ GenericParam ; visit_generic_param, walk_generic_param}
327327 make_visit!{ Generics ; visit_generics, walk_generics}
328328 make_visit!{ Ident ; visit_ident, walk_ident}
329329 make_visit!{ InlineAsm ; visit_inline_asm, walk_inline_asm}
@@ -567,6 +567,30 @@ macro_rules! make_ast_visitor {
567567 return_result!( V )
568568 }
569569
570+ pub fn walk_generic_param<$( $lt, ) ? V : $trait$( <$lt>) ?>(
571+ vis: & mut V ,
572+ param: ref_t!( GenericParam )
573+ ) -> result!( V ) {
574+ let GenericParam { id, ident, attrs, bounds, kind, colon_span, is_placeholder: _ } = param;
575+ try_v!( visit_id!( vis, id) ) ;
576+ visit_list!( vis, visit_attribute, attrs) ;
577+ try_v!( vis. visit_ident( ident) ) ;
578+ visit_list!( vis, visit_param_bound, bounds; BoundKind :: Bound ) ;
579+ match kind {
580+ GenericParamKind :: Lifetime => { }
581+ GenericParamKind :: Type { default } => {
582+ visit_o!( default , |default | vis. visit_ty( default ) ) ;
583+ }
584+ GenericParamKind :: Const { ty, kw_span, default } => {
585+ try_v!( vis. visit_ty( ty) ) ;
586+ visit_o!( default , |default | vis. visit_anon_const( default ) ) ;
587+ try_v!( visit_span!( vis, kw_span) ) ;
588+ }
589+ }
590+ visit_o!( colon_span, |span| visit_span!( vis, span) ) ;
591+ return_result!( V )
592+ }
593+
570594 pub fn walk_generics<$( $lt, ) ? V : $trait$( <$lt>) ?>(
571595 vis: & mut V ,
572596 generics: ref_t!( Generics )
@@ -1319,26 +1343,6 @@ pub mod visit {
13191343 }
13201344 }
13211345
1322- pub fn walk_generic_param < ' a , V : Visitor < ' a > > (
1323- visitor : & mut V ,
1324- param : & ' a GenericParam ,
1325- ) -> V :: Result {
1326- let GenericParam { id : _, ident, attrs, bounds, is_placeholder : _, kind, colon_span : _ } =
1327- param;
1328- walk_list ! ( visitor, visit_attribute, attrs) ;
1329- try_visit ! ( visitor. visit_ident( ident) ) ;
1330- walk_list ! ( visitor, visit_param_bound, bounds, BoundKind :: Bound ) ;
1331- match kind {
1332- GenericParamKind :: Lifetime => ( ) ,
1333- GenericParamKind :: Type { default } => visit_opt ! ( visitor, visit_ty, default ) ,
1334- GenericParamKind :: Const { ty, default, kw_span : _ } => {
1335- try_visit ! ( visitor. visit_ty( ty) ) ;
1336- visit_opt ! ( visitor, visit_anon_const, default ) ;
1337- }
1338- }
1339- V :: Result :: output ( )
1340- }
1341-
13421346 pub fn walk_fn < ' a , V : Visitor < ' a > > ( visitor : & mut V , kind : FnKind < ' a > ) -> V :: Result {
13431347 match kind {
13441348 FnKind :: Fn ( _ctxt, _ident, FnSig { header, decl, span : _ } , _vis, generics, body) => {
@@ -2140,25 +2144,7 @@ pub mod mut_visit {
21402144 vis : & mut T ,
21412145 mut param : GenericParam ,
21422146 ) -> SmallVec < [ GenericParam ; 1 ] > {
2143- let GenericParam { id, ident, attrs, bounds, kind, colon_span, is_placeholder : _ } =
2144- & mut param;
2145- vis. visit_id ( id) ;
2146- visit_attrs ( vis, attrs) ;
2147- vis. visit_ident ( ident) ;
2148- visit_vec ( bounds, |bound| vis. visit_param_bound ( bound, BoundKind :: Bound ) ) ;
2149- match kind {
2150- GenericParamKind :: Lifetime => { }
2151- GenericParamKind :: Type { default } => {
2152- visit_opt ( default, |default| vis. visit_ty ( default) ) ;
2153- }
2154- GenericParamKind :: Const { ty, kw_span : _, default } => {
2155- vis. visit_ty ( ty) ;
2156- visit_opt ( default, |default| vis. visit_anon_const ( default) ) ;
2157- }
2158- }
2159- if let Some ( colon_span) = colon_span {
2160- vis. visit_span ( colon_span) ;
2161- }
2147+ vis. visit_generic_param ( & mut param) ;
21622148 smallvec ! [ param]
21632149 }
21642150
0 commit comments