diff --git a/test_suite/tests/ui/default-attribute/enum_path.rs b/test_suite/tests/ui/default-attribute/enum_path.rs new file mode 100644 index 00000000..3c1ff45b --- /dev/null +++ b/test_suite/tests/ui/default-attribute/enum_path.rs @@ -0,0 +1,8 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Deserialize)] +#[serde(default = "default_e")] +enum E { + S { f: u8 }, +} diff --git a/test_suite/tests/ui/default-attribute/enum_path.stderr b/test_suite/tests/ui/default-attribute/enum_path.stderr new file mode 100644 index 00000000..61e36f68 --- /dev/null +++ b/test_suite/tests/ui/default-attribute/enum_path.stderr @@ -0,0 +1,8 @@ +error: #[serde(default = "...")] can only be used on structs with named fields + --> $DIR/enum_path.rs:6:1 + | +6 | enum E { + | ^^^^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/default-attribute/nameless_struct_fields_path.rs b/test_suite/tests/ui/default-attribute/nameless_struct_fields_path.rs new file mode 100644 index 00000000..3dd82f71 --- /dev/null +++ b/test_suite/tests/ui/default-attribute/nameless_struct_fields_path.rs @@ -0,0 +1,8 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Deserialize)] +#[serde(default = "default_t")] +struct T(u8, u8); + +fn main() {} diff --git a/test_suite/tests/ui/default-attribute/nameless_struct_fields_path.stderr b/test_suite/tests/ui/default-attribute/nameless_struct_fields_path.stderr new file mode 100644 index 00000000..301e8640 --- /dev/null +++ b/test_suite/tests/ui/default-attribute/nameless_struct_fields_path.stderr @@ -0,0 +1,8 @@ +error: #[serde(default = "...")] can only be used on structs with named fields + --> $DIR/nameless_struct_fields_path.rs:6:9 + | +6 | struct T(u8, u8); + | ^^^^^^^^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/enum-representation/content-no-tag.rs b/test_suite/tests/ui/enum-representation/content-no-tag.rs new file mode 100644 index 00000000..0506aef4 --- /dev/null +++ b/test_suite/tests/ui/enum-representation/content-no-tag.rs @@ -0,0 +1,11 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +#[serde(content = "c")] +enum E { + A(u8), + B(String), +} + +fn main() {} diff --git a/test_suite/tests/ui/enum-representation/content-no-tag.stderr b/test_suite/tests/ui/enum-representation/content-no-tag.stderr new file mode 100644 index 00000000..0f05eb9f --- /dev/null +++ b/test_suite/tests/ui/enum-representation/content-no-tag.stderr @@ -0,0 +1,8 @@ +error: #[serde(tag = "...", content = "...")] must be used together + --> $DIR/content-no-tag.rs:5:9 + | +5 | #[serde(content = "c")] + | ^^^^^^^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/enum-representation/untagged-and-adjacent.rs b/test_suite/tests/ui/enum-representation/untagged-and-adjacent.rs new file mode 100644 index 00000000..3254735d --- /dev/null +++ b/test_suite/tests/ui/enum-representation/untagged-and-adjacent.rs @@ -0,0 +1,12 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +#[serde(untagged)] +#[serde(tag = "t", content = "c")] +enum E { + A(u8), + B(String), +} + +fn main() {} diff --git a/test_suite/tests/ui/enum-representation/untagged-and-adjacent.stderr b/test_suite/tests/ui/enum-representation/untagged-and-adjacent.stderr new file mode 100644 index 00000000..8c3d93f9 --- /dev/null +++ b/test_suite/tests/ui/enum-representation/untagged-and-adjacent.stderr @@ -0,0 +1,20 @@ +error: untagged enum cannot have #[serde(tag = "...", content = "...")] + --> $DIR/untagged-and-adjacent.rs:5:9 + | +5 | #[serde(untagged)] + | ^^^^^^^^ + +error: untagged enum cannot have #[serde(tag = "...", content = "...")] + --> $DIR/untagged-and-adjacent.rs:6:9 + | +6 | #[serde(tag = "t", content = "c")] + | ^^^ + +error: untagged enum cannot have #[serde(tag = "...", content = "...")] + --> $DIR/untagged-and-adjacent.rs:6:20 + | +6 | #[serde(tag = "t", content = "c")] + | ^^^^^^^ + +error: aborting due to 3 previous errors + diff --git a/test_suite/tests/ui/enum-representation/untagged-and-content.rs b/test_suite/tests/ui/enum-representation/untagged-and-content.rs new file mode 100644 index 00000000..410a84be --- /dev/null +++ b/test_suite/tests/ui/enum-representation/untagged-and-content.rs @@ -0,0 +1,12 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +#[serde(untagged)] +#[serde(content = "c")] +enum E { + A(u8), + B(String), +} + +fn main() {} diff --git a/test_suite/tests/ui/enum-representation/untagged-and-content.stderr b/test_suite/tests/ui/enum-representation/untagged-and-content.stderr new file mode 100644 index 00000000..a2b0fc0b --- /dev/null +++ b/test_suite/tests/ui/enum-representation/untagged-and-content.stderr @@ -0,0 +1,14 @@ +error: untagged enum cannot have #[serde(content = "...")] + --> $DIR/untagged-and-content.rs:5:9 + | +5 | #[serde(untagged)] + | ^^^^^^^^ + +error: untagged enum cannot have #[serde(content = "...")] + --> $DIR/untagged-and-content.rs:6:9 + | +6 | #[serde(content = "c")] + | ^^^^^^^ + +error: aborting due to 2 previous errors + diff --git a/test_suite/tests/ui/expected-string/boolean.rs b/test_suite/tests/ui/expected-string/boolean.rs new file mode 100644 index 00000000..68744bf3 --- /dev/null +++ b/test_suite/tests/ui/expected-string/boolean.rs @@ -0,0 +1,10 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +struct S { + #[serde(rename = true)] + boolean: (), +} + +fn main() {} diff --git a/test_suite/tests/ui/expected-string/boolean.stderr b/test_suite/tests/ui/expected-string/boolean.stderr new file mode 100644 index 00000000..08ec5caa --- /dev/null +++ b/test_suite/tests/ui/expected-string/boolean.stderr @@ -0,0 +1,8 @@ +error: expected serde rename attribute to be a string: `rename = "..."` + --> $DIR/boolean.rs:6:22 + | +6 | #[serde(rename = true)] + | ^^^^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/expected-string/byte_character.rs b/test_suite/tests/ui/expected-string/byte_character.rs new file mode 100644 index 00000000..69c3e8e4 --- /dev/null +++ b/test_suite/tests/ui/expected-string/byte_character.rs @@ -0,0 +1,10 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +struct S { + #[serde(rename = b'a')] + byte_character: (), +} + +fn main() {} diff --git a/test_suite/tests/ui/expected-string/byte_character.stderr b/test_suite/tests/ui/expected-string/byte_character.stderr new file mode 100644 index 00000000..7e271f9a --- /dev/null +++ b/test_suite/tests/ui/expected-string/byte_character.stderr @@ -0,0 +1,8 @@ +error: expected serde rename attribute to be a string: `rename = "..."` + --> $DIR/byte_character.rs:6:22 + | +6 | #[serde(rename = b'a')] + | ^^^^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/expected-string/byte_string.rs b/test_suite/tests/ui/expected-string/byte_string.rs new file mode 100644 index 00000000..6fa365bf --- /dev/null +++ b/test_suite/tests/ui/expected-string/byte_string.rs @@ -0,0 +1,10 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +struct S { + #[serde(rename = b"byte string")] + byte_string: (), +} + +fn main() {} diff --git a/test_suite/tests/ui/expected-string/byte_string.stderr b/test_suite/tests/ui/expected-string/byte_string.stderr new file mode 100644 index 00000000..44e9dd7f --- /dev/null +++ b/test_suite/tests/ui/expected-string/byte_string.stderr @@ -0,0 +1,8 @@ +error: expected serde rename attribute to be a string: `rename = "..."` + --> $DIR/byte_string.rs:6:22 + | +6 | #[serde(rename = b"byte string")] + | ^^^^^^^^^^^^^^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/expected-string/character.rs b/test_suite/tests/ui/expected-string/character.rs new file mode 100644 index 00000000..4955a890 --- /dev/null +++ b/test_suite/tests/ui/expected-string/character.rs @@ -0,0 +1,10 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +struct S { + #[serde(rename = 'a')] + character: (), +} + +fn main() {} diff --git a/test_suite/tests/ui/expected-string/character.stderr b/test_suite/tests/ui/expected-string/character.stderr new file mode 100644 index 00000000..dca61053 --- /dev/null +++ b/test_suite/tests/ui/expected-string/character.stderr @@ -0,0 +1,8 @@ +error: expected serde rename attribute to be a string: `rename = "..."` + --> $DIR/character.rs:6:22 + | +6 | #[serde(rename = 'a')] + | ^^^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/expected-string/float.rs b/test_suite/tests/ui/expected-string/float.rs new file mode 100644 index 00000000..c7d895e5 --- /dev/null +++ b/test_suite/tests/ui/expected-string/float.rs @@ -0,0 +1,10 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +struct S { + #[serde(rename = 3.14)] + float: (), +} + +fn main() {} diff --git a/test_suite/tests/ui/expected-string/float.stderr b/test_suite/tests/ui/expected-string/float.stderr new file mode 100644 index 00000000..a89eb3d3 --- /dev/null +++ b/test_suite/tests/ui/expected-string/float.stderr @@ -0,0 +1,8 @@ +error: expected serde rename attribute to be a string: `rename = "..."` + --> $DIR/float.rs:6:22 + | +6 | #[serde(rename = 3.14)] + | ^^^^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/expected-string/integer.rs b/test_suite/tests/ui/expected-string/integer.rs new file mode 100644 index 00000000..664483b4 --- /dev/null +++ b/test_suite/tests/ui/expected-string/integer.rs @@ -0,0 +1,10 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +struct S { + #[serde(rename = 100)] + integer: (), +} + +fn main() {} diff --git a/test_suite/tests/ui/expected-string/integer.stderr b/test_suite/tests/ui/expected-string/integer.stderr new file mode 100644 index 00000000..2df6df0d --- /dev/null +++ b/test_suite/tests/ui/expected-string/integer.stderr @@ -0,0 +1,8 @@ +error: expected serde rename attribute to be a string: `rename = "..."` + --> $DIR/integer.rs:6:22 + | +6 | #[serde(rename = 100)] + | ^^^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/identifier/other_untagged.rs b/test_suite/tests/ui/identifier/other_untagged.rs new file mode 100644 index 00000000..15d12b6e --- /dev/null +++ b/test_suite/tests/ui/identifier/other_untagged.rs @@ -0,0 +1,11 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Deserialize)] +#[serde(untagged)] +enum F { + #[serde(other)] + Other, +} + +fn main() {} diff --git a/test_suite/tests/ui/identifier/other_untagged.stderr b/test_suite/tests/ui/identifier/other_untagged.stderr new file mode 100644 index 00000000..5b562cbd --- /dev/null +++ b/test_suite/tests/ui/identifier/other_untagged.stderr @@ -0,0 +1,9 @@ +error: #[serde(other)] cannot appear on untagged enum + --> $DIR/other_untagged.rs:7:5 + | +7 | / #[serde(other)] +8 | | Other, + | |_________^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/identifier/other_variant.rs b/test_suite/tests/ui/identifier/other_variant.rs new file mode 100644 index 00000000..cbfe9f3e --- /dev/null +++ b/test_suite/tests/ui/identifier/other_variant.rs @@ -0,0 +1,11 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Deserialize)] +#[serde(variant_identifier)] +enum F { + #[serde(other)] + Other, +} + +fn main() {} diff --git a/test_suite/tests/ui/identifier/other_variant.stderr b/test_suite/tests/ui/identifier/other_variant.stderr new file mode 100644 index 00000000..7fb851c8 --- /dev/null +++ b/test_suite/tests/ui/identifier/other_variant.stderr @@ -0,0 +1,9 @@ +error: #[serde(other)] may not be used on a variant identifier + --> $DIR/other_variant.rs:7:5 + | +7 | / #[serde(other)] +8 | | Other, + | |_________^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/malformed/bound.rs b/test_suite/tests/ui/malformed/bound.rs new file mode 100644 index 00000000..b6816b38 --- /dev/null +++ b/test_suite/tests/ui/malformed/bound.rs @@ -0,0 +1,10 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +struct S { + #[serde(bound(unknown))] + x: (), +} + +fn main() {} diff --git a/test_suite/tests/ui/malformed/bound.stderr b/test_suite/tests/ui/malformed/bound.stderr new file mode 100644 index 00000000..0fb80c8b --- /dev/null +++ b/test_suite/tests/ui/malformed/bound.stderr @@ -0,0 +1,8 @@ +error: malformed bound attribute, expected `bound(serialize = ..., deserialize = ...)` + --> $DIR/bound.rs:6:19 + | +6 | #[serde(bound(unknown))] + | ^^^^^^^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/malformed/rename.rs b/test_suite/tests/ui/malformed/rename.rs new file mode 100644 index 00000000..32d86217 --- /dev/null +++ b/test_suite/tests/ui/malformed/rename.rs @@ -0,0 +1,10 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +struct S { + #[serde(rename(unknown))] + x: (), +} + +fn main() {} diff --git a/test_suite/tests/ui/malformed/rename.stderr b/test_suite/tests/ui/malformed/rename.stderr new file mode 100644 index 00000000..58765222 --- /dev/null +++ b/test_suite/tests/ui/malformed/rename.stderr @@ -0,0 +1,8 @@ +error: malformed rename attribute, expected `rename(serialize = ..., deserialize = ...)` + --> $DIR/rename.rs:6:20 + | +6 | #[serde(rename(unknown))] + | ^^^^^^^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/identifier/serialize.rs b/test_suite/tests/ui/precondition/serialize_field_identifier.rs similarity index 100% rename from test_suite/tests/ui/identifier/serialize.rs rename to test_suite/tests/ui/precondition/serialize_field_identifier.rs diff --git a/test_suite/tests/ui/identifier/serialize.stderr b/test_suite/tests/ui/precondition/serialize_field_identifier.stderr similarity index 80% rename from test_suite/tests/ui/identifier/serialize.stderr rename to test_suite/tests/ui/precondition/serialize_field_identifier.stderr index 474cd57d..50726c34 100644 --- a/test_suite/tests/ui/identifier/serialize.stderr +++ b/test_suite/tests/ui/precondition/serialize_field_identifier.stderr @@ -1,5 +1,5 @@ error: field identifiers cannot be serialized - --> $DIR/serialize.rs:5:1 + --> $DIR/serialize_field_identifier.rs:5:1 | 5 | / #[serde(field_identifier)] 6 | | enum F { diff --git a/test_suite/tests/ui/precondition/serialize_variant_identifier.rs b/test_suite/tests/ui/precondition/serialize_variant_identifier.rs new file mode 100644 index 00000000..7abfc209 --- /dev/null +++ b/test_suite/tests/ui/precondition/serialize_variant_identifier.rs @@ -0,0 +1,11 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +#[serde(variant_identifier)] +enum F { + A, + B, +} + +fn main() {} diff --git a/test_suite/tests/ui/precondition/serialize_variant_identifier.stderr b/test_suite/tests/ui/precondition/serialize_variant_identifier.stderr new file mode 100644 index 00000000..d5ef4650 --- /dev/null +++ b/test_suite/tests/ui/precondition/serialize_variant_identifier.stderr @@ -0,0 +1,12 @@ +error: variant identifiers cannot be serialized + --> $DIR/serialize_variant_identifier.rs:5:1 + | +5 | / #[serde(variant_identifier)] +6 | | enum F { +7 | | A, +8 | | B, +9 | | } + | |_^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/rename/container_unknown_rename_rule.rs b/test_suite/tests/ui/rename/container_unknown_rename_rule.rs new file mode 100644 index 00000000..3d3a518e --- /dev/null +++ b/test_suite/tests/ui/rename/container_unknown_rename_rule.rs @@ -0,0 +1,12 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +#[serde(rename_all = "abc")] +struct S { + name: u8, + long_name: u8, + very_long_name: u8, +} + +fn main() {} diff --git a/test_suite/tests/ui/rename/container_unknown_rename_rule.stderr b/test_suite/tests/ui/rename/container_unknown_rename_rule.stderr new file mode 100644 index 00000000..20ad1d7a --- /dev/null +++ b/test_suite/tests/ui/rename/container_unknown_rename_rule.stderr @@ -0,0 +1,8 @@ +error: unknown rename rule for #[serde(rename_all = "abc")] + --> $DIR/container_unknown_rename_rule.rs:5:22 + | +5 | #[serde(rename_all = "abc")] + | ^^^^^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/rename/variant_unknown_rename_rule.rs b/test_suite/tests/ui/rename/variant_unknown_rename_rule.rs new file mode 100644 index 00000000..700a56e8 --- /dev/null +++ b/test_suite/tests/ui/rename/variant_unknown_rename_rule.rs @@ -0,0 +1,14 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +enum S { + #[serde(rename_all = "abc")] + V { + name: u8, + long_name: u8, + very_long_name: u8, + }, +} + +fn main() {} diff --git a/test_suite/tests/ui/rename/variant_unknown_rename_rule.stderr b/test_suite/tests/ui/rename/variant_unknown_rename_rule.stderr new file mode 100644 index 00000000..079c6145 --- /dev/null +++ b/test_suite/tests/ui/rename/variant_unknown_rename_rule.stderr @@ -0,0 +1,8 @@ +error: unknown rename rule for #[serde(rename_all = "abc")] + --> $DIR/variant_unknown_rename_rule.rs:6:26 + | +6 | #[serde(rename_all = "abc")] + | ^^^^^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/transparent/enum.rs b/test_suite/tests/ui/transparent/enum.rs new file mode 100644 index 00000000..54ce5b5d --- /dev/null +++ b/test_suite/tests/ui/transparent/enum.rs @@ -0,0 +1,8 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +#[serde(transparent)] +enum E {} + +fn main() {} diff --git a/test_suite/tests/ui/transparent/enum.stderr b/test_suite/tests/ui/transparent/enum.stderr new file mode 100644 index 00000000..2cdc6631 --- /dev/null +++ b/test_suite/tests/ui/transparent/enum.stderr @@ -0,0 +1,9 @@ +error: #[serde(transparent)] is not allowed on an enum + --> $DIR/enum.rs:5:1 + | +5 | / #[serde(transparent)] +6 | | enum E {} + | |_________^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/transparent/unit_struct.rs b/test_suite/tests/ui/transparent/unit_struct.rs new file mode 100644 index 00000000..cc08d49c --- /dev/null +++ b/test_suite/tests/ui/transparent/unit_struct.rs @@ -0,0 +1,8 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +#[serde(transparent)] +struct S; + +fn main() {} diff --git a/test_suite/tests/ui/transparent/unit_struct.stderr b/test_suite/tests/ui/transparent/unit_struct.stderr new file mode 100644 index 00000000..0f921aaa --- /dev/null +++ b/test_suite/tests/ui/transparent/unit_struct.stderr @@ -0,0 +1,9 @@ +error: #[serde(transparent)] is not allowed on a unit struct + --> $DIR/unit_struct.rs:5:1 + | +5 | / #[serde(transparent)] +6 | | struct S; + | |_________^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/transparent/with_from.rs b/test_suite/tests/ui/transparent/with_from.rs new file mode 100644 index 00000000..42863eb0 --- /dev/null +++ b/test_suite/tests/ui/transparent/with_from.rs @@ -0,0 +1,10 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +#[serde(transparent, from = "u64")] +struct S { + a: u8, +} + +fn main() {} diff --git a/test_suite/tests/ui/transparent/with_from.stderr b/test_suite/tests/ui/transparent/with_from.stderr new file mode 100644 index 00000000..40efc720 --- /dev/null +++ b/test_suite/tests/ui/transparent/with_from.stderr @@ -0,0 +1,11 @@ +error: #[serde(transparent)] is not allowed with #[serde(from = "...")] + --> $DIR/with_from.rs:5:1 + | +5 | / #[serde(transparent, from = "u64")] +6 | | struct S { +7 | | a: u8, +8 | | } + | |_^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/transparent/with_into.rs b/test_suite/tests/ui/transparent/with_into.rs new file mode 100644 index 00000000..e9e85ce7 --- /dev/null +++ b/test_suite/tests/ui/transparent/with_into.rs @@ -0,0 +1,10 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +#[serde(transparent, into = "u64")] +struct S { + a: u8, +} + +fn main() {} diff --git a/test_suite/tests/ui/transparent/with_into.stderr b/test_suite/tests/ui/transparent/with_into.stderr new file mode 100644 index 00000000..057d0c9c --- /dev/null +++ b/test_suite/tests/ui/transparent/with_into.stderr @@ -0,0 +1,11 @@ +error: #[serde(transparent)] is not allowed with #[serde(into = "...")] + --> $DIR/with_into.rs:5:1 + | +5 | / #[serde(transparent, into = "u64")] +6 | | struct S { +7 | | a: u8, +8 | | } + | |_^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/unexpected-literal/container.rs b/test_suite/tests/ui/unexpected-literal/container.rs new file mode 100644 index 00000000..be18cf66 --- /dev/null +++ b/test_suite/tests/ui/unexpected-literal/container.rs @@ -0,0 +1,8 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +#[serde("literal")] +struct S; + +fn main() {} diff --git a/test_suite/tests/ui/unexpected-literal/container.stderr b/test_suite/tests/ui/unexpected-literal/container.stderr new file mode 100644 index 00000000..55103726 --- /dev/null +++ b/test_suite/tests/ui/unexpected-literal/container.stderr @@ -0,0 +1,8 @@ +error: unexpected literal in serde container attribute + --> $DIR/container.rs:5:9 + | +5 | #[serde("literal")] + | ^^^^^^^^^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/unexpected-literal/field.rs b/test_suite/tests/ui/unexpected-literal/field.rs new file mode 100644 index 00000000..94bfb16a --- /dev/null +++ b/test_suite/tests/ui/unexpected-literal/field.rs @@ -0,0 +1,10 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +struct S { + #[serde("literal")] + x: (), +} + +fn main() {} diff --git a/test_suite/tests/ui/unexpected-literal/field.stderr b/test_suite/tests/ui/unexpected-literal/field.stderr new file mode 100644 index 00000000..b8e7b7cb --- /dev/null +++ b/test_suite/tests/ui/unexpected-literal/field.stderr @@ -0,0 +1,8 @@ +error: unexpected literal in serde field attribute + --> $DIR/field.rs:6:13 + | +6 | #[serde("literal")] + | ^^^^^^^^^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/unexpected-literal/variant.rs b/test_suite/tests/ui/unexpected-literal/variant.rs new file mode 100644 index 00000000..ae8b8a80 --- /dev/null +++ b/test_suite/tests/ui/unexpected-literal/variant.rs @@ -0,0 +1,10 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Serialize)] +enum E { + #[serde("literal")] + V, +} + +fn main() {} diff --git a/test_suite/tests/ui/unexpected-literal/variant.stderr b/test_suite/tests/ui/unexpected-literal/variant.stderr new file mode 100644 index 00000000..ba2c841e --- /dev/null +++ b/test_suite/tests/ui/unexpected-literal/variant.stderr @@ -0,0 +1,8 @@ +error: unexpected literal in serde variant attribute + --> $DIR/variant.rs:6:13 + | +6 | #[serde("literal")] + | ^^^^^^^^^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/unsupported/union_de.rs b/test_suite/tests/ui/unsupported/union_de.rs new file mode 100644 index 00000000..19e0a437 --- /dev/null +++ b/test_suite/tests/ui/unsupported/union_de.rs @@ -0,0 +1,10 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Deserialize)] +union Union { + x: u8, + y: (), +} + +fn main() {} diff --git a/test_suite/tests/ui/unsupported/union_de.stderr b/test_suite/tests/ui/unsupported/union_de.stderr new file mode 100644 index 00000000..0b087062 --- /dev/null +++ b/test_suite/tests/ui/unsupported/union_de.stderr @@ -0,0 +1,11 @@ +error: Serde does not support derive for unions + --> $DIR/union_de.rs:5:1 + | +5 | / union Union { +6 | | x: u8, +7 | | y: (), +8 | | } + | |_^ + +error: aborting due to previous error + diff --git a/test_suite/tests/ui/unsupported/union_ser.rs b/test_suite/tests/ui/unsupported/union_ser.rs new file mode 100644 index 00000000..19e0a437 --- /dev/null +++ b/test_suite/tests/ui/unsupported/union_ser.rs @@ -0,0 +1,10 @@ +#[macro_use] +extern crate serde_derive; + +#[derive(Deserialize)] +union Union { + x: u8, + y: (), +} + +fn main() {} diff --git a/test_suite/tests/ui/unsupported/union_ser.stderr b/test_suite/tests/ui/unsupported/union_ser.stderr new file mode 100644 index 00000000..0d808b88 --- /dev/null +++ b/test_suite/tests/ui/unsupported/union_ser.stderr @@ -0,0 +1,11 @@ +error: Serde does not support derive for unions + --> $DIR/union_ser.rs:5:1 + | +5 | / union Union { +6 | | x: u8, +7 | | y: (), +8 | | } + | |_^ + +error: aborting due to previous error +