Add tests of #[serde(default)] attribute for units and unions

This commit is contained in:
Mingun 2023-08-07 14:42:54 +05:00
parent 28a092261b
commit 21c7fd1bd5
8 changed files with 72 additions and 0 deletions

View File

@ -0,0 +1,9 @@
use serde_derive::Deserialize;
#[derive(Deserialize)]
#[serde(default)]
union Union {
f: u8,
}
fn main() {}

View 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 | | }
| |_^

View File

@ -0,0 +1,9 @@
use serde_derive::Deserialize;
#[derive(Deserialize)]
#[serde(default = "default_u")]
union Union {
f: u8,
}
fn main() {}

View 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 | | }
| |_^

View File

@ -0,0 +1,7 @@
use serde_derive::Deserialize;
#[derive(Deserialize)]
#[serde(default)]
struct Unit;
fn main() {}

View 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)

View File

@ -0,0 +1,7 @@
use serde_derive::Deserialize;
#[derive(Deserialize)]
#[serde(default = "default_u")]
struct Unit;
fn main() {}

View 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")]
| ^^^^^^^^^^^^^^^^^^^^^