[INFO] cloning repository https://github.com/EricDunaway/rust-launcher
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/EricDunaway/rust-launcher" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEricDunaway%2Frust-launcher", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEricDunaway%2Frust-launcher'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7a4d8b34be6c083b618754c2747df806c12e4db3
[INFO] checking EricDunaway/rust-launcher against e3d12f3322cb00126b2208c6b9df3ac4467951f5 for pr-159706
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEricDunaway%2Frust-launcher" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-2-tc2/source/.cargo/config
[INFO] started tweaking git repo https://github.com/EricDunaway/rust-launcher
[INFO] finished tweaking git repo https://github.com/EricDunaway/rust-launcher
[INFO] tweaked toml for git repo https://github.com/EricDunaway/rust-launcher written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/EricDunaway/rust-launcher on toolchain e3d12f3322cb00126b2208c6b9df3ac4467951f5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/EricDunaway/rust-launcher already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded proc-macro2 v1.0.15
[INFO] [stderr]   Downloaded toml v0.5.6
[INFO] [stderr]   Downloaded signal-hook-registry v1.2.0
[INFO] [stderr]   Downloaded slab v0.4.2
[INFO] [stderr]   Downloaded mio-uds v0.6.8
[INFO] [stderr]   Downloaded mio-named-pipes v0.1.6
[INFO] [stderr]   Downloaded pin-project-lite v0.1.5
[INFO] [stderr]   Downloaded socket2 v0.3.12
[INFO] [stderr]   Downloaded net2 v0.2.34
[INFO] [stderr]   Downloaded anyhow v1.0.31
[INFO] [stderr]   Downloaded miow v0.2.1
[INFO] [stderr]   Downloaded miow v0.3.4
[INFO] [stderr]   Downloaded bytes v0.5.4
[INFO] [stderr]   Downloaded arc-swap v0.4.6
[INFO] [stderr]   Downloaded syn v1.0.23
[INFO] [stderr]   Downloaded mio v0.6.22
[INFO] [stderr]   Downloaded tokio v0.2.21
[INFO] [stderr]   Downloaded libc v0.2.70
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3e059192786a300c15ea661ff41d2ddfa437ca9314c2193a5eb915ba89d0630b
[INFO] running `Command { std: "docker" "start" "3e059192786a300c15ea661ff41d2ddfa437ca9314c2193a5eb915ba89d0630b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3e059192786a300c15ea661ff41d2ddfa437ca9314c2193a5eb915ba89d0630b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3e059192786a300c15ea661ff41d2ddfa437ca9314c2193a5eb915ba89d0630b" "/opt/rustwide/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3e059192786a300c15ea661ff41d2ddfa437ca9314c2193a5eb915ba89d0630b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3e059192786a300c15ea661ff41d2ddfa437ca9314c2193a5eb915ba89d0630b" "/opt/rustwide/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.70
[INFO] [stderr]    Compiling proc-macro2 v1.0.15
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]    Compiling syn v1.0.23
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]    Compiling memchr v2.3.3
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]     Checking arc-swap v0.4.6
[INFO] [stderr]    Compiling anyhow v1.0.31
[INFO] [stderr]     Checking bytes v0.5.4
[INFO] [stderr]     Checking pin-project-lite v0.1.5
[INFO] [stderr]    Compiling quote v1.0.6
[INFO] [stderr]     Checking net2 v0.2.34
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking signal-hook-registry v1.2.0
[INFO] [stderr]     Checking mio v0.6.22
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]     Checking tokio v0.2.21
[INFO] [stderr]    Compiling serde_derive v1.0.110
[INFO] [stderr]     Checking serde v1.0.110
[INFO] [stderr]     Checking toml v0.5.6
[INFO] [stderr]     Checking launcher v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/config.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Deserialize, Serialize, Debug)]
[INFO] [stdout]   |          ^----------
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Deserialize` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Config`
[INFO] [stdout] 7 | pub struct Config<'a> {
[INFO] [stdout]   |            ------ `Config` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/config.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Deserialize, Serialize, Debug)]
[INFO] [stdout]   |                       ^--------
[INFO] [stdout]   |                       |
[INFO] [stdout]   |                       `Serialize` is not local
[INFO] [stdout]   |                       move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Config`
[INFO] [stdout] 7 | pub struct Config<'a> {
[INFO] [stdout]   |            ------ `Config` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/exec.rs:49:54
[INFO] [stdout]    |
[INFO] [stdout] 49 |                 .map(|x| -> ExecApp { ExecApp::from(x.borrow()) })
[INFO] [stdout]    |                                                      ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `App<'_>` does not implement `Borrow`, so calling `borrow` on `&App<'_>` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 49 -                 .map(|x| -> ExecApp { ExecApp::from(x.borrow()) })
[INFO] [stdout] 49 +                 .map(|x| -> ExecApp { ExecApp::from(x) })
[INFO] [stdout]    |
[INFO] [stdout] help: if you meant to clone `App<'_>`, implement `Clone` for it
[INFO] [stdout]   --> src/step.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 + #[derive(Clone)]
[INFO] [stdout]  7 | pub struct App<'a> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/step.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Deserialize, Serialize, Debug, Clone)]
[INFO] [stdout]   |          ^----------
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Deserialize` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_App`
[INFO] [stdout] 6 | pub struct App<'a> {
[INFO] [stdout]   |            --- `App` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/step.rs:5:23
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Deserialize, Serialize, Debug, Clone)]
[INFO] [stdout]   |                       ^--------
[INFO] [stdout]   |                       |
[INFO] [stdout]   |                       `Serialize` is not local
[INFO] [stdout]   |                       move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_App`
[INFO] [stdout] 6 | pub struct App<'a> {
[INFO] [stdout]   |            --- `App` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/step.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Deserialize, Serialize, Debug, Clone)]
[INFO] [stdout]    |          ^----------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Deserialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Step`
[INFO] [stdout] 24 | pub struct Step<'a> {
[INFO] [stdout]    |            ---- `Step` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/step.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Deserialize, Serialize, Debug, Clone)]
[INFO] [stdout]    |                       ^--------
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       `Serialize` is not local
[INFO] [stdout]    |                       move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Step`
[INFO] [stdout] 24 | pub struct Step<'a> {
[INFO] [stdout]    |            ---- `Step` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/config.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Deserialize, Serialize, Debug)]
[INFO] [stdout]   |          ^----------
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Deserialize` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Config`
[INFO] [stdout] 7 | pub struct Config<'a> {
[INFO] [stdout]   |            ------ `Config` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/config.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Deserialize, Serialize, Debug)]
[INFO] [stdout]   |                       ^--------
[INFO] [stdout]   |                       |
[INFO] [stdout]   |                       `Serialize` is not local
[INFO] [stdout]   |                       move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Config`
[INFO] [stdout] 7 | pub struct Config<'a> {
[INFO] [stdout]   |            ------ `Config` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.borrow()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/exec.rs:49:54
[INFO] [stdout]    |
[INFO] [stdout] 49 |                 .map(|x| -> ExecApp { ExecApp::from(x.borrow()) })
[INFO] [stdout]    |                                                      ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `App<'_>` does not implement `Borrow`, so calling `borrow` on `&App<'_>` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 49 -                 .map(|x| -> ExecApp { ExecApp::from(x.borrow()) })
[INFO] [stdout] 49 +                 .map(|x| -> ExecApp { ExecApp::from(x) })
[INFO] [stdout]    |
[INFO] [stdout] help: if you meant to clone `App<'_>`, implement `Clone` for it
[INFO] [stdout]   --> src/step.rs:6:1
[INFO] [stdout]    |
[INFO] [stdout]  6 + #[derive(Clone)]
[INFO] [stdout]  7 | pub struct App<'a> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/step.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Deserialize, Serialize, Debug, Clone)]
[INFO] [stdout]   |          ^----------
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Deserialize` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_App`
[INFO] [stdout] 6 | pub struct App<'a> {
[INFO] [stdout]   |            --- `App` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/step.rs:5:23
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Deserialize, Serialize, Debug, Clone)]
[INFO] [stdout]   |                       ^--------
[INFO] [stdout]   |                       |
[INFO] [stdout]   |                       `Serialize` is not local
[INFO] [stdout]   |                       move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_App`
[INFO] [stdout] 6 | pub struct App<'a> {
[INFO] [stdout]   |            --- `App` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/step.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Deserialize, Serialize, Debug, Clone)]
[INFO] [stdout]    |          ^----------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Deserialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Step`
[INFO] [stdout] 24 | pub struct Step<'a> {
[INFO] [stdout]    |            ---- `Step` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/step.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Deserialize, Serialize, Debug, Clone)]
[INFO] [stdout]    |                       ^--------
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       `Serialize` is not local
[INFO] [stdout]    |                       move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Step`
[INFO] [stdout] 24 | pub struct Step<'a> {
[INFO] [stdout]    |            ---- `Step` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.34s
[INFO] running `Command { std: "docker" "inspect" "3e059192786a300c15ea661ff41d2ddfa437ca9314c2193a5eb915ba89d0630b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3e059192786a300c15ea661ff41d2ddfa437ca9314c2193a5eb915ba89d0630b", kill_on_drop: false }`
[INFO] [stdout] 3e059192786a300c15ea661ff41d2ddfa437ca9314c2193a5eb915ba89d0630b
