mirror of
https://github.com/serde-rs/serde.git
synced 2025-09-27 04:50:36 +00:00
deserialize_untagged_newtype_variant
always called with the same deserializer
, so remove that parameter
This commit is contained in:
parent
3a682c951b
commit
915686d0ec
@ -1873,12 +1873,9 @@ fn deserialize_internally_tagged_variant(
|
|||||||
_serde::#private::Ok(#this_value::#variant_ident #default)
|
_serde::#private::Ok(#this_value::#variant_ident #default)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Style::Newtype => deserialize_untagged_newtype_variant(
|
Style::Newtype => {
|
||||||
variant_ident,
|
deserialize_untagged_newtype_variant(variant_ident, params, &variant.fields[0])
|
||||||
params,
|
}
|
||||||
&variant.fields[0],
|
|
||||||
"e!(__deserializer),
|
|
||||||
),
|
|
||||||
Style::Struct => deserialize_struct(
|
Style::Struct => deserialize_struct(
|
||||||
params,
|
params,
|
||||||
&variant.fields,
|
&variant.fields,
|
||||||
@ -1922,12 +1919,9 @@ fn deserialize_untagged_variant(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Style::Newtype => deserialize_untagged_newtype_variant(
|
Style::Newtype => {
|
||||||
variant_ident,
|
deserialize_untagged_newtype_variant(variant_ident, params, &variant.fields[0])
|
||||||
params,
|
}
|
||||||
&variant.fields[0],
|
|
||||||
"e!(__deserializer),
|
|
||||||
),
|
|
||||||
Style::Tuple => deserialize_tuple(
|
Style::Tuple => deserialize_tuple(
|
||||||
params,
|
params,
|
||||||
&variant.fields,
|
&variant.fields,
|
||||||
@ -1985,7 +1979,6 @@ fn deserialize_untagged_newtype_variant(
|
|||||||
variant_ident: &syn::Ident,
|
variant_ident: &syn::Ident,
|
||||||
params: &Parameters,
|
params: &Parameters,
|
||||||
field: &Field,
|
field: &Field,
|
||||||
deserializer: &TokenStream,
|
|
||||||
) -> Fragment {
|
) -> Fragment {
|
||||||
let this_value = ¶ms.this_value;
|
let this_value = ¶ms.this_value;
|
||||||
let field_ty = field.ty;
|
let field_ty = field.ty;
|
||||||
@ -1994,12 +1987,12 @@ fn deserialize_untagged_newtype_variant(
|
|||||||
let span = field.original.span();
|
let span = field.original.span();
|
||||||
let func = quote_spanned!(span=> <#field_ty as _serde::Deserialize>::deserialize);
|
let func = quote_spanned!(span=> <#field_ty as _serde::Deserialize>::deserialize);
|
||||||
quote_expr! {
|
quote_expr! {
|
||||||
_serde::#private::Result::map(#func(#deserializer), #this_value::#variant_ident)
|
_serde::#private::Result::map(#func(__deserializer), #this_value::#variant_ident)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Some(path) => {
|
Some(path) => {
|
||||||
quote_block! {
|
quote_block! {
|
||||||
let __value: _serde::#private::Result<#field_ty, _> = #path(#deserializer);
|
let __value: _serde::#private::Result<#field_ty, _> = #path(__deserializer);
|
||||||
_serde::#private::Result::map(__value, #this_value::#variant_ident)
|
_serde::#private::Result::map(__value, #this_value::#variant_ident)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user