mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-06-23 13:01:04 +00:00
deserialize_internally_tagged_variant always called with the same deserializer, so remove that parameter
This commit is contained in:
@@ -1425,10 +1425,7 @@ fn deserialize_internally_tagged_enum(
|
|||||||
let variant_name = field_i(i);
|
let variant_name = field_i(i);
|
||||||
|
|
||||||
let block = Match(deserialize_internally_tagged_variant(
|
let block = Match(deserialize_internally_tagged_variant(
|
||||||
params,
|
params, variant, cattrs,
|
||||||
variant,
|
|
||||||
cattrs,
|
|
||||||
quote!(__deserializer),
|
|
||||||
));
|
));
|
||||||
|
|
||||||
quote! {
|
quote! {
|
||||||
@@ -1864,12 +1861,11 @@ fn deserialize_internally_tagged_variant(
|
|||||||
params: &Parameters,
|
params: &Parameters,
|
||||||
variant: &Variant,
|
variant: &Variant,
|
||||||
cattrs: &attr::Container,
|
cattrs: &attr::Container,
|
||||||
deserializer: TokenStream,
|
|
||||||
) -> Fragment {
|
) -> Fragment {
|
||||||
if let Some(path) = variant.attrs.deserialize_with() {
|
if let Some(path) = variant.attrs.deserialize_with() {
|
||||||
let unwrap_fn = unwrap_to_variant_closure(params, variant, false);
|
let unwrap_fn = unwrap_to_variant_closure(params, variant, false);
|
||||||
return quote_block! {
|
return quote_block! {
|
||||||
_serde::#private::Result::map(#path(#deserializer), #unwrap_fn)
|
_serde::#private::Result::map(#path(__deserializer), #unwrap_fn)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1885,7 +1881,7 @@ fn deserialize_internally_tagged_variant(
|
|||||||
quote!((#default))
|
quote!((#default))
|
||||||
});
|
});
|
||||||
quote_block! {
|
quote_block! {
|
||||||
_serde::Deserializer::deserialize_any(#deserializer, _serde::#private::de::InternallyTaggedUnitVisitor::new(#type_name, #variant_name))?;
|
_serde::Deserializer::deserialize_any(__deserializer, _serde::#private::de::InternallyTaggedUnitVisitor::new(#type_name, #variant_name))?;
|
||||||
_serde::#private::Ok(#this_value::#variant_ident #default)
|
_serde::#private::Ok(#this_value::#variant_ident #default)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1893,13 +1889,13 @@ fn deserialize_internally_tagged_variant(
|
|||||||
variant_ident,
|
variant_ident,
|
||||||
params,
|
params,
|
||||||
&variant.fields[0],
|
&variant.fields[0],
|
||||||
&deserializer,
|
"e!(__deserializer),
|
||||||
),
|
),
|
||||||
Style::Struct => deserialize_struct(
|
Style::Struct => deserialize_struct(
|
||||||
params,
|
params,
|
||||||
&variant.fields,
|
&variant.fields,
|
||||||
cattrs,
|
cattrs,
|
||||||
StructForm::InternallyTagged(variant_ident, deserializer),
|
StructForm::InternallyTagged(variant_ident, quote!(__deserializer)),
|
||||||
),
|
),
|
||||||
Style::Tuple => unreachable!("checked in serde_derive_internals"),
|
Style::Tuple => unreachable!("checked in serde_derive_internals"),
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user