From 58bbaa9e80d2053d00c9f15977917b149b277b7f Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Thu, 28 Feb 2019 16:35:29 -0800 Subject: [PATCH] Refer to Option through serde::export in generated code --- serde_derive/src/de.rs | 4 +++- test_suite/tests/test_gen.rs | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/serde_derive/src/de.rs b/serde_derive/src/de.rs index 7be6c4b9..7fa1030b 100644 --- a/serde_derive/src/de.rs +++ b/serde_derive/src/de.rs @@ -2476,7 +2476,9 @@ fn deserialize_map( let collected_deny_unknown_fields = if cattrs.has_flatten() && cattrs.deny_unknown_fields() { Some(quote! { - if let _serde::export::Some(_serde::export::Some((__key, _))) = __collect.into_iter().filter(Option::is_some).next() { + if let _serde::export::Some(_serde::export::Some((__key, _))) = + __collect.into_iter().filter(_serde::export::Option::is_some).next() + { if let _serde::export::Some(__key) = __key.as_str() { return _serde::export::Err( _serde::de::Error::custom(format_args!("unknown field `{}`", &__key))); diff --git a/test_suite/tests/test_gen.rs b/test_suite/tests/test_gen.rs index 788e91b8..92bb0ae1 100644 --- a/test_suite/tests/test_gen.rs +++ b/test_suite/tests/test_gen.rs @@ -522,6 +522,13 @@ fn test_gen() { } assert::(); + #[derive(Serialize, Deserialize)] + #[serde(deny_unknown_fields)] + struct FlattenDenyUnknown { + #[serde(flatten)] + t: T, + } + #[derive(Serialize, Deserialize)] struct StaticStrStruct<'a> { a: &'a str,