@@ -154,29 +154,27 @@ fn gen_debug_impl(adt: &ast::Adt, func: &ast::Fn) -> Option<()> {
154
154
155
155
match variant. field_list ( ) {
156
156
Some ( ast:: FieldList :: RecordFieldList ( list) ) => {
157
- let mut pats = vec ! [ ] ;
158
-
159
157
// => f.debug_struct(name)
160
158
let target = make:: expr_path ( make:: ext:: ident_path ( "f" ) ) ;
161
159
let method = make:: name_ref ( "debug_struct" ) ;
162
160
let struct_name = format ! ( "\" {}\" " , name) ;
163
161
let args = make:: arg_list ( Some ( make:: expr_literal ( & struct_name) . into ( ) ) ) ;
164
162
let mut expr = make:: expr_method_call ( target, method, args) ;
165
163
164
+ let mut pats = vec ! [ ] ;
166
165
for field in list. fields ( ) {
167
- let name = field. name ( ) ?;
166
+ let field_name = field. name ( ) ?;
168
167
169
168
// create a field pattern for use in `MyStruct { fields.. }`
170
- let field_name = field. name ( ) ?;
171
169
let pat = make:: ident_pat ( false , false , field_name. clone ( ) ) ;
172
170
pats. push ( pat. into ( ) ) ;
173
171
174
172
// => <expr>.field("field_name", field)
175
173
let method_name = make:: name_ref ( "field" ) ;
176
- let field_name = make:: expr_literal ( & ( format ! ( "\" {}\" " , name ) ) ) . into ( ) ;
177
- let field_path = & format ! ( "{}" , name ) ;
178
- let field_path = make:: expr_path ( make:: ext:: ident_path ( field_path ) ) ;
179
- let args = make:: arg_list ( vec ! [ field_name , field_path ] ) ;
174
+ let name = make:: expr_literal ( & ( format ! ( "\" {}\" " , field_name ) ) ) . into ( ) ;
175
+ let path = & format ! ( "{}" , field_name ) ;
176
+ let path = make:: expr_path ( make:: ext:: ident_path ( path ) ) ;
177
+ let args = make:: arg_list ( vec ! [ name , path ] ) ;
180
178
expr = make:: expr_method_call ( expr, method_name, args) ;
181
179
}
182
180
@@ -189,15 +187,14 @@ fn gen_debug_impl(adt: &ast::Adt, func: &ast::Fn) -> Option<()> {
189
187
arms. push ( make:: match_arm ( Some ( pat. into ( ) ) , None , expr) ) ;
190
188
}
191
189
Some ( ast:: FieldList :: TupleFieldList ( list) ) => {
192
- let mut pats = vec ! [ ] ;
193
-
194
190
// => f.debug_tuple(name)
195
191
let target = make:: expr_path ( make:: ext:: ident_path ( "f" ) ) ;
196
192
let method = make:: name_ref ( "debug_tuple" ) ;
197
193
let struct_name = format ! ( "\" {}\" " , name) ;
198
194
let args = make:: arg_list ( Some ( make:: expr_literal ( & struct_name) . into ( ) ) ) ;
199
195
let mut expr = make:: expr_method_call ( target, method, args) ;
200
196
197
+ let mut pats = vec ! [ ] ;
201
198
for ( i, _) in list. fields ( ) . enumerate ( ) {
202
199
let name = format ! ( "arg{}" , i) ;
203
200
@@ -224,7 +221,7 @@ fn gen_debug_impl(adt: &ast::Adt, func: &ast::Fn) -> Option<()> {
224
221
}
225
222
None => {
226
223
let fmt_string = make:: expr_literal ( & ( format ! ( "\" {}\" " , name) ) ) . into ( ) ;
227
- let args = make:: arg_list ( vec ! [ target, fmt_string] ) ;
224
+ let args = make:: arg_list ( [ target, fmt_string] ) ;
228
225
let macro_name = make:: expr_path ( make:: ext:: ident_path ( "write" ) ) ;
229
226
let macro_call = make:: expr_macro_call ( macro_name, args) ;
230
227
@@ -267,7 +264,7 @@ fn gen_debug_impl(adt: &ast::Adt, func: &ast::Fn) -> Option<()> {
267
264
let f_path = make:: expr_path ( make:: ext:: ident_path ( "self" ) ) ;
268
265
let f_path = make:: expr_ref ( f_path, false ) ;
269
266
let f_path = make:: expr_field ( f_path, & format ! ( "{}" , name) ) . into ( ) ;
270
- let args = make:: arg_list ( vec ! [ f_name, f_path] ) ;
267
+ let args = make:: arg_list ( [ f_name, f_path] ) ;
271
268
expr = make:: expr_method_call ( expr, make:: name_ref ( "field" ) , args) ;
272
269
}
273
270
expr
0 commit comments