diff --git a/serde_derive/src/de.rs b/serde_derive/src/de.rs index 747e4519..29b0c02d 100644 --- a/serde_derive/src/de.rs +++ b/serde_derive/src/de.rs @@ -1228,7 +1228,7 @@ fn deserialize_enum( Some(variant_idx) => { let (tagged, untagged) = variants.split_at(variant_idx); let tagged_frag = Expr(deserialize_homogeneous_enum(params, tagged, cattrs)); - deserialize_untagged_enum_after(params, untagged, cattrs, Some(tagged_frag)) + deserialize_untagged_enum(params, untagged, cattrs, Some(tagged_frag)) } None => deserialize_homogeneous_enum(params, variants, cattrs), } @@ -1247,7 +1247,7 @@ fn deserialize_homogeneous_enum( attr::TagType::Adjacent { tag, content } => { deserialize_adjacently_tagged_enum(params, variants, cattrs, tag, content) } - attr::TagType::None => deserialize_untagged_enum(params, variants, cattrs), + attr::TagType::None => deserialize_untagged_enum(params, variants, cattrs, None), } } @@ -1753,15 +1753,6 @@ fn deserialize_untagged_enum( params: &Parameters, variants: &[Variant], cattrs: &attr::Container, -) -> Fragment { - let first_attempt = None; - deserialize_untagged_enum_after(params, variants, cattrs, first_attempt) -} - -fn deserialize_untagged_enum_after( - params: &Parameters, - variants: &[Variant], - cattrs: &attr::Container, first_attempt: Option, ) -> Fragment { let attempts = variants