Skip to content

Commit 79d50ca

Browse files
committed
Unify {visit,walk}_variant
1 parent 0bd8f3f commit 79d50ca

File tree

1 file changed

+17
-24
lines changed

1 file changed

+17
-24
lines changed

compiler/rustc_ast/src/visitors.rs

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,6 @@ macro_rules! make_ast_visitor {
275275
make_visit!{Path, _ id: NodeId; visit_path, walk_path}
276276
make_visit!{Stmt; visit_stmt, walk_stmt}
277277
make_visit!{UseTree, id: NodeId, _ nested: bool; visit_use_tree, walk_use_tree}
278-
make_visit!{Variant; visit_variant, walk_variant}
279278

280279
/// This method is a hack to workaround unstable of `stmt_expr_attributes`.
281280
/// It can be removed once that feature is stabilized.
@@ -330,6 +329,7 @@ macro_rules! make_ast_visitor {
330329
make_visit!{PathSegment; visit_path_segment, walk_path_segment}
331330
make_visit!{PolyTraitRef; visit_poly_trait_ref, walk_poly_trait_ref}
332331
make_visit!{TraitRef; visit_trait_ref, walk_trait_ref}
332+
make_visit!{Variant; visit_variant, walk_variant}
333333
make_visit!{VariantData; visit_variant_data, walk_variant_data}
334334
make_visit!{Visibility; visit_vis, walk_vis}
335335
make_visit!{WhereClause; visit_where_clause, walk_where_clause}
@@ -595,6 +595,21 @@ macro_rules! make_ast_visitor {
595595
return_result!(V)
596596
}
597597

598+
pub fn walk_variant<$($lt,)? V: $trait$(<$lt>)?>(
599+
visitor: &mut V,
600+
variant: ref_t!(Variant)
601+
) -> result!(V) {
602+
let Variant { ident, vis, attrs, id, data, disr_expr, span, is_placeholder: _ } = variant;
603+
try_v!(visit_id!(visitor, id));
604+
visit_list!(visitor, visit_attribute, attrs);
605+
try_v!(visitor.visit_vis(vis));
606+
try_v!(visitor.visit_ident(ident));
607+
try_v!(visitor.visit_variant_data(data));
608+
visit_o!(disr_expr, |disr_expr| visitor.visit_variant_discr(disr_expr));
609+
try_v!(visit_span!(visitor, span));
610+
return_result!(V)
611+
}
612+
598613
pub fn walk_variant_data<$($lt,)? V: $trait$(<$lt>)?>(
599614
vis: &mut V,
600615
vdata: ref_t!(VariantData)
@@ -922,20 +937,6 @@ pub mod visit {
922937
walk_assoc_item(visitor, item, AssocCtxt::Trait /*ignored*/)
923938
}
924939

925-
pub fn walk_variant<'a, V: Visitor<'a>>(visitor: &mut V, variant: &'a Variant) -> V::Result
926-
where
927-
V: Visitor<'a>,
928-
{
929-
let Variant { attrs, id: _, span: _, vis, ident, data, disr_expr, is_placeholder: _ } =
930-
variant;
931-
walk_list!(visitor, visit_attribute, attrs);
932-
try_visit!(visitor.visit_vis(vis));
933-
try_visit!(visitor.visit_ident(ident));
934-
try_visit!(visitor.visit_variant_data(data));
935-
visit_opt!(visitor, visit_variant_discr, disr_expr);
936-
V::Result::output()
937-
}
938-
939940
pub fn walk_ty<'a, V: Visitor<'a>>(visitor: &mut V, typ: &'a Ty) -> V::Result {
940941
let Ty { id, kind, span: _, tokens: _ } = typ;
941942
match kind {
@@ -1797,15 +1798,7 @@ pub mod mut_visit {
17971798
visitor: &mut T,
17981799
mut variant: Variant,
17991800
) -> SmallVec<[Variant; 1]> {
1800-
let Variant { ident, vis, attrs, id, data, disr_expr, span, is_placeholder: _ } =
1801-
&mut variant;
1802-
visitor.visit_id(id);
1803-
visit_attrs(visitor, attrs);
1804-
visitor.visit_vis(vis);
1805-
visitor.visit_ident(ident);
1806-
visitor.visit_variant_data(data);
1807-
visit_opt(disr_expr, |disr_expr| visitor.visit_anon_const(disr_expr));
1808-
visitor.visit_span(span);
1801+
visitor.visit_variant(&mut variant);
18091802
smallvec![variant]
18101803
}
18111804

0 commit comments

Comments
 (0)