From 878110a4bc602505605fc12938ee22dbc1feb3a6 Mon Sep 17 00:00:00 2001 From: Mingun Date: Sun, 7 May 2023 00:59:44 +0500 Subject: [PATCH] Simplify code after dead code elimination --- serde_derive/src/de.rs | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/serde_derive/src/de.rs b/serde_derive/src/de.rs index 40fd3678..1852b5be 100644 --- a/serde_derive/src/de.rs +++ b/serde_derive/src/de.rs @@ -630,11 +630,10 @@ fn deserialize_tuple_in_place( } }; + let type_name = cattrs.name().deserialize_name(); let dispatch = if nfields == 1 { - let type_name = cattrs.name().deserialize_name(); quote!(_serde::Deserializer::deserialize_newtype_struct(__deserializer, #type_name, #visitor_expr)) } else { - let type_name = cattrs.name().deserialize_name(); quote!(_serde::Deserializer::deserialize_tuple_struct(__deserializer, #type_name, #field_count, #visitor_expr)) }; @@ -1164,19 +1163,7 @@ fn deserialize_struct_in_place( let field_names = field_names_idents .iter() .flat_map(|(_, _, aliases)| aliases); - - let visitor_expr = quote! { - __Visitor { - place: __place, - lifetime: _serde::__private::PhantomData, - } - }; - let dispatch = { - let type_name = cattrs.name().deserialize_name(); - quote! { - _serde::Deserializer::deserialize_struct(__deserializer, #type_name, FIELDS, #visitor_expr) - } - }; + let type_name = cattrs.name().deserialize_name(); let in_place_impl_generics = de_impl_generics.in_place(); let in_place_ty_generics = de_ty_generics.in_place(); @@ -1218,7 +1205,10 @@ fn deserialize_struct_in_place( #[doc(hidden)] const FIELDS: &'static [&'static str] = &[ #(#field_names),* ]; - #dispatch + _serde::Deserializer::deserialize_struct(__deserializer, #type_name, FIELDS, __Visitor { + place: __place, + lifetime: _serde::__private::PhantomData, + }) }) }