Skip to content

Commit 15ed907

Browse files
committed
Unify walk_variant
1 parent 030b707 commit 15ed907

File tree

1 file changed

+15
-25
lines changed

1 file changed

+15
-25
lines changed

compiler/rustc_ast/src/visitors.rs

Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -714,6 +714,21 @@ macro_rules! make_ast_visitor {
714714
return_result!(V)
715715
}
716716

717+
pub fn walk_variant<$($lt,)? V: $trait$(<$lt>)?>(
718+
visitor: &mut V,
719+
variant: ref_t!(Variant)
720+
) -> result!(V) {
721+
let Variant { ident, vis, attrs, id, data, disr_expr, span, is_placeholder: _ } = variant;
722+
try_v!(visit_id!(visitor, id));
723+
visit_list!(visitor, visit_attribute, flat_map_attribute, attrs);
724+
try_v!(visitor.visit_vis(vis));
725+
try_v!(visit_ident!(visitor, ident));
726+
try_v!(visitor.visit_variant_data(data));
727+
visit_o!(disr_expr, |disr_expr| visitor.visit_variant_discr(disr_expr));
728+
try_v!(visit_span!(visitor, span));
729+
return_result!(V)
730+
}
731+
717732
make_walk_flat_map!{Arm, walk_flat_map_arm, visit_arm}
718733
make_walk_flat_map!{Attribute, walk_flat_map_attribute, visit_attribute}
719734
make_walk_flat_map!{ExprField, walk_flat_map_expr_field, visit_expr_field}
@@ -992,20 +1007,6 @@ pub mod visit {
9921007
walk_assoc_item(visitor, item, AssocCtxt::Trait /*ignored*/)
9931008
}
9941009

995-
pub fn walk_variant<'a, V: Visitor<'a>>(visitor: &mut V, variant: &'a Variant) -> V::Result
996-
where
997-
V: Visitor<'a>,
998-
{
999-
let Variant { attrs, id: _, span: _, vis, ident, data, disr_expr, is_placeholder: _ } =
1000-
variant;
1001-
walk_list!(visitor, visit_attribute, attrs);
1002-
try_visit!(visitor.visit_vis(vis));
1003-
try_visit!(visitor.visit_ident(*ident));
1004-
try_visit!(visitor.visit_variant_data(data));
1005-
visit_opt!(visitor, visit_variant_discr, disr_expr);
1006-
V::Result::output()
1007-
}
1008-
10091010
pub fn walk_ty<'a, V: Visitor<'a>>(visitor: &mut V, typ: &'a Ty) -> V::Result {
10101011
let Ty { id, kind, span: _, tokens: _ } = typ;
10111012
match kind {
@@ -1908,17 +1909,6 @@ pub mod mut_visit {
19081909
items.flat_map_in_place(|item| vis.flat_map_foreign_item(item));
19091910
}
19101911

1911-
pub fn walk_variant<T: MutVisitor>(visitor: &mut T, variant: &mut Variant) {
1912-
let Variant { ident, vis, attrs, id, data, disr_expr, span, is_placeholder: _ } = variant;
1913-
visitor.visit_id(id);
1914-
visit_attrs(visitor, attrs);
1915-
visitor.visit_vis(vis);
1916-
visitor.visit_ident(ident);
1917-
visitor.visit_variant_data(data);
1918-
visit_opt(disr_expr, |disr_expr| visitor.visit_variant_discr(disr_expr));
1919-
visitor.visit_span(span);
1920-
}
1921-
19221912
fn walk_path_segment<T: MutVisitor>(vis: &mut T, segment: &mut PathSegment) {
19231913
let PathSegment { ident, id, args } = segment;
19241914
vis.visit_id(id);

0 commit comments

Comments
 (0)