@@ -283,7 +283,6 @@ macro_rules! make_ast_visitor {
283
283
284
284
make_visit!{ AssocItem , ctxt: AssocCtxt ; visit_assoc_item, walk_assoc_item}
285
285
make_visit!{ ForeignItem ; visit_foreign_item, walk_item}
286
- make_visit!{ GenericParam ; visit_generic_param, walk_generic_param}
287
286
make_visit!{ Item ; visit_item, walk_item}
288
287
make_visit!{ Stmt ; visit_stmt, walk_stmt}
289
288
@@ -324,6 +323,7 @@ macro_rules! make_ast_visitor {
324
323
make_visit!{ GenericArg ; visit_generic_arg, walk_generic_arg}
325
324
make_visit!{ GenericArgs ; visit_generic_args, walk_generic_args}
326
325
make_visit!{ GenericBound , _ ctxt: BoundKind ; visit_param_bound, walk_param_bound}
326
+ make_visit!{ GenericParam ; visit_generic_param, walk_generic_param}
327
327
make_visit!{ Generics ; visit_generics, walk_generics}
328
328
make_visit!{ Ident ; visit_ident, walk_ident}
329
329
make_visit!{ InlineAsm ; visit_inline_asm, walk_inline_asm}
@@ -567,6 +567,30 @@ macro_rules! make_ast_visitor {
567
567
return_result!( V )
568
568
}
569
569
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
+
570
594
pub fn walk_generics<$( $lt, ) ? V : $trait$( <$lt>) ?>(
571
595
vis: & mut V ,
572
596
generics: ref_t!( Generics )
@@ -1319,26 +1343,6 @@ pub mod visit {
1319
1343
}
1320
1344
}
1321
1345
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
-
1342
1346
pub fn walk_fn < ' a , V : Visitor < ' a > > ( visitor : & mut V , kind : FnKind < ' a > ) -> V :: Result {
1343
1347
match kind {
1344
1348
FnKind :: Fn ( _ctxt, _ident, FnSig { header, decl, span : _ } , _vis, generics, body) => {
@@ -2140,25 +2144,7 @@ pub mod mut_visit {
2140
2144
vis : & mut T ,
2141
2145
mut param : GenericParam ,
2142
2146
) -> 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) ;
2162
2148
smallvec ! [ param]
2163
2149
}
2164
2150
0 commit comments