about summary refs log tree commit diff
path: root/src/libsyntax_ext
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2016-02-23 03:01:24 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2016-02-23 03:01:24 +0300
commita3f3c4a0a02fd15d6c0870912056cfbeef686539 (patch)
tree0977e8a2feb7e00ab5733d946cd5c9a81bd96d2a /src/libsyntax_ext
parent4e8e607d8469a8882944233e4bb3ee45d2a6435a (diff)
downloadrust-a3f3c4a0a02fd15d6c0870912056cfbeef686539.tar.gz
rust-a3f3c4a0a02fd15d6c0870912056cfbeef686539.zip
Some refactoring in deriving/debug.rs
Diffstat (limited to 'src/libsyntax_ext')
-rw-r--r--src/libsyntax_ext/deriving/debug.rs11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/libsyntax_ext/deriving/debug.rs b/src/libsyntax_ext/deriving/debug.rs
index 109f2ad4025..323c6c388fb 100644
--- a/src/libsyntax_ext/deriving/debug.rs
+++ b/src/libsyntax_ext/deriving/debug.rs
@@ -61,9 +61,9 @@ fn show_substructure(cx: &mut ExtCtxt, span: Span,
     // build fmt.debug_struct(<name>).field(<fieldname>, &<fieldval>)....build()
     // or fmt.debug_tuple(<name>).field(&<fieldval>)....build()
     // based on the "shape".
-    let ident = match *substr.fields {
-        Struct(..) => substr.type_ident,
-        EnumMatching(_, v, _) => v.node.name,
+    let (ident, is_struct) = match *substr.fields {
+        Struct(vdata, _) => (substr.type_ident, vdata.is_struct()),
+        EnumMatching(_, v, _) => (v.node.name, v.node.data.is_struct()),
         EnumNonMatchingCollapsed(..) | StaticStruct(..) | StaticEnum(..) => {
             cx.span_bug(span, "nonsensical .fields in `#[derive(Debug)]`")
         }
@@ -76,11 +76,6 @@ fn show_substructure(cx: &mut ExtCtxt, span: Span,
     let builder_expr = cx.expr_ident(span, builder.clone());
 
     let fmt = substr.nonself_args[0].clone();
-    let is_struct = match *substr.fields {
-        Struct(vdata, _) => vdata,
-        EnumMatching(_, v, _) => &v.node.data,
-        _ => unreachable!()
-    }.is_struct();
 
     let stmts = match *substr.fields {
         Struct(_, ref fields) | EnumMatching(_, _, ref fields) => {