From 6e2c385fa55d223e3d9dd22ff126f81b4903e05b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?A=CC=81rpa=CC=81d=20Goretity?= Date: Wed, 6 Nov 2019 17:31:27 +0100 Subject: [PATCH] Allow untagged unit variants to deserialize from `Visitor::visit_none()` --- serde/src/private/de.rs | 7 +++++++ test_suite/tests/test_de.rs | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/serde/src/private/de.rs b/serde/src/private/de.rs index ffa5012d..1c7fda3a 100644 --- a/serde/src/private/de.rs +++ b/serde/src/private/de.rs @@ -2510,6 +2510,13 @@ mod content { { Ok(()) } + + fn visit_none(self) -> Result<(), E> + where + E: de::Error, + { + Ok(()) + } } } diff --git a/test_suite/tests/test_de.rs b/test_suite/tests/test_de.rs index 025d87b0..a1da9509 100644 --- a/test_suite/tests/test_de.rs +++ b/test_suite/tests/test_de.rs @@ -137,6 +137,12 @@ enum EnumOther { Other, } +#[derive(PartialEq, Debug, Deserialize)] +#[serde(untagged)] +enum EnumUntaggedUnit { + Unit, +} + #[derive(PartialEq, Debug)] struct IgnoredAny; @@ -788,6 +794,9 @@ declare_tests! { Token::Unit, ], } + test_enum_untagged_unit_from_none { + UntaggedUnit::Unit => &[Token::None], + } test_box { Box::new(0i32) => &[Token::I32(0)], }