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)]
        |          +
This commit is contained in:
David Tolnay 2023-08-20 21:35:08 -07:00
parent d593215ef7
commit 870925d503
No known key found for this signature in database
GPG Key ID: F9BA143B95FF6D82

View File

@ -127,7 +127,7 @@ struct Test {
enum_concrete: remote::EnumGeneric<u8>,
#[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,