From c451415d9fb6d4c81c45c30a1bb525bff5d2d071 Mon Sep 17 00:00:00 2001 From: Mingun Date: Thu, 29 May 2025 01:07:27 +0500 Subject: [PATCH] Do not duplicate variant deserialization code --- serde_derive/src/de.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/serde_derive/src/de.rs b/serde_derive/src/de.rs index c05c840d..418ed253 100644 --- a/serde_derive/src/de.rs +++ b/serde_derive/src/de.rs @@ -1601,10 +1601,12 @@ fn deserialize_adjacently_tagged_enum( } } else { quote! { - let __ret = match #variant_from_map { - // Deserialize the buffered content now that we know the variant. - #(#variant_arms)* - }?; + let __seed = __Seed { + field: #variant_from_map, + marker: _serde::#private::PhantomData, + lifetime: _serde::#private::PhantomData, + }; + let __ret = _serde::de::DeserializeSeed::deserialize(__seed, __deserializer)?; // Visit remaining keys, looking for duplicates. #visit_remaining_keys }