From 1986c1705214cb2e31ed61b78ced84b1f38955c3 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Sun, 9 Apr 2017 13:08:05 -0700 Subject: [PATCH] Remove conversion from empty seq to unit struct --- serde_derive/src/de.rs | 7 ------- test_suite/tests/test_de.rs | 15 +++++++-------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/serde_derive/src/de.rs b/serde_derive/src/de.rs index 5c84a649..4c4ffe14 100644 --- a/serde_derive/src/de.rs +++ b/serde_derive/src/de.rs @@ -168,13 +168,6 @@ fn deserialize_unit_struct(ident: &syn::Ident, item_attrs: &attr::Item) -> Fragm { _serde::export::Ok(#ident) } - - #[inline] - fn visit_seq<__V>(self, _: __V) -> _serde::export::Result<#ident, __V::Error> - where __V: _serde::de::SeqVisitor<'de> - { - _serde::export::Ok(#ident) - } } _serde::Deserializer::deserialize_unit_struct(__deserializer, #type_name, __Visitor) diff --git a/test_suite/tests/test_de.rs b/test_suite/tests/test_de.rs index bff0b48b..43fa0bf3 100644 --- a/test_suite/tests/test_de.rs +++ b/test_suite/tests/test_de.rs @@ -242,14 +242,6 @@ declare_tests! { UnitStruct => &[ Token::UnitStruct("UnitStruct"), ], - UnitStruct => &[ - Token::Seq(Some(0)), - Token::SeqEnd, - ], - UnitStruct => &[ - Token::Seq(None), - Token::SeqEnd, - ], } test_newtype_struct { NewtypeStruct(1) => &[ @@ -1036,4 +1028,11 @@ declare_error_tests! { ], Error::Message("invalid type: floating point `0`, expected isize".into()), } + test_unit_struct_from_seq { + &[ + Token::Seq(Some(0)), + Token::SeqEnd, + ], + Error::Message("invalid type: sequence, expected unit struct UnitStruct".into()), + } }