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_macros.rs b/test_suite/tests/test_macros.rs index c4eb06f3..d4456bed 100644 --- a/test_suite/tests/test_macros.rs +++ b/test_suite/tests/test_macros.rs @@ -637,7 +637,10 @@ fn test_untagged_enum() { ], ); + // Serializes to unit, deserializes from either depending on format's + // preference. assert_tokens(&Untagged::C, &[Token::Unit]); + assert_de_tokens(&Untagged::C, &[Token::None]); assert_tokens(&Untagged::D(4), &[Token::U8(4)]); assert_tokens(&Untagged::E("e".to_owned()), &[Token::Str("e")]); @@ -652,11 +655,6 @@ fn test_untagged_enum() { ], ); - assert_de_tokens_error::( - &[Token::None], - "data did not match any variant of untagged enum Untagged", - ); - assert_de_tokens_error::( &[Token::Tuple { len: 1 }, Token::U8(1), Token::TupleEnd], "data did not match any variant of untagged enum Untagged",