From 26528fbbb44803a2dd52008eb90d0c6719841d9c Mon Sep 17 00:00:00 2001 From: Oliver Schneider Date: Tue, 12 Jul 2016 16:53:38 +0200 Subject: [PATCH] silence lint about `a: ref a` patterns --- serde_codegen/src/ser.rs | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/serde_codegen/src/ser.rs b/serde_codegen/src/ser.rs index fd68d048..2df9d9ef 100644 --- a/serde_codegen/src/ser.rs +++ b/serde_codegen/src/ser.rs @@ -382,19 +382,19 @@ fn serialize_variant( ) } Style::Struct => { - let pat = builder.pat().struct_() - .id(type_ident).id(variant_ident).build() - .with_pats(variant.fields.iter() - .map(|field| { - match field.ident { - Some(name) => (name, builder.pat().ref_id(name)), - None => { - cx.span_bug(field.span, "struct variant has unnamed fields") - } - } - }) - ) - .build(); + let mut pat = builder.pat().struct_().id(type_ident).id(variant_ident).build(); + for field in variant.fields.iter() { + let name = match field.ident { + Some(name) => name, + None => cx.span_bug(field.span, "struct variant has unnamed fields"), + }; + pat = pat.with_field_pat(ast::FieldPat { + ident: name, + pat: builder.pat().ref_id(name), + is_shorthand: true, + }); + } + let pat = pat.build(); let expr = serialize_struct_variant( cx,