Explorar o código

num-macros: port from ast::VariantKind to ast::VariantData

Josh Stone %!s(int64=9) %!d(string=hai) anos
pai
achega
fe99867590
Modificáronse 1 ficheiros con 10 adicións e 10 borrados
  1. 10 10
      num-macros/src/lib.rs

+ 10 - 10
num-macros/src/lib.rs

@@ -132,15 +132,8 @@ fn cs_from(name: &str, cx: &mut ExtCtxt, trait_span: Span, substr: &Substructure
             let mut arms = Vec::new();
 
             for variant in &enum_def.variants {
-                match variant.node.kind {
-                    ast::TupleVariantKind(ref args) => {
-                        if !args.is_empty() {
-                            cx.span_err(trait_span,
-                                        "`FromPrimitive` cannot be derived for \
-                                        enum variants with arguments");
-                            return cx.expr_fail(trait_span,
-                                                InternedString::new(""));
-                        }
+                match *variant.node.data {
+                    ast::VariantData::Unit(..) => {
                         let span = variant.span;
 
                         // expr for `$n == $variant as $name`
@@ -163,7 +156,14 @@ fn cs_from(name: &str, cx: &mut ExtCtxt, trait_span: Span, substr: &Substructure
 
                         arms.push(arm);
                     }
-                    ast::StructVariantKind(_) => {
+                    ast::VariantData::Tuple(..) => {
+                        cx.span_err(trait_span,
+                                    "`FromPrimitive` cannot be derived for \
+                                    enum variants with arguments");
+                        return cx.expr_fail(trait_span,
+                                            InternedString::new(""));
+                    }
+                    ast::VariantData::Struct(..) => {
                         cx.span_err(trait_span,
                                     "`FromPrimitive` cannot be derived for enums \
                                     with struct variants");