From eb5a49e3805a2029636146392b61ae00e775eb29 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Thu, 12 Jan 2017 21:49:20 -0800 Subject: [PATCH] Use helper function to build __field{} --- serde_codegen/src/de.rs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/serde_codegen/src/de.rs b/serde_codegen/src/de.rs index a324582d..1aa39a02 100644 --- a/serde_codegen/src/de.rs +++ b/serde_codegen/src/de.rs @@ -498,8 +498,7 @@ fn deserialize_item_enum( // Match arms to extract a variant from a string let mut variant_arms = vec![]; for (i, variant) in variants.iter().filter(|variant| !variant.attrs.skip_deserializing()).enumerate() { - let variant_name = Ident::new(format!("__field{}", i)); - let variant_name = quote!(__Field::#variant_name); + let variant_name = field_i(i); let block = deserialize_variant( type_ident, @@ -510,7 +509,7 @@ fn deserialize_item_enum( ); let arm = quote! { - #variant_name => #block + __Field::#variant_name => #block }; variant_arms.push(arm); } @@ -634,9 +633,7 @@ fn deserialize_field_visitor( is_variant: bool, ) -> Tokens { // Create the field names for the fields. - let field_idents: &Vec<_> = &(0 .. field_names.len()) - .map(|i| Ident::new(format!("__field{}", i))) - .collect(); + let field_idents: &Vec<_> = &(0 .. field_names.len()).map(field_i).collect(); let ignore_variant = if is_variant || item_attrs.deny_unknown_fields() { None @@ -749,8 +746,7 @@ fn deserialize_map( // Create the field names for the fields. let fields_names = fields.iter() .enumerate() - .map(|(i, field)| - (field, Ident::new(format!("__field{}", i)))) + .map(|(i, field)| (field, field_i(i))) .collect::>(); // Declare each field that will be deserialized.