Skip to content

Commit 74e242c

Browse files
committed
Unify {visit,walk}_expr_field
1 parent 87ca293 commit 74e242c

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed

compiler/rustc_ast/src/visitors.rs

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,6 @@ macro_rules! make_ast_visitor {
270270

271271
make_visit!{Arm; visit_arm, walk_arm}
272272
make_visit!{AssocItem, ctxt: AssocCtxt; visit_assoc_item, walk_assoc_item}
273-
make_visit!{ExprField; visit_expr_field, walk_expr_field}
274273
make_visit!{FieldDef; visit_field_def, walk_field_def}
275274
make_visit!{ForeignItem; visit_foreign_item, walk_item}
276275
make_visit!{GenericParam; visit_generic_param, walk_generic_param}
@@ -313,6 +312,7 @@ macro_rules! make_ast_visitor {
313312
make_visit!{ClosureBinder; visit_closure_binder, walk_closure_binder}
314313
make_visit!{Crate; visit_crate, walk_crate}
315314
make_visit!{EnumDef; visit_enum_def, walk_enum_def}
315+
make_visit!{ExprField; visit_expr_field, walk_expr_field}
316316
make_visit!{FnDecl; visit_fn_decl, walk_fn_decl}
317317
make_visit!{FnRetTy; visit_fn_ret_ty, walk_fn_ret_ty}
318318
make_visit!{FormatArgs; visit_format_args, walk_format_args}
@@ -407,6 +407,19 @@ macro_rules! make_ast_visitor {
407407
return_result!(V)
408408
}
409409

410+
pub fn walk_expr_field<$($lt,)? V: $trait$(<$lt>)?>(
411+
vis: &mut V,
412+
f: ref_t!(ExprField)
413+
) -> result!(V) {
414+
let ExprField { ident, expr, span, is_shorthand: _, attrs, id, is_placeholder: _ } = f;
415+
try_v!(visit_id!(vis, id));
416+
visit_list!(vis, visit_attribute, attrs);
417+
try_v!(vis.visit_ident(ident));
418+
try_v!(vis.visit_expr(expr));
419+
try_v!(visit_span!(vis, span));
420+
return_result!(V)
421+
}
422+
410423
pub fn walk_fn_decl<$($lt,)? V: $trait$(<$lt>)?>(
411424
vis: &mut V,
412425
decl: ref_t!(FnDecl)
@@ -908,15 +921,6 @@ pub mod visit {
908921
V::Result::output()
909922
}
910923

911-
pub fn walk_expr_field<'a, V: Visitor<'a>>(visitor: &mut V, f: &'a ExprField) -> V::Result {
912-
let ExprField { attrs, id: _, span: _, ident, expr, is_shorthand: _, is_placeholder: _ } =
913-
f;
914-
walk_list!(visitor, visit_attribute, attrs);
915-
try_visit!(visitor.visit_ident(ident));
916-
try_visit!(visitor.visit_expr(expr));
917-
V::Result::output()
918-
}
919-
920924
pub fn walk_ty<'a, V: Visitor<'a>>(visitor: &mut V, typ: &'a Ty) -> V::Result {
921925
let Ty { id, kind, span: _, tokens: _ } = typ;
922926
match kind {
@@ -2204,12 +2208,7 @@ pub mod mut_visit {
22042208
vis: &mut T,
22052209
mut f: ExprField,
22062210
) -> SmallVec<[ExprField; 1]> {
2207-
let ExprField { ident, expr, span, is_shorthand: _, attrs, id, is_placeholder: _ } = &mut f;
2208-
vis.visit_id(id);
2209-
visit_attrs(vis, attrs);
2210-
vis.visit_ident(ident);
2211-
vis.visit_expr(expr);
2212-
vis.visit_span(span);
2211+
vis.visit_expr_field(&mut f);
22132212
smallvec![f]
22142213
}
22152214

0 commit comments

Comments
 (0)