diff options
| author | Sean Patrick Santos <SeanPatrickSantos@gmail.com> | 2015-06-22 20:55:57 -0600 |
|---|---|---|
| committer | Sean Patrick Santos <SeanPatrickSantos@gmail.com> | 2015-06-22 20:55:57 -0600 |
| commit | faf73028c9afe5790e9b4d83a348d93e4a098852 (patch) | |
| tree | 79b9641b187be226c41f29cfcacf19b49a001db3 /src/libsyntax | |
| parent | dedd4302d190f5a232e75e2b808a4b86ae323678 (diff) | |
| download | rust-faf73028c9afe5790e9b4d83a348d93e4a098852.tar.gz rust-faf73028c9afe5790e9b4d83a348d93e4a098852.zip | |
Fix issue #23302, ICE on recursively defined enum variant discriminant.
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/visit.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index 710928a00c1..649052d123c 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -90,6 +90,11 @@ pub trait Visitor<'v> : Sized { walk_struct_def(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, + generics: &'v Generics) { + walk_enum_def(self, enum_definition, generics) + } + fn visit_variant(&mut self, v: &'v Variant, g: &'v Generics) { walk_variant(self, v, g) } /// Visits an optional reference to a lifetime. The `span` is the span of some surrounding @@ -268,7 +273,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); - walk_enum_def(visitor, enum_definition, type_parameters) + visitor.visit_enum_def(enum_definition, type_parameters) } ItemDefaultImpl(_, ref trait_ref) => { visitor.visit_trait_ref(trait_ref) |
