mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-05-01 11:18:01 +00:00
Add regression test for issue #1904
Currently panics in derive:
error: proc-macro derive panicked
--> test_suite\tests\test_annotations.rs:2386:25
|
2386 | #[derive(Serialize, Deserialize, PartialEq, Debug)]
| ^^^^^^^^^^^
|
= help: message: assertion failed: !cattrs.has_flatten()
error: proc-macro derive panicked
--> test_suite\tests\regression\issue1904.rs:57:10
|
57 | #[derive(Deserialize)]
| ^^^^^^^^^^^
|
= help: message: assertion failed: !cattrs.has_flatten()
error: proc-macro derive panicked
--> test_suite\tests\regression\issue1904.rs:47:10
|
47 | #[derive(Deserialize)]
| ^^^^^^^^^^^
|
= help: message: assertion failed: !cattrs.has_flatten()
error: proc-macro derive panicked
--> test_suite\tests\regression\issue1904.rs:37:10
|
37 | #[derive(Deserialize)]
| ^^^^^^^^^^^
|
= help: message: assertion failed: !cattrs.has_flatten()
error: proc-macro derive panicked
--> test_suite\tests\regression\issue1904.rs:27:10
|
27 | #[derive(Deserialize)]
| ^^^^^^^^^^^
|
= help: message: assertion failed: !cattrs.has_flatten()
error: proc-macro derive panicked
--> test_suite\tests\regression\issue1904.rs:16:10
|
16 | #[derive(Deserialize)]
| ^^^^^^^^^^^
|
= help: message: assertion failed: !cattrs.has_flatten()
error: proc-macro derive panicked
--> test_suite\tests\regression\issue1904.rs:7:10
|
7 | #[derive(Deserialize)]
| ^^^^^^^^^^^
|
= help: message: assertion failed: !cattrs.has_flatten()
This commit is contained in:
@@ -2380,6 +2380,56 @@ fn test_partially_untagged_enum_desugared() {
|
||||
);
|
||||
}
|
||||
|
||||
/// Regression test for https://github.com/serde-rs/serde/issues/1904
|
||||
#[test]
|
||||
fn test_enum_tuple_and_struct_with_flatten() {
|
||||
#[derive(Serialize, Deserialize, PartialEq, Debug)]
|
||||
enum Outer {
|
||||
Tuple(f64, i32),
|
||||
Flatten {
|
||||
#[serde(flatten)]
|
||||
nested: Nested,
|
||||
},
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, PartialEq, Debug)]
|
||||
struct Nested {
|
||||
a: i32,
|
||||
b: i32,
|
||||
}
|
||||
|
||||
assert_tokens(
|
||||
&Outer::Tuple(1.2, 3),
|
||||
&[
|
||||
Token::TupleVariant {
|
||||
name: "Outer",
|
||||
variant: "Tuple",
|
||||
len: 2,
|
||||
},
|
||||
Token::F64(1.2),
|
||||
Token::I32(3),
|
||||
Token::TupleVariantEnd,
|
||||
],
|
||||
);
|
||||
assert_tokens(
|
||||
&Outer::Flatten {
|
||||
nested: Nested { a: 1, b: 2 },
|
||||
},
|
||||
&[
|
||||
Token::NewtypeVariant {
|
||||
name: "Outer",
|
||||
variant: "Flatten",
|
||||
},
|
||||
Token::Map { len: None },
|
||||
Token::Str("a"),
|
||||
Token::I32(1),
|
||||
Token::Str("b"),
|
||||
Token::I32(2),
|
||||
Token::MapEnd,
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_partially_untagged_internally_tagged_enum() {
|
||||
#[derive(Serialize, Deserialize, PartialEq, Debug)]
|
||||
|
||||
Reference in New Issue
Block a user