Skip to content

Commit 06ef1f3

Browse files
committed
Add {visit,walk}_defaultness
1 parent 24004ab commit 06ef1f3

File tree

1 file changed

+40
-25
lines changed

1 file changed

+40
-25
lines changed

compiler/rustc_ast/src/visitors.rs

Lines changed: 40 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)