Provide span for visit_enum_def
This commit is contained in:
parent
beeaea4a70
commit
a0f2a591e0
3 changed files with 12 additions and 11 deletions
|
@ -201,7 +201,7 @@ impl<'a, 'ast: 'a> Visitor<'ast> for CheckItemRecursionVisitor<'a, 'ast> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_enum_def(&mut self, enum_definition: &'ast hir::EnumDef,
|
fn visit_enum_def(&mut self, enum_definition: &'ast hir::EnumDef,
|
||||||
generics: &'ast hir::Generics, item_id: ast::NodeId) {
|
generics: &'ast hir::Generics, item_id: ast::NodeId, _: Span) {
|
||||||
self.populate_enum_discriminants(enum_definition);
|
self.populate_enum_discriminants(enum_definition);
|
||||||
visit::walk_enum_def(self, enum_definition, generics, item_id);
|
visit::walk_enum_def(self, enum_definition, generics, item_id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,7 +120,7 @@ pub trait Visitor<'v> : Sized {
|
||||||
walk_struct_field(self, s)
|
walk_struct_field(self, s)
|
||||||
}
|
}
|
||||||
fn visit_enum_def(&mut self, enum_definition: &'v EnumDef,
|
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)
|
walk_enum_def(self, enum_definition, generics, item_id)
|
||||||
}
|
}
|
||||||
fn visit_variant(&mut self, v: &'v Variant, g: &'v Generics, item_id: NodeId) {
|
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) {
|
||||||
}
|
}
|
||||||
ItemEnum(ref enum_definition, ref type_parameters) => {
|
ItemEnum(ref enum_definition, ref type_parameters) => {
|
||||||
visitor.visit_generics(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) => {
|
ItemDefaultImpl(_, ref trait_ref) => {
|
||||||
visitor.visit_trait_ref(trait_ref)
|
visitor.visit_trait_ref(trait_ref)
|
||||||
|
@ -326,9 +326,7 @@ pub fn walk_enum_def<'v, V: Visitor<'v>>(visitor: &mut V,
|
||||||
enum_definition: &'v EnumDef,
|
enum_definition: &'v EnumDef,
|
||||||
generics: &'v Generics,
|
generics: &'v Generics,
|
||||||
item_id: NodeId) {
|
item_id: NodeId) {
|
||||||
for variant in &enum_definition.variants {
|
walk_list!(visitor, visit_variant, &enum_definition.variants, generics, item_id);
|
||||||
visitor.visit_variant(variant, generics, item_id);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn walk_variant<'v, V: Visitor<'v>>(visitor: &mut V,
|
pub fn walk_variant<'v, V: Visitor<'v>>(visitor: &mut V,
|
||||||
|
|
|
@ -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_struct_field(&mut self, s: &'v StructField) { walk_struct_field(self, s) }
|
||||||
fn visit_enum_def(&mut self, enum_definition: &'v EnumDef,
|
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)
|
walk_enum_def(self, enum_definition, generics, item_id)
|
||||||
}
|
}
|
||||||
fn visit_variant(&mut self, v: &'v Variant, g: &'v Generics, item_id: NodeId) {
|
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 {
|
for elem in $list {
|
||||||
$visitor.$method(elem)
|
$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) => {
|
ItemEnum(ref enum_definition, ref type_parameters) => {
|
||||||
visitor.visit_generics(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) => {
|
ItemDefaultImpl(_, ref trait_ref) => {
|
||||||
visitor.visit_trait_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,
|
enum_definition: &'v EnumDef,
|
||||||
generics: &'v Generics,
|
generics: &'v Generics,
|
||||||
item_id: NodeId) {
|
item_id: NodeId) {
|
||||||
for variant in &enum_definition.variants {
|
walk_list!(visitor, visit_variant, &enum_definition.variants, generics, item_id);
|
||||||
visitor.visit_variant(variant, generics, item_id);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn walk_variant<'v, V: Visitor<'v>>(visitor: &mut V,
|
pub fn walk_variant<'v, V: Visitor<'v>>(visitor: &mut V,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue