@@ -61,9 +61,9 @@ fn show_substructure(cx: &mut ExtCtxt, span: Span,
61
61
// build fmt.debug_struct(<name>).field(<fieldname>, &<fieldval>)....build()
62
62
// or fmt.debug_tuple(<name>).field(&<fieldval>)....build()
63
63
// based on the "shape".
64
- let ident = match * substr. fields {
65
- Struct ( .. ) => substr. type_ident ,
66
- EnumMatching ( _, v, _) => v. node . name ,
64
+ let ( ident, is_struct ) = match * substr. fields {
65
+ Struct ( vdata , _ ) => ( substr. type_ident , vdata . is_struct ( ) ) ,
66
+ EnumMatching ( _, v, _) => ( v. node . name , v . node . data . is_struct ( ) ) ,
67
67
EnumNonMatchingCollapsed ( ..) | StaticStruct ( ..) | StaticEnum ( ..) => {
68
68
cx. span_bug ( span, "nonsensical .fields in `#[derive(Debug)]`" )
69
69
}
@@ -76,11 +76,6 @@ fn show_substructure(cx: &mut ExtCtxt, span: Span,
76
76
let builder_expr = cx. expr_ident ( span, builder. clone ( ) ) ;
77
77
78
78
let fmt = substr. nonself_args [ 0 ] . clone ( ) ;
79
- let is_struct = match * substr. fields {
80
- Struct ( vdata, _) => vdata,
81
- EnumMatching ( _, v, _) => & v. node . data ,
82
- _ => unreachable ! ( )
83
- } . is_struct ( ) ;
84
79
85
80
let stmts = match * substr. fields {
86
81
Struct ( _, ref fields) | EnumMatching ( _, _, ref fields) => {
0 commit comments