Skip to content

Commit ac410a9

Browse files
committed
Unify {visit,walk}_variant_data (renaming walk_struct_def)
1 parent 615437b commit ac410a9

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
@@ -197,7 +197,6 @@ macro_rules! make_ast_visitor {
197197
make_visit!{Path; visit_path, walk_path}
198198
make_visit!{PreciseCapturingArg; visit_precise_capturing_arg, walk_precise_capturing_arg}
199199
make_visit!{UseTree; visit_use_tree, walk_use_tree}
200-
make_visit!{VariantData; visit_variant_data, walk_variant_data}
201200

202201
fn flat_map_foreign_item(&mut self, ni: P<ForeignItem>) -> SmallVec<[P<ForeignItem>; 1]> {
203202
walk_flat_map_item(self, ni)
@@ -285,7 +284,6 @@ macro_rules! make_ast_visitor {
285284
make_visit!{Stmt; visit_stmt, walk_stmt}
286285
make_visit!{UseTree, id: NodeId, _ nested: bool; visit_use_tree, walk_use_tree}
287286
make_visit!{Variant; visit_variant, walk_variant}
288-
make_visit!{VariantData; visit_variant_data, walk_struct_def}
289287

290288
/// This method is a hack to workaround unstable of `stmt_expr_attributes`.
291289
/// It can be removed once that feature is stabilized.
@@ -341,6 +339,7 @@ macro_rules! make_ast_visitor {
341339
make_visit!{PathSegment; visit_path_segment, walk_path_segment}
342340
make_visit!{PolyTraitRef; visit_poly_trait_ref, walk_poly_trait_ref}
343341
make_visit!{TraitRef; visit_trait_ref, walk_trait_ref}
342+
make_visit!{VariantData; visit_variant_data, walk_variant_data}
344343
make_visit!{Visibility; visit_vis, walk_vis}
345344
make_visit!{WhereClause; visit_where_clause, walk_where_clause}
346345
make_visit!{WherePredicate; visit_where_predicate, walk_where_predicate}
@@ -573,6 +572,25 @@ macro_rules! make_ast_visitor {
573572
return_result!(V)
574573
}
575574

575+
pub fn walk_variant_data<$($lt,)? V: $trait$(<$lt>)?>(
576+
vis: &mut V,
577+
vdata: ref_t!(VariantData)
578+
) -> result!(V) {
579+
match vdata {
580+
VariantData::Struct { fields, recovered: _ } => {
581+
visit_list!(vis, visit_field_def, flat_map_field_def, fields);
582+
}
583+
VariantData::Tuple(fields, id) => {
584+
try_v!(visit_id!(vis, id));
585+
visit_list!(vis, visit_field_def, flat_map_field_def, fields);
586+
}
587+
VariantData::Unit(id) => {
588+
try_v!(visit_id!(vis, id));
589+
}
590+
}
591+
return_result!(V)
592+
}
593+
576594
pub fn walk_where_clause<$($lt,)? V: $trait$(<$lt>)?>(
577595
vis: &mut V,
578596
wc: ref_t!(WhereClause)
@@ -1254,14 +1272,6 @@ pub mod visit {
12541272
V::Result::output()
12551273
}
12561274

1257-
pub fn walk_struct_def<'a, V: Visitor<'a>>(
1258-
visitor: &mut V,
1259-
struct_definition: &'a VariantData,
1260-
) -> V::Result {
1261-
walk_list!(visitor, visit_field_def, struct_definition.fields());
1262-
V::Result::output()
1263-
}
1264-
12651275
pub fn walk_field_def<'a, V: Visitor<'a>>(visitor: &mut V, field: &'a FieldDef) -> V::Result {
12661276
let FieldDef { attrs, id: _, span: _, vis, ident, ty, is_placeholder: _ } = field;
12671277
walk_list!(visitor, visit_attribute, attrs);
@@ -2176,19 +2186,6 @@ pub mod mut_visit {
21762186
vis.visit_span(span_after);
21772187
}
21782188

2179-
fn walk_variant_data<T: MutVisitor>(vis: &mut T, vdata: &mut VariantData) {
2180-
match vdata {
2181-
VariantData::Struct { fields, recovered: _ } => {
2182-
fields.flat_map_in_place(|field| vis.flat_map_field_def(field));
2183-
}
2184-
VariantData::Tuple(fields, id) => {
2185-
vis.visit_id(id);
2186-
fields.flat_map_in_place(|field| vis.flat_map_field_def(field));
2187-
}
2188-
VariantData::Unit(id) => vis.visit_id(id),
2189-
}
2190-
}
2191-
21922189
fn walk_trait_ref<T: MutVisitor>(vis: &mut T, TraitRef { path, ref_id }: &mut TraitRef) {
21932190
vis.visit_id(ref_id);
21942191
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)