Skip to content

Commit 87ca293

Browse files
committed
Unify {visit,walk}_variant_data (renaming walk_struct_def)
1 parent f90cad5 commit 87ca293

File tree

3 files changed

+22
-25
lines changed

3 files changed

+22
-25
lines changed

compiler/rustc_ast/src/visitors.rs

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,6 @@ macro_rules! make_ast_visitor {
192192
make_visit!{Path; visit_path, walk_path}
193193
make_visit!{PreciseCapturingArg; visit_precise_capturing_arg, walk_precise_capturing_arg}
194194
make_visit!{UseTree; visit_use_tree, walk_use_tree}
195-
make_visit!{VariantData; visit_variant_data, walk_variant_data}
196195

197196
fn flat_map_foreign_item(&mut self, ni: P<ForeignItem>) -> SmallVec<[P<ForeignItem>; 1]> {
198197
walk_flat_map_item(self, ni)
@@ -280,7 +279,6 @@ macro_rules! make_ast_visitor {
280279
make_visit!{Stmt; visit_stmt, walk_stmt}
281280
make_visit!{UseTree, id: NodeId, _ nested: bool; visit_use_tree, walk_use_tree}
282281
make_visit!{Variant; visit_variant, walk_variant}
283-
make_visit!{VariantData; visit_variant_data, walk_struct_def}
284282

285283
/// This method is a hack to workaround unstable of `stmt_expr_attributes`.
286284
/// It can be removed once that feature is stabilized.
@@ -336,6 +334,7 @@ macro_rules! make_ast_visitor {
336334
make_visit!{PathSegment; visit_path_segment, walk_path_segment}
337335
make_visit!{PolyTraitRef; visit_poly_trait_ref, walk_poly_trait_ref}
338336
make_visit!{TraitRef; visit_trait_ref, walk_trait_ref}
337+
make_visit!{VariantData; visit_variant_data, walk_variant_data}
339338
make_visit!{Visibility; visit_vis, walk_vis}
340339
make_visit!{WhereClause; visit_where_clause, walk_where_clause}
341340
make_visit!{WherePredicate; visit_where_predicate, walk_where_predicate}
@@ -568,6 +567,25 @@ macro_rules! make_ast_visitor {
568567
return_result!(V)
569568
}
570569

570+
pub fn walk_variant_data<$($lt,)? V: $trait$(<$lt>)?>(
571+
vis: &mut V,
572+
vdata: ref_t!(VariantData)
573+
) -> result!(V) {
574+
match vdata {
575+
VariantData::Struct { fields, recovered: _ } => {
576+
visit_list!(vis, visit_field_def, flat_map_field_def, fields);
577+
}
578+
VariantData::Tuple(fields, id) => {
579+
try_v!(visit_id!(vis, id));
580+
visit_list!(vis, visit_field_def, flat_map_field_def, fields);
581+
}
582+
VariantData::Unit(id) => {
583+
try_v!(visit_id!(vis, id));
584+
}
585+
}
586+
return_result!(V)
587+
}
588+
571589
pub fn walk_where_clause<$($lt,)? V: $trait$(<$lt>)?>(
572590
vis: &mut V,
573591
wc: ref_t!(WhereClause)
@@ -1249,14 +1267,6 @@ pub mod visit {
12491267
V::Result::output()
12501268
}
12511269

1252-
pub fn walk_struct_def<'a, V: Visitor<'a>>(
1253-
visitor: &mut V,
1254-
struct_definition: &'a VariantData,
1255-
) -> V::Result {
1256-
walk_list!(visitor, visit_field_def, struct_definition.fields());
1257-
V::Result::output()
1258-
}
1259-
12601270
pub fn walk_field_def<'a, V: Visitor<'a>>(visitor: &mut V, field: &'a FieldDef) -> V::Result {
12611271
let FieldDef { attrs, id: _, span: _, vis, ident, ty, is_placeholder: _ } = field;
12621272
walk_list!(visitor, visit_attribute, attrs);
@@ -2171,19 +2181,6 @@ pub mod mut_visit {
21712181
vis.visit_span(span_after);
21722182
}
21732183

2174-
fn walk_variant_data<T: MutVisitor>(vis: &mut T, vdata: &mut VariantData) {
2175-
match vdata {
2176-
VariantData::Struct { fields, recovered: _ } => {
2177-
fields.flat_map_in_place(|field| vis.flat_map_field_def(field));
2178-
}
2179-
VariantData::Tuple(fields, id) => {
2180-
vis.visit_id(id);
2181-
fields.flat_map_in_place(|field| vis.flat_map_field_def(field));
2182-
}
2183-
VariantData::Unit(id) => vis.visit_id(id),
2184-
}
2185-
}
2186-
21872184
fn walk_trait_ref<T: MutVisitor>(vis: &mut T, TraitRef { path, ref_id }: &mut TraitRef) {
21882185
vis.visit_id(ref_id);
21892186
vis.visit_path(path);

compiler/rustc_ast_passes/src/node_count.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ impl<'ast> Visitor<'ast> for NodeCounter {
8585
}
8686
fn visit_variant_data(&mut self, s: &VariantData) {
8787
self.count += 1;
88-
walk_struct_def(self, s)
88+
walk_variant_data(self, s)
8989
}
9090
fn visit_field_def(&mut self, s: &FieldDef) {
9191
self.count += 1;

compiler/rustc_lint/src/early.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ impl<'a, T: EarlyLintPass> ast_visit::Visitor<'a> for EarlyContextAndPass<'a, T>
168168
if let Some(ctor_node_id) = s.ctor_node_id() {
169169
self.check_id(ctor_node_id);
170170
}
171-
ast_visit::walk_struct_def(self, s);
171+
ast_visit::walk_variant_data(self, s);
172172
}
173173

174174
fn visit_field_def(&mut self, s: &'a ast::FieldDef) {

0 commit comments

Comments
 (0)