From bb2ecb3bc4c71dc2027859e8679a86a9aa48c978 Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Tue, 20 Mar 2018 22:04:12 +0100 Subject: [PATCH] Added compilefail tests for flatten conflicts --- .../conflict/flatten-skip-deserializing.rs | 24 +++++++++++++++++++ .../conflict/flatten-skip-serializing-if.rs | 24 +++++++++++++++++++ .../conflict/flatten-skip-serializing.rs | 24 +++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 test_suite/tests/compile-fail/conflict/flatten-skip-deserializing.rs create mode 100644 test_suite/tests/compile-fail/conflict/flatten-skip-serializing-if.rs create mode 100644 test_suite/tests/compile-fail/conflict/flatten-skip-serializing.rs diff --git a/test_suite/tests/compile-fail/conflict/flatten-skip-deserializing.rs b/test_suite/tests/compile-fail/conflict/flatten-skip-deserializing.rs new file mode 100644 index 00000000..3ef4d38f --- /dev/null +++ b/test_suite/tests/compile-fail/conflict/flatten-skip-deserializing.rs @@ -0,0 +1,24 @@ +// Copyright 2018 Serde Developers +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#[macro_use] +extern crate serde_derive; + +#[derive(Deserialize)] //~ ERROR: proc-macro derive panicked +//~^ HELP: #[serde(flatten] can not be combined with #[serde(skip_deserializing)] +struct Foo { + #[serde(flatten, skip_deserializing)] + other: Other, +} + +#[derive(Deserialize)] +struct Other { + x: u32 +} + +fn main() {} diff --git a/test_suite/tests/compile-fail/conflict/flatten-skip-serializing-if.rs b/test_suite/tests/compile-fail/conflict/flatten-skip-serializing-if.rs new file mode 100644 index 00000000..6a5fa9d6 --- /dev/null +++ b/test_suite/tests/compile-fail/conflict/flatten-skip-serializing-if.rs @@ -0,0 +1,24 @@ +// Copyright 2018 Serde Developers +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] //~ ERROR: proc-macro derive panicked +//~^ HELP: #[serde(flatten] can not be combined with #[serde(skip_serializing_if = "...")] +struct Foo { + #[serde(flatten, skip_serializing_if="Option::is_none")] + other: Option, +} + +#[derive(Serialize)] +struct Other { + x: u32 +} + +fn main() {} diff --git a/test_suite/tests/compile-fail/conflict/flatten-skip-serializing.rs b/test_suite/tests/compile-fail/conflict/flatten-skip-serializing.rs new file mode 100644 index 00000000..204f9bf3 --- /dev/null +++ b/test_suite/tests/compile-fail/conflict/flatten-skip-serializing.rs @@ -0,0 +1,24 @@ +// Copyright 2018 Serde Developers +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] //~ ERROR: proc-macro derive panicked +//~^ HELP: #[serde(flatten] can not be combined with #[serde(skip_serializing)] +struct Foo { + #[serde(flatten, skip_serializing)] + other: Other, +} + +#[derive(Serialize)] +struct Other { + x: u32 +} + +fn main() {}