@@ -327,6 +327,7 @@ macro_rules! make_ast_visitor {
327327 make_visit!{ Block ; visit_block, walk_block}
328328 make_visit!{ CaptureBy ; visit_capture_by, walk_capture_by}
329329 make_visit!{ ClosureBinder ; visit_closure_binder, walk_closure_binder}
330+ make_visit!{ Const ; visit_constness, walk_constness}
330331 make_visit!{ CoroutineKind ; visit_coroutine_kind, walk_coroutine_kind}
331332 make_visit!{ Crate ; visit_crate, walk_crate}
332333 make_visit!{ EnumDef ; visit_enum_def, walk_enum_def}
@@ -533,6 +534,19 @@ macro_rules! make_ast_visitor {
533534 return_result!( V )
534535 }
535536
537+ pub fn walk_constness<$( $lt, ) ? V : $trait$( <$lt>) ?>(
538+ vis: & mut V ,
539+ constness: ref_t!( Const )
540+ ) -> result!( V ) {
541+ match constness {
542+ Const :: Yes ( span) => {
543+ try_v!( visit_span!( vis, span) ) ;
544+ }
545+ Const :: No => { }
546+ }
547+ return_result!( V )
548+ }
549+
536550 pub fn walk_coroutine_kind<$( $lt, ) ? V : $trait$( <$lt>) ?>(
537551 vis: & mut V ,
538552 coroutine_kind: ref_t!( CoroutineKind )
@@ -1454,14 +1468,15 @@ pub mod visit {
14541468 defaultness : _,
14551469 safety,
14561470 generics,
1457- constness : _ ,
1471+ constness,
14581472 polarity : _,
14591473 of_trait,
14601474 self_ty,
14611475 items,
14621476 } ) => {
14631477 try_visit ! ( visitor. visit_safety( safety) ) ;
14641478 try_visit ! ( visitor. visit_generics( generics) ) ;
1479+ try_visit ! ( visitor. visit_constness( constness) ) ;
14651480 visit_opt ! ( visitor, visit_trait_ref, of_trait) ;
14661481 try_visit ! ( visitor. visit_ty( self_ty) ) ;
14671482 walk_list ! ( visitor, visit_assoc_item, items, AssocCtxt :: Impl ) ;
@@ -1713,13 +1728,14 @@ pub mod visit {
17131728 binder,
17141729 capture_clause,
17151730 coroutine_kind,
1716- constness : _ ,
1731+ constness,
17171732 movability : _,
17181733 fn_decl,
17191734 body,
17201735 fn_decl_span : _,
17211736 fn_arg_span : _,
17221737 } ) => {
1738+ try_visit ! ( visitor. visit_constness( constness) ) ;
17231739 try_visit ! ( visitor. visit_capture_by( capture_clause) ) ;
17241740 try_visit ! ( visitor. visit_fn(
17251741 FnKind :: Closure ( binder, coroutine_kind, fn_decl, body) ,
@@ -2107,14 +2123,6 @@ pub mod mut_visit {
21072123 }
21082124 }
21092125
2110- // No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
2111- fn visit_constness < T : MutVisitor > ( vis : & mut T , constness : & mut Const ) {
2112- match constness {
2113- Const :: Yes ( span) => vis. visit_span ( span) ,
2114- Const :: No => { }
2115- }
2116- }
2117-
21182126 pub fn walk_flat_map_generic_param < T : MutVisitor > (
21192127 vis : & mut T ,
21202128 mut param : GenericParam ,
@@ -2222,7 +2230,7 @@ pub mod mut_visit {
22222230 visit_defaultness ( visitor, defaultness) ;
22232231 visitor. visit_safety ( safety) ;
22242232 visitor. visit_generics ( generics) ;
2225- visit_constness ( visitor , constness) ;
2233+ visitor . visit_constness ( constness) ;
22262234 visit_polarity ( visitor, polarity) ;
22272235 visit_opt ( of_trait, |trait_ref| visitor. visit_trait_ref ( trait_ref) ) ;
22282236 visitor. visit_ty ( self_ty) ;
@@ -2293,7 +2301,7 @@ pub mod mut_visit {
22932301
22942302 fn walk_fn_header < T : MutVisitor > ( vis : & mut T , header : & mut FnHeader ) {
22952303 let FnHeader { safety, coroutine_kind, constness, ext : _ } = header;
2296- visit_constness ( vis , constness) ;
2304+ vis . visit_constness ( constness) ;
22972305 coroutine_kind. as_mut ( ) . map ( |coroutine_kind| vis. visit_coroutine_kind ( coroutine_kind) ) ;
22982306 vis. visit_safety ( safety) ;
22992307 }
@@ -2519,7 +2527,7 @@ pub mod mut_visit {
25192527 fn_decl_span,
25202528 fn_arg_span,
25212529 } ) => {
2522- visit_constness ( vis , constness) ;
2530+ vis . visit_constness ( constness) ;
25232531 vis. visit_capture_by ( capture_clause) ;
25242532 vis. visit_fn ( FnKind :: Closure ( binder, coroutine_kind, fn_decl, body) , * span, * id) ;
25252533 vis. visit_span ( fn_decl_span) ;
0 commit comments