Skip to content

Commit 32a4bd9

Browse files
committed
Auto merge of #29102 - petrochenkov:spanvis, r=alexcrichton
Closes #28750 `Arm` and `Generics` don't have spans at all, so it's not a visitor's problem, `visit_struct_def` was fixed in #28816
2 parents 4ed46e7 + a0f2a59 commit 32a4bd9

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

src/librustc/middle/check_static_recursion.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ impl<'a, 'ast: 'a> Visitor<'ast> for CheckItemRecursionVisitor<'a, 'ast> {
201201
}
202202

203203
fn visit_enum_def(&mut self, enum_definition: &'ast hir::EnumDef,
204-
generics: &'ast hir::Generics, item_id: ast::NodeId) {
204+
generics: &'ast hir::Generics, item_id: ast::NodeId, _: Span) {
205205
self.populate_enum_discriminants(enum_definition);
206206
visit::walk_enum_def(self, enum_definition, generics, item_id);
207207
}

src/librustc_front/visit.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ pub trait Visitor<'v> : Sized {
120120
walk_struct_field(self, s)
121121
}
122122
fn visit_enum_def(&mut self, enum_definition: &'v EnumDef,
123-
generics: &'v Generics, item_id: NodeId) {
123+
generics: &'v Generics, item_id: NodeId, _: Span) {
124124
walk_enum_def(self, enum_definition, generics, item_id)
125125
}
126126
fn visit_variant(&mut self, v: &'v Variant, g: &'v Generics, item_id: NodeId) {
@@ -293,7 +293,7 @@ pub fn walk_item<'v, V: Visitor<'v>>(visitor: &mut V, item: &'v Item) {
293293
}
294294
ItemEnum(ref enum_definition, ref type_parameters) => {
295295
visitor.visit_generics(type_parameters);
296-
visitor.visit_enum_def(enum_definition, type_parameters, item.id)
296+
visitor.visit_enum_def(enum_definition, type_parameters, item.id, item.span)
297297
}
298298
ItemDefaultImpl(_, ref trait_ref) => {
299299
visitor.visit_trait_ref(trait_ref)
@@ -326,9 +326,7 @@ pub fn walk_enum_def<'v, V: Visitor<'v>>(visitor: &mut V,
326326
enum_definition: &'v EnumDef,
327327
generics: &'v Generics,
328328
item_id: NodeId) {
329-
for variant in &enum_definition.variants {
330-
visitor.visit_variant(variant, generics, item_id);
331-
}
329+
walk_list!(visitor, visit_variant, &enum_definition.variants, generics, item_id);
332330
}
333331

334332
pub fn walk_variant<'v, V: Visitor<'v>>(visitor: &mut V,

src/libsyntax/visit.rs

+8-5
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ pub trait Visitor<'v> : Sized {
8686
}
8787
fn visit_struct_field(&mut self, s: &'v StructField) { walk_struct_field(self, s) }
8888
fn visit_enum_def(&mut self, enum_definition: &'v EnumDef,
89-
generics: &'v Generics, item_id: NodeId) {
89+
generics: &'v Generics, item_id: NodeId, _: Span) {
9090
walk_enum_def(self, enum_definition, generics, item_id)
9191
}
9292
fn visit_variant(&mut self, v: &'v Variant, g: &'v Generics, item_id: NodeId) {
@@ -136,6 +136,11 @@ macro_rules! walk_list {
136136
for elem in $list {
137137
$visitor.$method(elem)
138138
}
139+
};
140+
($visitor: expr, $method: ident, $list: expr, $($extra_args: expr),*) => {
141+
for elem in $list {
142+
$visitor.$method(elem, $($extra_args,)*)
143+
}
139144
}
140145
}
141146

@@ -272,7 +277,7 @@ pub fn walk_item<'v, V: Visitor<'v>>(visitor: &mut V, item: &'v Item) {
272277
}
273278
ItemEnum(ref enum_definition, ref type_parameters) => {
274279
visitor.visit_generics(type_parameters);
275-
visitor.visit_enum_def(enum_definition, type_parameters, item.id)
280+
visitor.visit_enum_def(enum_definition, type_parameters, item.id, item.span)
276281
}
277282
ItemDefaultImpl(_, ref trait_ref) => {
278283
visitor.visit_trait_ref(trait_ref)
@@ -306,9 +311,7 @@ pub fn walk_enum_def<'v, V: Visitor<'v>>(visitor: &mut V,
306311
enum_definition: &'v EnumDef,
307312
generics: &'v Generics,
308313
item_id: NodeId) {
309-
for variant in &enum_definition.variants {
310-
visitor.visit_variant(variant, generics, item_id);
311-
}
314+
walk_list!(visitor, visit_variant, &enum_definition.variants, generics, item_id);
312315
}
313316

314317
pub fn walk_variant<'v, V: Visitor<'v>>(visitor: &mut V,

0 commit comments

Comments
 (0)