@@ -86,7 +86,7 @@ pub trait Visitor<'v> : Sized {
86
86
}
87
87
fn visit_struct_field ( & mut self , s : & ' v StructField ) { walk_struct_field ( self , s) }
88
88
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 ) {
90
90
walk_enum_def ( self , enum_definition, generics, item_id)
91
91
}
92
92
fn visit_variant ( & mut self , v : & ' v Variant , g : & ' v Generics , item_id : NodeId ) {
@@ -136,6 +136,11 @@ macro_rules! walk_list {
136
136
for elem in $list {
137
137
$visitor. $method( elem)
138
138
}
139
+ } ;
140
+ ( $visitor: expr, $method: ident, $list: expr, $( $extra_args: expr) ,* ) => {
141
+ for elem in $list {
142
+ $visitor. $method( elem, $( $extra_args, ) * )
143
+ }
139
144
}
140
145
}
141
146
@@ -272,7 +277,7 @@ pub fn walk_item<'v, V: Visitor<'v>>(visitor: &mut V, item: &'v Item) {
272
277
}
273
278
ItemEnum ( ref enum_definition, ref type_parameters) => {
274
279
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 )
276
281
}
277
282
ItemDefaultImpl ( _, ref trait_ref) => {
278
283
visitor. visit_trait_ref ( trait_ref)
@@ -306,9 +311,7 @@ pub fn walk_enum_def<'v, V: Visitor<'v>>(visitor: &mut V,
306
311
enum_definition : & ' v EnumDef ,
307
312
generics : & ' v Generics ,
308
313
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) ;
312
315
}
313
316
314
317
pub fn walk_variant < ' v , V : Visitor < ' v > > ( visitor : & mut V ,
0 commit comments