@@ -289,7 +289,6 @@ macro_rules! make_ast_visitor {
289289
290290 make_visit!{ AssocItem , ctxt: AssocCtxt ; visit_assoc_item, walk_assoc_item}
291291 make_visit!{ ForeignItem ; visit_foreign_item, walk_item}
292- make_visit!{ GenericParam ; visit_generic_param, walk_generic_param}
293292 make_visit!{ Item ; visit_item, walk_item}
294293 make_visit!{ Stmt ; visit_stmt, walk_stmt}
295294
@@ -330,6 +329,7 @@ macro_rules! make_ast_visitor {
330329 make_visit!{ GenericArg ; visit_generic_arg, walk_generic_arg}
331330 make_visit!{ GenericArgs ; visit_generic_args, walk_generic_args}
332331 make_visit!{ GenericBound , _ ctxt: BoundKind ; visit_param_bound, walk_param_bound}
332+ make_visit!{ GenericParam ; visit_generic_param, walk_generic_param}
333333 make_visit!{ Generics ; visit_generics, walk_generics}
334334 make_visit!{ Ident ; visit_ident, walk_ident}
335335 make_visit!{ InlineAsm ; visit_inline_asm, walk_inline_asm}
@@ -573,6 +573,30 @@ macro_rules! make_ast_visitor {
573573 return_result!( V )
574574 }
575575
576+ pub fn walk_generic_param<$( $lt, ) ? V : $trait$( <$lt>) ?>(
577+ vis: & mut V ,
578+ param: ref_t!( GenericParam )
579+ ) -> result!( V ) {
580+ let GenericParam { id, ident, attrs, bounds, kind, colon_span, is_placeholder: _ } = param;
581+ try_v!( visit_id!( vis, id) ) ;
582+ visit_list!( vis, visit_attribute, attrs) ;
583+ try_v!( vis. visit_ident( ident) ) ;
584+ visit_list!( vis, visit_param_bound, bounds; BoundKind :: Bound ) ;
585+ match kind {
586+ GenericParamKind :: Lifetime => { }
587+ GenericParamKind :: Type { default } => {
588+ visit_o!( default , |default | vis. visit_ty( default ) ) ;
589+ }
590+ GenericParamKind :: Const { ty, kw_span, default } => {
591+ try_v!( vis. visit_ty( ty) ) ;
592+ visit_o!( default , |default | vis. visit_anon_const( default ) ) ;
593+ try_v!( visit_span!( vis, kw_span) ) ;
594+ }
595+ }
596+ visit_o!( colon_span, |span| visit_span!( vis, span) ) ;
597+ return_result!( V )
598+ }
599+
576600 pub fn walk_generics<$( $lt, ) ? V : $trait$( <$lt>) ?>(
577601 vis: & mut V ,
578602 generics: ref_t!( Generics )
@@ -1325,26 +1349,6 @@ pub mod visit {
13251349 }
13261350 }
13271351
1328- pub fn walk_generic_param < ' a , V : Visitor < ' a > > (
1329- visitor : & mut V ,
1330- param : & ' a GenericParam ,
1331- ) -> V :: Result {
1332- let GenericParam { id : _, ident, attrs, bounds, is_placeholder : _, kind, colon_span : _ } =
1333- param;
1334- walk_list ! ( visitor, visit_attribute, attrs) ;
1335- try_visit ! ( visitor. visit_ident( ident) ) ;
1336- walk_list ! ( visitor, visit_param_bound, bounds, BoundKind :: Bound ) ;
1337- match kind {
1338- GenericParamKind :: Lifetime => ( ) ,
1339- GenericParamKind :: Type { default } => visit_opt ! ( visitor, visit_ty, default ) ,
1340- GenericParamKind :: Const { ty, default, kw_span : _ } => {
1341- try_visit ! ( visitor. visit_ty( ty) ) ;
1342- visit_opt ! ( visitor, visit_anon_const, default ) ;
1343- }
1344- }
1345- V :: Result :: output ( )
1346- }
1347-
13481352 pub fn walk_fn < ' a , V : Visitor < ' a > > ( visitor : & mut V , kind : FnKind < ' a > ) -> V :: Result {
13491353 match kind {
13501354 FnKind :: Fn ( _ctxt, _ident, FnSig { header, decl, span : _ } , _vis, generics, body) => {
@@ -2146,25 +2150,7 @@ pub mod mut_visit {
21462150 vis : & mut T ,
21472151 mut param : GenericParam ,
21482152 ) -> SmallVec < [ GenericParam ; 1 ] > {
2149- let GenericParam { id, ident, attrs, bounds, kind, colon_span, is_placeholder : _ } =
2150- & mut param;
2151- vis. visit_id ( id) ;
2152- visit_attrs ( vis, attrs) ;
2153- vis. visit_ident ( ident) ;
2154- visit_vec ( bounds, |bound| vis. visit_param_bound ( bound, BoundKind :: Bound ) ) ;
2155- match kind {
2156- GenericParamKind :: Lifetime => { }
2157- GenericParamKind :: Type { default } => {
2158- visit_opt ( default, |default| vis. visit_ty ( default) ) ;
2159- }
2160- GenericParamKind :: Const { ty, kw_span : _, default } => {
2161- vis. visit_ty ( ty) ;
2162- visit_opt ( default, |default| vis. visit_anon_const ( default) ) ;
2163- }
2164- }
2165- if let Some ( colon_span) = colon_span {
2166- vis. visit_span ( colon_span) ;
2167- }
2153+ vis. visit_generic_param ( & mut param) ;
21682154 smallvec ! [ param]
21692155 }
21702156
0 commit comments