@@ -1212,6 +1212,30 @@ macro_rules! make_ast_visitor {
12121212 return_result!( V )
12131213 }
12141214
1215+ pub fn walk_generic_param<$( $lt, ) ? V : $trait$( <$lt>) ?>(
1216+ vis: & mut V ,
1217+ param: ref_t!( GenericParam )
1218+ ) -> result!( V ) {
1219+ let GenericParam { id, ident, attrs, bounds, kind, colon_span, is_placeholder: _ } = param;
1220+ try_v!( visit_id!( vis, id) ) ;
1221+ visit_list!( vis, visit_attribute, flat_map_attribute, attrs) ;
1222+ try_v!( visit_ident!( vis, ident) ) ;
1223+ visit_list!( vis, visit_param_bound, bounds; BoundKind :: Bound ) ;
1224+ match kind {
1225+ GenericParamKind :: Lifetime => { }
1226+ GenericParamKind :: Type { default } => {
1227+ visit_o!( default , |default | vis. visit_ty( default ) ) ;
1228+ }
1229+ GenericParamKind :: Const { ty, kw_span, default } => {
1230+ try_v!( vis. visit_ty( ty) ) ;
1231+ visit_o!( default , |default | vis. visit_anon_const( default ) ) ;
1232+ try_v!( visit_span!( vis, kw_span) ) ;
1233+ }
1234+ }
1235+ visit_o!( colon_span, |span| visit_span!( vis, span) ) ;
1236+ return_result!( V )
1237+ }
1238+
12151239 derive_copy_clone!{
12161240 #[ derive( Debug ) ]
12171241 pub enum FnKind <' a> {
@@ -1556,26 +1580,6 @@ pub mod visit {
15561580 V :: Result :: output ( )
15571581 }
15581582
1559- pub fn walk_generic_param < ' a , V : Visitor < ' a > > (
1560- visitor : & mut V ,
1561- param : & ' a GenericParam ,
1562- ) -> V :: Result {
1563- let GenericParam { id : _, ident, attrs, bounds, is_placeholder : _, kind, colon_span : _ } =
1564- param;
1565- walk_list ! ( visitor, visit_attribute, attrs) ;
1566- try_visit ! ( visitor. visit_ident( * ident) ) ;
1567- walk_list ! ( visitor, visit_param_bound, bounds, BoundKind :: Bound ) ;
1568- match kind {
1569- GenericParamKind :: Lifetime => ( ) ,
1570- GenericParamKind :: Type { default } => visit_opt ! ( visitor, visit_ty, default ) ,
1571- GenericParamKind :: Const { ty, default, kw_span : _ } => {
1572- try_visit ! ( visitor. visit_ty( ty) ) ;
1573- visit_opt ! ( visitor, visit_anon_const, default ) ;
1574- }
1575- }
1576- V :: Result :: output ( )
1577- }
1578-
15791583 pub fn walk_where_predicate < ' a , V : Visitor < ' a > > (
15801584 visitor : & mut V ,
15811585 predicate : & ' a WherePredicate ,
@@ -2290,27 +2294,6 @@ pub mod mut_visit {
22902294 }
22912295 }
22922296
2293- pub fn walk_generic_param < T : MutVisitor > ( vis : & mut T , param : & mut GenericParam ) {
2294- let GenericParam { id, ident, attrs, bounds, kind, colon_span, is_placeholder : _ } = param;
2295- vis. visit_id ( id) ;
2296- visit_attrs ( vis, attrs) ;
2297- vis. visit_ident ( ident) ;
2298- visit_vec ( bounds, |bound| vis. visit_param_bound ( bound, BoundKind :: Bound ) ) ;
2299- match kind {
2300- GenericParamKind :: Lifetime => { }
2301- GenericParamKind :: Type { default } => {
2302- visit_opt ( default, |default| vis. visit_ty ( default) ) ;
2303- }
2304- GenericParamKind :: Const { ty, kw_span : _, default } => {
2305- vis. visit_ty ( ty) ;
2306- visit_opt ( default, |default| vis. visit_anon_const ( default) ) ;
2307- }
2308- }
2309- if let Some ( colon_span) = colon_span {
2310- vis. visit_span ( colon_span) ;
2311- }
2312- }
2313-
23142297 fn walk_ty_alias_where_clauses < T : MutVisitor > ( vis : & mut T , tawcs : & mut TyAliasWhereClauses ) {
23152298 let TyAliasWhereClauses { before, after, split : _ } = tawcs;
23162299 let TyAliasWhereClause { has_where_token : _, span : span_before } = before;
0 commit comments