Skip to content

Commit 61698c0

Browse files
committed
Add tests of #[serde(default)] attribute for units and unions
1 parent 05a5b7e commit 61698c0

File tree

8 files changed

+72
-0
lines changed

8 files changed

+72
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
use serde_derive::Deserialize;
2+
3+
#[derive(Deserialize)]
4+
#[serde(default)]
5+
union Union {
6+
f: u8,
7+
}
8+
9+
fn main() {}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
error: #[serde(default)] can only be used on structs
2+
--> tests/ui/default-attribute/union.rs:4:9
3+
|
4+
4 | #[serde(default)]
5+
| ^^^^^^^
6+
7+
error: Serde does not support derive for unions
8+
--> tests/ui/default-attribute/union.rs:4:1
9+
|
10+
4 | / #[serde(default)]
11+
5 | | union Union {
12+
6 | | f: u8,
13+
7 | | }
14+
| |_^
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
use serde_derive::Deserialize;
2+
3+
#[derive(Deserialize)]
4+
#[serde(default = "default_u")]
5+
union Union {
6+
f: u8,
7+
}
8+
9+
fn main() {}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
error: #[serde(default = "...")] can only be used on structs
2+
--> tests/ui/default-attribute/union_path.rs:4:9
3+
|
4+
4 | #[serde(default = "default_u")]
5+
| ^^^^^^^^^^^^^^^^^^^^^
6+
7+
error: Serde does not support derive for unions
8+
--> tests/ui/default-attribute/union_path.rs:4:1
9+
|
10+
4 | / #[serde(default = "default_u")]
11+
5 | | union Union {
12+
6 | | f: u8,
13+
7 | | }
14+
| |_^
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
use serde_derive::Deserialize;
2+
3+
#[derive(Deserialize)]
4+
#[serde(default)]
5+
struct Unit;
6+
7+
fn main() {}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
error: #[serde(default)] can only be used on structs that have fields
2+
--> tests/ui/default-attribute/unit.rs:3:10
3+
|
4+
3 | #[derive(Deserialize)]
5+
| ^^^^^^^^^^^
6+
|
7+
= note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
use serde_derive::Deserialize;
2+
3+
#[derive(Deserialize)]
4+
#[serde(default = "default_u")]
5+
struct Unit;
6+
7+
fn main() {}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
error: #[serde(default = "...")] can only be used on structs that have fields
2+
--> tests/ui/default-attribute/unit_path.rs:4:9
3+
|
4+
4 | #[serde(default = "default_u")]
5+
| ^^^^^^^^^^^^^^^^^^^^^

0 commit comments

Comments
 (0)