From 780a461d926a05c0d18847a24b1bec596e4f399d Mon Sep 17 00:00:00 2001 From: Mingun Date: Mon, 26 Oct 2020 22:06:00 +0500 Subject: [PATCH] Generate one deserializer rather than in each arm --- serde_derive/src/de.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/serde_derive/src/de.rs b/serde_derive/src/de.rs index 2dfe87ef..2e86fd86 100644 --- a/serde_derive/src/de.rs +++ b/serde_derive/src/de.rs @@ -1356,9 +1356,7 @@ fn deserialize_internally_tagged_enum( params, variant, cattrs, - quote! { - _serde::__private::de::ContentDeserializer::<__D::Error>::new(__tagged.content) - }, + quote!(__deserializer), )); quote! { @@ -1377,6 +1375,7 @@ fn deserialize_internally_tagged_enum( let __tagged = try!(_serde::Deserializer::deserialize_any( __deserializer, _serde::__private::de::TaggedContentVisitor::<__Field>::new(#tag, #expecting))); + let __deserializer = _serde::__private::de::ContentDeserializer::<__D::Error>::new(__tagged.content); match __tagged.tag { #(#variant_arms)*