@@ -289,7 +289,6 @@ macro_rules! make_ast_visitor {
289
289
290
290
make_visit!{ AssocItem , ctxt: AssocCtxt ; visit_assoc_item, walk_assoc_item}
291
291
make_visit!{ ForeignItem ; visit_foreign_item, walk_item}
292
- make_visit!{ GenericParam ; visit_generic_param, walk_generic_param}
293
292
make_visit!{ Item ; visit_item, walk_item}
294
293
make_visit!{ Stmt ; visit_stmt, walk_stmt}
295
294
@@ -330,6 +329,7 @@ macro_rules! make_ast_visitor {
330
329
make_visit!{ GenericArg ; visit_generic_arg, walk_generic_arg}
331
330
make_visit!{ GenericArgs ; visit_generic_args, walk_generic_args}
332
331
make_visit!{ GenericBound , _ ctxt: BoundKind ; visit_param_bound, walk_param_bound}
332
+ make_visit!{ GenericParam ; visit_generic_param, walk_generic_param}
333
333
make_visit!{ Generics ; visit_generics, walk_generics}
334
334
make_visit!{ Ident ; visit_ident, walk_ident}
335
335
make_visit!{ InlineAsm ; visit_inline_asm, walk_inline_asm}
@@ -573,6 +573,30 @@ macro_rules! make_ast_visitor {
573
573
return_result!( V )
574
574
}
575
575
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
+
576
600
pub fn walk_generics<$( $lt, ) ? V : $trait$( <$lt>) ?>(
577
601
vis: & mut V ,
578
602
generics: ref_t!( Generics )
@@ -1325,26 +1349,6 @@ pub mod visit {
1325
1349
}
1326
1350
}
1327
1351
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
-
1348
1352
pub fn walk_fn < ' a , V : Visitor < ' a > > ( visitor : & mut V , kind : FnKind < ' a > ) -> V :: Result {
1349
1353
match kind {
1350
1354
FnKind :: Fn ( _ctxt, _ident, FnSig { header, decl, span : _ } , _vis, generics, body) => {
@@ -2146,25 +2150,7 @@ pub mod mut_visit {
2146
2150
vis : & mut T ,
2147
2151
mut param : GenericParam ,
2148
2152
) -> 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) ;
2168
2154
smallvec ! [ param]
2169
2155
}
2170
2156
0 commit comments