From 870925d503e208606b947d4e359d9723d0bde8da Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Sun, 20 Aug 2023 21:35:08 -0700 Subject: [PATCH] Add repro of issue 2591 error[E0507]: cannot move out of `*__self` which is behind a shared reference --> test_suite/tests/test_remote.rs:210:10 | 210 | #[derive(Serialize, Deserialize)] | ^^^^^^^^^ | | | data moved here | move occurs because `unrecognized` has type `ErrorKind`, which does not implement the `Copy` trait | = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) help: consider borrowing here | 210 | #[derive(&Serialize, Deserialize)] | + --- test_suite/tests/test_remote.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/test_suite/tests/test_remote.rs b/test_suite/tests/test_remote.rs index 7069cf9b..c1f152eb 100644 --- a/test_suite/tests/test_remote.rs +++ b/test_suite/tests/test_remote.rs @@ -127,7 +127,7 @@ struct Test { enum_concrete: remote::EnumGeneric, #[serde(with = "ErrorKindDef")] - io_error_kind: std::io::ErrorKind, + io_error_kind: ErrorKind, } #[derive(Serialize, Deserialize)] @@ -200,8 +200,16 @@ enum EnumConcrete { Variant(u8), } +#[derive(Debug)] +enum ErrorKind { + NotFound, + PermissionDenied, + #[allow(dead_code)] + ConnectionRefused, +} + #[derive(Serialize, Deserialize)] -#[serde(remote = "std::io::ErrorKind")] +#[serde(remote = "ErrorKind")] #[non_exhaustive] enum ErrorKindDef { NotFound,