diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2016-02-23 03:01:24 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2016-02-23 03:01:24 +0300 |
| commit | a3f3c4a0a02fd15d6c0870912056cfbeef686539 (patch) | |
| tree | 0977e8a2feb7e00ab5733d946cd5c9a81bd96d2a /src/libsyntax_ext/deriving | |
| parent | 4e8e607d8469a8882944233e4bb3ee45d2a6435a (diff) | |
| download | rust-a3f3c4a0a02fd15d6c0870912056cfbeef686539.tar.gz rust-a3f3c4a0a02fd15d6c0870912056cfbeef686539.zip | |
Some refactoring in deriving/debug.rs
Diffstat (limited to 'src/libsyntax_ext/deriving')
| -rw-r--r-- | src/libsyntax_ext/deriving/debug.rs | 11 |
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) => { |
