From c4f67e679ffa26ce4077aa70ed07257448342eac Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Sun, 27 Nov 2022 17:23:25 -0800 Subject: [PATCH] Add ui test of duplicate generics in remote derive --- test_suite/tests/ui/remote/double_generic.rs | 17 ++++++ .../tests/ui/remote/double_generic.stderr | 52 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 test_suite/tests/ui/remote/double_generic.rs create mode 100644 test_suite/tests/ui/remote/double_generic.stderr diff --git a/test_suite/tests/ui/remote/double_generic.rs b/test_suite/tests/ui/remote/double_generic.rs new file mode 100644 index 000000000..0e286a91e --- /dev/null +++ b/test_suite/tests/ui/remote/double_generic.rs @@ -0,0 +1,17 @@ +use serde_derive::{Deserialize, Serialize}; + +mod remote { + pub struct Struct { + pub t: T, + pub u: U, + } +} + +#[derive(Serialize, Deserialize)] +#[serde(remote = "remote::StructGeneric")] +struct StructDef { + t: u8, + u: U, +} + +fn main() {} diff --git a/test_suite/tests/ui/remote/double_generic.stderr b/test_suite/tests/ui/remote/double_generic.stderr new file mode 100644 index 000000000..1a65f1009 --- /dev/null +++ b/test_suite/tests/ui/remote/double_generic.stderr @@ -0,0 +1,52 @@ +error: expected one of `:`, `@`, or `|`, found `>` + --> tests/ui/remote/double_generic.rs:12:19 + | +12 | struct StructDef { + | ^ expected one of `:`, `@`, or `|` + +error: expected one of `!`, `)`, `,`, or `::`, found `<` + --> tests/ui/remote/double_generic.rs:12:17 + | +11 | #[serde(remote = "remote::StructGeneric")] + | - + | | + | expected one of `!`, `)`, `,`, or `::` + | help: missing `,` +12 | struct StructDef { + | ^ unexpected token + +error: proc-macro derive produced unparseable tokens + --> tests/ui/remote/double_generic.rs:10:10 + | +10 | #[derive(Serialize, Deserialize)] + | ^^^^^^^^^ + +error: expected one of `!`, `+`, `,`, `::`, or `>`, found `<` + --> tests/ui/remote/double_generic.rs:12:17 + | +10 | #[derive(Serialize, Deserialize)] + | ----------- + | | + | while parsing this item list starting here + | the item list ends here +11 | #[serde(remote = "remote::StructGeneric")] + | - expected one of `!`, `+`, `,`, `::`, or `>` +12 | struct StructDef { + | ^ unexpected token + | +help: you might have meant to end the type parameters here + | +11 | #[serde(remote = "remote::StructGeneric">)] + | + + +error: proc-macro derive produced unparseable tokens + --> tests/ui/remote/double_generic.rs:10:21 + | +10 | #[derive(Serialize, Deserialize)] + | ^^^^^^^^^^^ + +error[E0412]: cannot find type `StructGeneric` in module `remote` + --> tests/ui/remote/double_generic.rs:11:18 + | +11 | #[serde(remote = "remote::StructGeneric")] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in `remote`