@@ -327,6 +327,7 @@ macro_rules! make_ast_visitor {
327
327
make_visit!{ Block ; visit_block, walk_block}
328
328
make_visit!{ CaptureBy ; visit_capture_by, walk_capture_by}
329
329
make_visit!{ ClosureBinder ; visit_closure_binder, walk_closure_binder}
330
+ make_visit!{ Const ; visit_constness, walk_constness}
330
331
make_visit!{ CoroutineKind ; visit_coroutine_kind, walk_coroutine_kind}
331
332
make_visit!{ Crate ; visit_crate, walk_crate}
332
333
make_visit!{ EnumDef ; visit_enum_def, walk_enum_def}
@@ -533,6 +534,19 @@ macro_rules! make_ast_visitor {
533
534
return_result!( V )
534
535
}
535
536
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
+
536
550
pub fn walk_coroutine_kind<$( $lt, ) ? V : $trait$( <$lt>) ?>(
537
551
vis: & mut V ,
538
552
coroutine_kind: ref_t!( CoroutineKind )
@@ -1454,14 +1468,15 @@ pub mod visit {
1454
1468
defaultness : _,
1455
1469
safety,
1456
1470
generics,
1457
- constness : _ ,
1471
+ constness,
1458
1472
polarity : _,
1459
1473
of_trait,
1460
1474
self_ty,
1461
1475
items,
1462
1476
} ) => {
1463
1477
try_visit ! ( visitor. visit_safety( safety) ) ;
1464
1478
try_visit ! ( visitor. visit_generics( generics) ) ;
1479
+ try_visit ! ( visitor. visit_constness( constness) ) ;
1465
1480
visit_opt ! ( visitor, visit_trait_ref, of_trait) ;
1466
1481
try_visit ! ( visitor. visit_ty( self_ty) ) ;
1467
1482
walk_list ! ( visitor, visit_assoc_item, items, AssocCtxt :: Impl ) ;
@@ -1713,13 +1728,14 @@ pub mod visit {
1713
1728
binder,
1714
1729
capture_clause,
1715
1730
coroutine_kind,
1716
- constness : _ ,
1731
+ constness,
1717
1732
movability : _,
1718
1733
fn_decl,
1719
1734
body,
1720
1735
fn_decl_span : _,
1721
1736
fn_arg_span : _,
1722
1737
} ) => {
1738
+ try_visit ! ( visitor. visit_constness( constness) ) ;
1723
1739
try_visit ! ( visitor. visit_capture_by( capture_clause) ) ;
1724
1740
try_visit ! ( visitor. visit_fn(
1725
1741
FnKind :: Closure ( binder, coroutine_kind, fn_decl, body) ,
@@ -2107,14 +2123,6 @@ pub mod mut_visit {
2107
2123
}
2108
2124
}
2109
2125
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
-
2118
2126
pub fn walk_flat_map_generic_param < T : MutVisitor > (
2119
2127
vis : & mut T ,
2120
2128
mut param : GenericParam ,
@@ -2222,7 +2230,7 @@ pub mod mut_visit {
2222
2230
visit_defaultness ( visitor, defaultness) ;
2223
2231
visitor. visit_safety ( safety) ;
2224
2232
visitor. visit_generics ( generics) ;
2225
- visit_constness ( visitor , constness) ;
2233
+ visitor . visit_constness ( constness) ;
2226
2234
visit_polarity ( visitor, polarity) ;
2227
2235
visit_opt ( of_trait, |trait_ref| visitor. visit_trait_ref ( trait_ref) ) ;
2228
2236
visitor. visit_ty ( self_ty) ;
@@ -2293,7 +2301,7 @@ pub mod mut_visit {
2293
2301
2294
2302
fn walk_fn_header < T : MutVisitor > ( vis : & mut T , header : & mut FnHeader ) {
2295
2303
let FnHeader { safety, coroutine_kind, constness, ext : _ } = header;
2296
- visit_constness ( vis , constness) ;
2304
+ vis . visit_constness ( constness) ;
2297
2305
coroutine_kind. as_mut ( ) . map ( |coroutine_kind| vis. visit_coroutine_kind ( coroutine_kind) ) ;
2298
2306
vis. visit_safety ( safety) ;
2299
2307
}
@@ -2519,7 +2527,7 @@ pub mod mut_visit {
2519
2527
fn_decl_span,
2520
2528
fn_arg_span,
2521
2529
} ) => {
2522
- visit_constness ( vis , constness) ;
2530
+ vis . visit_constness ( constness) ;
2523
2531
vis. visit_capture_by ( capture_clause) ;
2524
2532
vis. visit_fn ( FnKind :: Closure ( binder, coroutine_kind, fn_decl, body) , * span, * id) ;
2525
2533
vis. visit_span ( fn_decl_span) ;
0 commit comments