Skip to content

Commit

Permalink
Add repro of issue 2591
Browse files Browse the repository at this point in the history
    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)]
        |          +
  • Loading branch information
dtolnay committed Aug 21, 2023
1 parent d593215 commit 870925d
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions test_suite/tests/test_remote.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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)]
Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit 870925d

Please sign in to comment.