@@ -326,6 +326,7 @@ macro_rules! make_ast_visitor {
326326 make_visit!{ Const ; visit_constness, walk_constness}
327327 make_visit!{ CoroutineKind ; visit_coroutine_kind, walk_coroutine_kind}
328328 make_visit!{ Crate ; visit_crate, walk_crate}
329+ make_visit!{ Defaultness ; visit_defaultness, walk_defaultness}
329330 make_visit!{ EnumDef ; visit_enum_def, walk_enum_def}
330331 make_visit!{ ExprField ; visit_expr_field, walk_expr_field}
331332 make_visit!{ FieldDef ; visit_field_def, walk_field_def}
@@ -575,6 +576,19 @@ macro_rules! make_ast_visitor {
575576 return_result!( V )
576577 }
577578
579+ pub fn walk_defaultness<$( $lt, ) ? V : $trait$( <$lt>) ?>(
580+ vis: & mut V ,
581+ defaultness: ref_t!( Defaultness )
582+ ) -> result!( V ) {
583+ match defaultness {
584+ Defaultness :: Default ( span) => {
585+ try_v!( visit_span!( vis, span) )
586+ }
587+ Defaultness :: Final => { }
588+ }
589+ return_result!( V )
590+ }
591+
578592 pub fn walk_enum_def<$( $lt, ) ? V : $trait$( <$lt>) ?>(
579593 vis: & mut V ,
580594 enum_def: ref_t!( EnumDef )
@@ -1448,12 +1462,14 @@ pub mod visit {
14481462 try_visit ! ( visitor. visit_ty( ty) ) ;
14491463 visit_opt ! ( visitor, visit_expr, expr) ;
14501464 }
1451- ItemKind :: Const ( box ConstItem { defaultness : _, generics, ty, expr } ) => {
1465+ ItemKind :: Const ( box ConstItem { defaultness, generics, ty, expr } ) => {
1466+ try_visit ! ( visitor. visit_defaultness( defaultness) ) ;
14521467 try_visit ! ( visitor. visit_generics( generics) ) ;
14531468 try_visit ! ( visitor. visit_ty( ty) ) ;
14541469 visit_opt ! ( visitor, visit_expr, expr) ;
14551470 }
1456- ItemKind :: Fn ( box Fn { defaultness : _, generics, sig, body } ) => {
1471+ ItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
1472+ try_visit ! ( visitor. visit_defaultness( defaultness) ) ;
14571473 let kind = FnKind :: Fn ( FnCtxt :: Free , ident, sig, vis, generics, body) ;
14581474 try_visit ! ( visitor. visit_fn( kind, span, id) ) ;
14591475 }
@@ -1474,9 +1490,10 @@ pub mod visit {
14741490 generics,
14751491 bounds,
14761492 ty,
1477- defaultness : _ ,
1493+ defaultness,
14781494 where_clauses,
14791495 } ) => {
1496+ try_visit ! ( visitor. visit_defaultness( defaultness) ) ;
14801497 try_visit ! ( visitor. visit_generics( generics) ) ;
14811498 walk_list ! ( visitor, visit_param_bound, bounds, BoundKind :: Bound ) ;
14821499 visit_opt ! ( visitor, visit_ty, ty) ;
@@ -1487,7 +1504,7 @@ pub mod visit {
14871504 try_visit ! ( visitor. visit_enum_def( enum_definition) ) ;
14881505 }
14891506 ItemKind :: Impl ( box Impl {
1490- defaultness : _ ,
1507+ defaultness,
14911508 safety,
14921509 generics,
14931510 constness,
@@ -1496,6 +1513,7 @@ pub mod visit {
14961513 self_ty,
14971514 items,
14981515 } ) => {
1516+ try_visit ! ( visitor. visit_defaultness( defaultness) ) ;
14991517 try_visit ! ( visitor. visit_safety( safety) ) ;
15001518 try_visit ! ( visitor. visit_generics( generics) ) ;
15011519 try_visit ! ( visitor. visit_constness( constness) ) ;
@@ -1566,17 +1584,19 @@ pub mod visit {
15661584 try_visit ! ( visitor. visit_ty( ty) ) ;
15671585 visit_opt ! ( visitor, visit_expr, expr) ;
15681586 }
1569- ForeignItemKind :: Fn ( box Fn { defaultness : _, generics, sig, body } ) => {
1587+ ForeignItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
1588+ try_visit ! ( visitor. visit_defaultness( defaultness) ) ;
15701589 let kind = FnKind :: Fn ( FnCtxt :: Foreign , ident, sig, vis, generics, body) ;
15711590 try_visit ! ( visitor. visit_fn( kind, span, id) ) ;
15721591 }
15731592 ForeignItemKind :: TyAlias ( box TyAlias {
15741593 generics,
15751594 bounds,
15761595 ty,
1577- defaultness : _ ,
1596+ defaultness,
15781597 where_clauses,
15791598 } ) => {
1599+ try_visit ! ( visitor. visit_defaultness( defaultness) ) ;
15801600 try_visit ! ( visitor. visit_generics( generics) ) ;
15811601 walk_list ! ( visitor, visit_param_bound, bounds, BoundKind :: Bound ) ;
15821602 visit_opt ! ( visitor, visit_ty, ty) ;
@@ -1600,22 +1620,25 @@ pub mod visit {
16001620 try_visit ! ( visitor. visit_vis( vis) ) ;
16011621 try_visit ! ( visitor. visit_ident( ident) ) ;
16021622 match kind {
1603- AssocItemKind :: Const ( box ConstItem { defaultness : _, generics, ty, expr } ) => {
1623+ AssocItemKind :: Const ( box ConstItem { defaultness, generics, ty, expr } ) => {
1624+ try_visit ! ( visitor. visit_defaultness( defaultness) ) ;
16041625 try_visit ! ( visitor. visit_generics( generics) ) ;
16051626 try_visit ! ( visitor. visit_ty( ty) ) ;
16061627 visit_opt ! ( visitor, visit_expr, expr) ;
16071628 }
1608- AssocItemKind :: Fn ( box Fn { defaultness : _, generics, sig, body } ) => {
1629+ AssocItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
1630+ try_visit ! ( visitor. visit_defaultness( defaultness) ) ;
16091631 let kind = FnKind :: Fn ( FnCtxt :: Assoc ( ctxt) , ident, sig, vis, generics, body) ;
16101632 try_visit ! ( visitor. visit_fn( kind, * span, * id) ) ;
16111633 }
16121634 AssocItemKind :: Type ( box TyAlias {
16131635 generics,
16141636 bounds,
16151637 ty,
1616- defaultness : _ ,
1638+ defaultness,
16171639 where_clauses,
16181640 } ) => {
1641+ try_visit ! ( visitor. visit_defaultness( defaultness) ) ;
16191642 try_visit ! ( visitor. visit_generics( generics) ) ;
16201643 walk_list ! ( visitor, visit_param_bound, bounds, BoundKind :: Bound ) ;
16211644 visit_opt ! ( visitor, visit_ty, ty) ;
@@ -2130,14 +2153,6 @@ pub mod mut_visit {
21302153 }
21312154 }
21322155
2133- // No `noop_` prefix because there isn't a corresponding method in `MutVisitor`.
2134- fn visit_defaultness < T : MutVisitor > ( vis : & mut T , defaultness : & mut Defaultness ) {
2135- match defaultness {
2136- Defaultness :: Default ( span) => vis. visit_span ( span) ,
2137- Defaultness :: Final => { }
2138- }
2139- }
2140-
21412156 pub fn walk_flat_map_generic_param < T : MutVisitor > (
21422157 vis : & mut T ,
21432158 mut param : GenericParam ,
@@ -2186,7 +2201,7 @@ pub mod mut_visit {
21862201 visit_const_item ( item, visitor) ;
21872202 }
21882203 ItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
2189- visit_defaultness ( visitor , defaultness) ;
2204+ visitor . visit_defaultness ( defaultness) ;
21902205 visitor. visit_fn (
21912206 FnKind :: Fn ( FnCtxt :: Free , ident, sig, vis, generics, body) ,
21922207 span,
@@ -2217,7 +2232,7 @@ pub mod mut_visit {
22172232 bounds,
22182233 ty,
22192234 } ) => {
2220- visit_defaultness ( visitor , defaultness) ;
2235+ visitor . visit_defaultness ( defaultness) ;
22212236 visitor. visit_generics ( generics) ;
22222237 visit_bounds ( visitor, bounds, BoundKind :: Bound ) ;
22232238 visit_opt ( ty, |ty| visitor. visit_ty ( ty) ) ;
@@ -2242,7 +2257,7 @@ pub mod mut_visit {
22422257 self_ty,
22432258 items,
22442259 } ) => {
2245- visit_defaultness ( visitor , defaultness) ;
2260+ visitor . visit_defaultness ( defaultness) ;
22462261 visitor. visit_safety ( safety) ;
22472262 visitor. visit_generics ( generics) ;
22482263 visitor. visit_constness ( constness) ;
@@ -2308,7 +2323,7 @@ pub mod mut_visit {
23082323 ConstItem { defaultness, generics, ty, expr } : & mut ConstItem ,
23092324 visitor : & mut T ,
23102325 ) {
2311- visit_defaultness ( visitor , defaultness) ;
2326+ visitor . visit_defaultness ( defaultness) ;
23122327 visitor. visit_generics ( generics) ;
23132328 visitor. visit_ty ( ty) ;
23142329 visit_opt ( expr, |expr| visitor. visit_expr ( expr) ) ;
@@ -2347,7 +2362,7 @@ pub mod mut_visit {
23472362 visit_const_item ( item, visitor) ;
23482363 }
23492364 AssocItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
2350- visit_defaultness ( visitor , defaultness) ;
2365+ visitor . visit_defaultness ( defaultness) ;
23512366 visitor. visit_fn (
23522367 FnKind :: Fn ( FnCtxt :: Assoc ( ctxt) , ident, sig, vis, generics, body) ,
23532368 * span,
@@ -2361,7 +2376,7 @@ pub mod mut_visit {
23612376 bounds,
23622377 ty,
23632378 } ) => {
2364- visit_defaultness ( visitor , defaultness) ;
2379+ visitor . visit_defaultness ( defaultness) ;
23652380 visitor. visit_generics ( generics) ;
23662381 visit_bounds ( visitor, bounds, BoundKind :: Bound ) ;
23672382 visit_opt ( ty, |ty| visitor. visit_ty ( ty) ) ;
@@ -2422,7 +2437,7 @@ pub mod mut_visit {
24222437 visit_opt ( expr, |expr| visitor. visit_expr ( expr) ) ;
24232438 }
24242439 ForeignItemKind :: Fn ( box Fn { defaultness, generics, sig, body } ) => {
2425- visit_defaultness ( visitor , defaultness) ;
2440+ visitor . visit_defaultness ( defaultness) ;
24262441 visitor. visit_fn (
24272442 FnKind :: Fn ( FnCtxt :: Foreign , ident, sig, vis, generics, body) ,
24282443 span,
@@ -2436,7 +2451,7 @@ pub mod mut_visit {
24362451 bounds,
24372452 ty,
24382453 } ) => {
2439- visit_defaultness ( visitor , defaultness) ;
2454+ visitor . visit_defaultness ( defaultness) ;
24402455 visitor. visit_generics ( generics) ;
24412456 visit_bounds ( visitor, bounds, BoundKind :: Bound ) ;
24422457 visit_opt ( ty, |ty| visitor. visit_ty ( ty) ) ;
0 commit comments