mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-06-12 19:01:02 +00:00
Remove dead code - variant_ident and deserializer are always None
This commit is contained in:
+7
-32
@@ -324,10 +324,10 @@ fn deserialize_in_place_body(cont: &Container, params: &Parameters) -> Option<St
|
|||||||
|
|
||||||
let code = match &cont.data {
|
let code = match &cont.data {
|
||||||
Data::Struct(Style::Struct, fields) => {
|
Data::Struct(Style::Struct, fields) => {
|
||||||
deserialize_struct_in_place(None, params, fields, &cont.attrs, None)?
|
deserialize_struct_in_place(params, fields, &cont.attrs)?
|
||||||
}
|
}
|
||||||
Data::Struct(Style::Tuple, fields) | Data::Struct(Style::Newtype, fields) => {
|
Data::Struct(Style::Tuple, fields) | Data::Struct(Style::Newtype, fields) => {
|
||||||
deserialize_tuple_in_place(None, params, fields, &cont.attrs, None)
|
deserialize_tuple_in_place(params, fields, &cont.attrs)
|
||||||
}
|
}
|
||||||
Data::Enum(_) | Data::Struct(Style::Unit, _) => {
|
Data::Enum(_) | Data::Struct(Style::Unit, _) => {
|
||||||
return None;
|
return None;
|
||||||
@@ -582,11 +582,9 @@ fn deserialize_tuple(
|
|||||||
|
|
||||||
#[cfg(feature = "deserialize_in_place")]
|
#[cfg(feature = "deserialize_in_place")]
|
||||||
fn deserialize_tuple_in_place(
|
fn deserialize_tuple_in_place(
|
||||||
variant_ident: Option<syn::Ident>,
|
|
||||||
params: &Parameters,
|
params: &Parameters,
|
||||||
fields: &[Field],
|
fields: &[Field],
|
||||||
cattrs: &attr::Container,
|
cattrs: &attr::Container,
|
||||||
deserializer: Option<TokenStream>,
|
|
||||||
) -> Fragment {
|
) -> Fragment {
|
||||||
assert!(!cattrs.has_flatten());
|
assert!(!cattrs.has_flatten());
|
||||||
|
|
||||||
@@ -600,16 +598,12 @@ fn deserialize_tuple_in_place(
|
|||||||
split_with_de_lifetime(params);
|
split_with_de_lifetime(params);
|
||||||
let delife = params.borrowed.de_lifetime();
|
let delife = params.borrowed.de_lifetime();
|
||||||
|
|
||||||
let is_enum = variant_ident.is_some();
|
let expecting = format!("tuple struct {}", params.type_name());
|
||||||
let expecting = match variant_ident {
|
|
||||||
Some(variant_ident) => format!("tuple variant {}::{}", params.type_name(), variant_ident),
|
|
||||||
None => format!("tuple struct {}", params.type_name()),
|
|
||||||
};
|
|
||||||
let expecting = cattrs.expecting().unwrap_or(&expecting);
|
let expecting = cattrs.expecting().unwrap_or(&expecting);
|
||||||
|
|
||||||
let nfields = fields.len();
|
let nfields = fields.len();
|
||||||
|
|
||||||
let visit_newtype_struct = if !is_enum && nfields == 1 {
|
let visit_newtype_struct = if nfields == 1 {
|
||||||
// We do not generate deserialize_in_place if every field has a
|
// We do not generate deserialize_in_place if every field has a
|
||||||
// deserialize_with.
|
// deserialize_with.
|
||||||
assert!(fields[0].attrs.deserialize_with().is_none());
|
assert!(fields[0].attrs.deserialize_with().is_none());
|
||||||
@@ -636,11 +630,7 @@ fn deserialize_tuple_in_place(
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let dispatch = if let Some(deserializer) = deserializer {
|
let dispatch = if nfields == 1 {
|
||||||
quote!(_serde::Deserializer::deserialize_tuple(#deserializer, #field_count, #visitor_expr))
|
|
||||||
} else if is_enum {
|
|
||||||
quote!(_serde::de::VariantAccess::tuple_variant(__variant, #field_count, #visitor_expr))
|
|
||||||
} else if nfields == 1 {
|
|
||||||
let type_name = cattrs.name().deserialize_name();
|
let type_name = cattrs.name().deserialize_name();
|
||||||
quote!(_serde::Deserializer::deserialize_newtype_struct(__deserializer, #type_name, #visitor_expr))
|
quote!(_serde::Deserializer::deserialize_newtype_struct(__deserializer, #type_name, #visitor_expr))
|
||||||
} else {
|
} else {
|
||||||
@@ -1126,14 +1116,10 @@ fn deserialize_struct(
|
|||||||
|
|
||||||
#[cfg(feature = "deserialize_in_place")]
|
#[cfg(feature = "deserialize_in_place")]
|
||||||
fn deserialize_struct_in_place(
|
fn deserialize_struct_in_place(
|
||||||
variant_ident: Option<syn::Ident>,
|
|
||||||
params: &Parameters,
|
params: &Parameters,
|
||||||
fields: &[Field],
|
fields: &[Field],
|
||||||
cattrs: &attr::Container,
|
cattrs: &attr::Container,
|
||||||
deserializer: Option<TokenStream>,
|
|
||||||
) -> Option<Fragment> {
|
) -> Option<Fragment> {
|
||||||
let is_enum = variant_ident.is_some();
|
|
||||||
|
|
||||||
// for now we do not support in_place deserialization for structs that
|
// for now we do not support in_place deserialization for structs that
|
||||||
// are represented as map.
|
// are represented as map.
|
||||||
if cattrs.has_flatten() {
|
if cattrs.has_flatten() {
|
||||||
@@ -1145,10 +1131,7 @@ fn deserialize_struct_in_place(
|
|||||||
split_with_de_lifetime(params);
|
split_with_de_lifetime(params);
|
||||||
let delife = params.borrowed.de_lifetime();
|
let delife = params.borrowed.de_lifetime();
|
||||||
|
|
||||||
let expecting = match variant_ident {
|
let expecting = format!("struct {}", params.type_name());
|
||||||
Some(variant_ident) => format!("struct variant {}::{}", params.type_name(), variant_ident),
|
|
||||||
None => format!("struct {}", params.type_name()),
|
|
||||||
};
|
|
||||||
let expecting = cattrs.expecting().unwrap_or(&expecting);
|
let expecting = cattrs.expecting().unwrap_or(&expecting);
|
||||||
|
|
||||||
let field_names_idents: Vec<_> = fields
|
let field_names_idents: Vec<_> = fields
|
||||||
@@ -1188,15 +1171,7 @@ fn deserialize_struct_in_place(
|
|||||||
lifetime: _serde::__private::PhantomData,
|
lifetime: _serde::__private::PhantomData,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let dispatch = if let Some(deserializer) = deserializer {
|
let dispatch = {
|
||||||
quote! {
|
|
||||||
_serde::Deserializer::deserialize_any(#deserializer, #visitor_expr)
|
|
||||||
}
|
|
||||||
} else if is_enum {
|
|
||||||
quote! {
|
|
||||||
_serde::de::VariantAccess::struct_variant(__variant, FIELDS, #visitor_expr)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
let type_name = cattrs.name().deserialize_name();
|
let type_name = cattrs.name().deserialize_name();
|
||||||
quote! {
|
quote! {
|
||||||
_serde::Deserializer::deserialize_struct(__deserializer, #type_name, FIELDS, #visitor_expr)
|
_serde::Deserializer::deserialize_struct(__deserializer, #type_name, FIELDS, #visitor_expr)
|
||||||
|
|||||||
Reference in New Issue
Block a user