Add tests of #[serde(default)] attribute for units and unions
This commit is contained in:
parent
28a092261b
commit
21c7fd1bd5
9
test_suite/tests/ui/default-attribute/union.rs
Normal file
9
test_suite/tests/ui/default-attribute/union.rs
Normal file
@ -0,0 +1,9 @@
|
||||
use serde_derive::Deserialize;
|
||||
|
||||
#[derive(Deserialize)]
|
||||
#[serde(default)]
|
||||
union Union {
|
||||
f: u8,
|
||||
}
|
||||
|
||||
fn main() {}
|
14
test_suite/tests/ui/default-attribute/union.stderr
Normal file
14
test_suite/tests/ui/default-attribute/union.stderr
Normal file
@ -0,0 +1,14 @@
|
||||
error: #[serde(default)] can only be used on structs
|
||||
--> tests/ui/default-attribute/union.rs:4:9
|
||||
|
|
||||
4 | #[serde(default)]
|
||||
| ^^^^^^^
|
||||
|
||||
error: Serde does not support derive for unions
|
||||
--> tests/ui/default-attribute/union.rs:4:1
|
||||
|
|
||||
4 | / #[serde(default)]
|
||||
5 | | union Union {
|
||||
6 | | f: u8,
|
||||
7 | | }
|
||||
| |_^
|
9
test_suite/tests/ui/default-attribute/union_path.rs
Normal file
9
test_suite/tests/ui/default-attribute/union_path.rs
Normal file
@ -0,0 +1,9 @@
|
||||
use serde_derive::Deserialize;
|
||||
|
||||
#[derive(Deserialize)]
|
||||
#[serde(default = "default_u")]
|
||||
union Union {
|
||||
f: u8,
|
||||
}
|
||||
|
||||
fn main() {}
|
14
test_suite/tests/ui/default-attribute/union_path.stderr
Normal file
14
test_suite/tests/ui/default-attribute/union_path.stderr
Normal file
@ -0,0 +1,14 @@
|
||||
error: #[serde(default = "...")] can only be used on structs
|
||||
--> tests/ui/default-attribute/union_path.rs:4:9
|
||||
|
|
||||
4 | #[serde(default = "default_u")]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: Serde does not support derive for unions
|
||||
--> tests/ui/default-attribute/union_path.rs:4:1
|
||||
|
|
||||
4 | / #[serde(default = "default_u")]
|
||||
5 | | union Union {
|
||||
6 | | f: u8,
|
||||
7 | | }
|
||||
| |_^
|
7
test_suite/tests/ui/default-attribute/unit.rs
Normal file
7
test_suite/tests/ui/default-attribute/unit.rs
Normal file
@ -0,0 +1,7 @@
|
||||
use serde_derive::Deserialize;
|
||||
|
||||
#[derive(Deserialize)]
|
||||
#[serde(default)]
|
||||
struct Unit;
|
||||
|
||||
fn main() {}
|
7
test_suite/tests/ui/default-attribute/unit.stderr
Normal file
7
test_suite/tests/ui/default-attribute/unit.stderr
Normal file
@ -0,0 +1,7 @@
|
||||
error: #[serde(default)] can only be used on structs that have fields
|
||||
--> tests/ui/default-attribute/unit.rs:3:10
|
||||
|
|
||||
3 | #[derive(Deserialize)]
|
||||
| ^^^^^^^^^^^
|
||||
|
|
||||
= note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
|
7
test_suite/tests/ui/default-attribute/unit_path.rs
Normal file
7
test_suite/tests/ui/default-attribute/unit_path.rs
Normal file
@ -0,0 +1,7 @@
|
||||
use serde_derive::Deserialize;
|
||||
|
||||
#[derive(Deserialize)]
|
||||
#[serde(default = "default_u")]
|
||||
struct Unit;
|
||||
|
||||
fn main() {}
|
5
test_suite/tests/ui/default-attribute/unit_path.stderr
Normal file
5
test_suite/tests/ui/default-attribute/unit_path.stderr
Normal file
@ -0,0 +1,5 @@
|
||||
error: #[serde(default = "...")] can only be used on structs that have fields
|
||||
--> tests/ui/default-attribute/unit_path.rs:4:9
|
||||
|
|
||||
4 | #[serde(default = "default_u")]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^
|
Loading…
x
Reference in New Issue
Block a user