summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorSean Patrick Santos <SeanPatrickSantos@gmail.com>2015-06-22 20:55:57 -0600
committerSean Patrick Santos <SeanPatrickSantos@gmail.com>2015-06-22 20:55:57 -0600
commitfaf73028c9afe5790e9b4d83a348d93e4a098852 (patch)
tree79b9641b187be226c41f29cfcacf19b49a001db3 /src/libsyntax
parentdedd4302d190f5a232e75e2b808a4b86ae323678 (diff)
downloadrust-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.rs7
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)