diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2015-10-16 17:17:14 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2015-10-16 17:17:14 +0300 |
| commit | a0f2a591e09fe96c7814d8376e06f4e3120f77e6 (patch) | |
| tree | cf460953ffd0b633c110e867dbba62f25d913eba /src/libsyntax/visit.rs | |
| parent | beeaea4a70766f7cc78abdc6b5991f124f349ca5 (diff) | |
| download | rust-a0f2a591e09fe96c7814d8376e06f4e3120f77e6.tar.gz rust-a0f2a591e09fe96c7814d8376e06f4e3120f77e6.zip | |
Provide span for visit_enum_def
Diffstat (limited to 'src/libsyntax/visit.rs')
| -rw-r--r-- | src/libsyntax/visit.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index b7d202804c5..1614d7d4517 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -86,7 +86,7 @@ pub trait Visitor<'v> : Sized { } fn visit_struct_field(&mut self, s: &'v StructField) { walk_struct_field(self, s) } fn visit_enum_def(&mut self, enum_definition: &'v EnumDef, - generics: &'v Generics, item_id: NodeId) { + generics: &'v Generics, item_id: NodeId, _: Span) { walk_enum_def(self, enum_definition, generics, item_id) } fn visit_variant(&mut self, v: &'v Variant, g: &'v Generics, item_id: NodeId) { @@ -136,6 +136,11 @@ macro_rules! walk_list { for elem in $list { $visitor.$method(elem) } + }; + ($visitor: expr, $method: ident, $list: expr, $($extra_args: expr),*) => { + for elem in $list { + $visitor.$method(elem, $($extra_args,)*) + } } } @@ -272,7 +277,7 @@ pub fn walk_item<'v, V: Visitor<'v>>(visitor: &mut V, item: &'v Item) { } ItemEnum(ref enum_definition, ref type_parameters) => { visitor.visit_generics(type_parameters); - visitor.visit_enum_def(enum_definition, type_parameters, item.id) + visitor.visit_enum_def(enum_definition, type_parameters, item.id, item.span) } ItemDefaultImpl(_, ref trait_ref) => { visitor.visit_trait_ref(trait_ref) @@ -306,9 +311,7 @@ pub fn walk_enum_def<'v, V: Visitor<'v>>(visitor: &mut V, enum_definition: &'v EnumDef, generics: &'v Generics, item_id: NodeId) { - for variant in &enum_definition.variants { - visitor.visit_variant(variant, generics, item_id); - } + walk_list!(visitor, visit_variant, &enum_definition.variants, generics, item_id); } pub fn walk_variant<'v, V: Visitor<'v>>(visitor: &mut V, |
