@@ -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
314317pub fn walk_variant < ' v , V : Visitor < ' v > > ( visitor : & mut V ,
0 commit comments