[INFO] fetching crate dfu-core 0.6.0...
[INFO] checking dfu-core-0.6.0 against master#b3bd7058c139e71bae0862ef8f8ac936208873e9 for pr-123752
[INFO] extracting crate dfu-core 0.6.0 into /workspace/builds/worker-4-tc1/source
[INFO] validating manifest of crates.io crate dfu-core 0.6.0 on toolchain b3bd7058c139e71bae0862ef8f8ac936208873e9
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b3bd7058c139e71bae0862ef8f8ac936208873e9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate dfu-core 0.6.0
[INFO] finished tweaking crates.io crate dfu-core 0.6.0
[INFO] tweaked toml for crates.io crate dfu-core 0.6.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b3bd7058c139e71bae0862ef8f8ac936208873e9" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 39 packages
[INFO] [stderr]       Adding env_logger v0.10.2 (latest: v0.11.3)
[INFO] [stderr]       Adding num-derive v0.3.3 (latest: v0.4.2)
[INFO] [stderr]       Adding pretty-hex v0.3.0 (latest: v0.4.1)
[INFO] [stderr]       Adding syn v1.0.109 (latest: v2.0.58)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b3bd7058c139e71bae0862ef8f8ac936208873e9" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b3bd7058c139e71bae0862ef8f8ac936208873e9" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 37ab888a2a9aba54ff94bbe42e12c43fc20a2508f4fe30f2d3db424e60bdaa94
[INFO] running `Command { std: "docker" "start" "-a" "37ab888a2a9aba54ff94bbe42e12c43fc20a2508f4fe30f2d3db424e60bdaa94", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "37ab888a2a9aba54ff94bbe42e12c43fc20a2508f4fe30f2d3db424e60bdaa94", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "37ab888a2a9aba54ff94bbe42e12c43fc20a2508f4fe30f2d3db424e60bdaa94", kill_on_drop: false }`
[INFO] [stdout] 37ab888a2a9aba54ff94bbe42e12c43fc20a2508f4fe30f2d3db424e60bdaa94
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b3bd7058c139e71bae0862ef8f8ac936208873e9" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d048a292a955f639e070914b525ac15d0da863c5cf2494782b05cefbf08a23b8
[INFO] running `Command { std: "docker" "start" "-a" "d048a292a955f639e070914b525ac15d0da863c5cf2494782b05cefbf08a23b8", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking regex-syntax v0.8.3
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]     Checking humantime v2.1.0
[INFO] [stderr]     Checking pretty-hex v0.3.0
[INFO] [stderr]    Compiling displaydoc v0.2.4
[INFO] [stderr]     Checking termcolor v1.4.1
[INFO] [stderr]     Checking thiserror v1.0.58
[INFO] [stderr]     Checking dfu-core v0.6.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking regex-automata v0.4.6
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/lib.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 | #[derive(Debug, Display)]
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_Error`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]    --> src/lib.rs:259:45
[INFO] [stdout]     |
[INFO] [stdout] 259 | #[derive(Debug, Clone, Copy, Eq, PartialEq, Display)]
[INFO] [stdout]     |                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_Status`
[INFO] [stdout]     = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]     = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]     = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]     = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]    --> src/lib.rs:348:45
[INFO] [stdout]     |
[INFO] [stdout] 348 | #[derive(Debug, Clone, Copy, Eq, PartialEq, Display)]
[INFO] [stdout]     |                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_State`
[INFO] [stdout]     = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]     = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]     = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]     = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/functional_descriptor.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Debug, Display)]
[INFO] [stdout]   |                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_Error`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]   = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]     Checking regex v1.10.4
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stdout] error[E0432]: unresolved import `dfu_core::memory_layout::MemoryLayout`
[INFO] [stdout]   --> tests/mock.rs:5:50
[INFO] [stdout]    |
[INFO] [stdout] 5  |     functional_descriptor::FunctionalDescriptor, memory_layout::MemoryLayout, DfuProtocol, State,
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `MemoryLayout` in `memory_layout`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /opt/rustwide/workdir/src/memory_layout.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct MemoryLayout(Vec<MemoryPage>);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `TryFrom` is imported redundantly
[INFO] [stdout]  --> src/sync.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::*;
[INFO] [stdout]   |     -------- the item `TryFrom` is already imported here
[INFO] [stdout] 2 | use std::convert::TryFrom;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `dfu_core::memory_layout::MemoryLayout`
[INFO] [stdout]   --> tests/mock.rs:5:50
[INFO] [stdout]    |
[INFO] [stdout] 5  |     functional_descriptor::FunctionalDescriptor, memory_layout::MemoryLayout, DfuProtocol, State,
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `MemoryLayout` in `memory_layout`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /opt/rustwide/workdir/src/memory_layout.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct MemoryLayout(Vec<MemoryPage>);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `convert::TryFrom`
[INFO] [stdout]  --> tests/mock.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cell::RefCell, convert::TryFrom};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `sync` in `dfu_core`
[INFO] [stdout]   --> tests/download.rs:61:29
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let mut dfu = dfu_core::sync::DfuSync::new(mock);
[INFO] [stdout]    |                             ^^^^ could not find `sync` in `dfu_core`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /opt/rustwide/workdir/src/lib.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub mod sync;
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `convert::TryFrom`
[INFO] [stdout]  --> tests/mock.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cell::RefCell, convert::TryFrom};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/mock.rs:129:32
[INFO] [stdout]     |
[INFO] [stdout] 129 |             } => memory_layout.iter().sum(),
[INFO] [stdout]     |                                ^^^^ cannot infer type for type parameter `M` declared on the enum `DfuProtocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/mock.rs:129:32
[INFO] [stdout]     |
[INFO] [stdout] 129 |             } => memory_layout.iter().sum(),
[INFO] [stdout]     |                                ^^^^ cannot infer type for type parameter `M` declared on the enum `DfuProtocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `&M`
[INFO] [stdout]    --> tests/mock.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let m = match self.protocol {
[INFO] [stdout]     |             ^
[INFO] [stdout] ...
[INFO] [stdout] 147 |             .iter()
[INFO] [stdout]     |              ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `m` an explicit type, where the type for type parameter `M` is specified
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let m: &M = match self.protocol {
[INFO] [stdout]     |              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `&M`
[INFO] [stdout]    --> tests/mock.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let m = match self.protocol {
[INFO] [stdout]     |             ^
[INFO] [stdout] ...
[INFO] [stdout] 147 |             .iter()
[INFO] [stdout]     |              ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `m` an explicit type, where the type for type parameter `M` is specified
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let m: &M = match self.protocol {
[INFO] [stdout]     |              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `as_dyn_error` exists for reference `&Error`, but its trait bounds were not satisfied
[INFO] [stdout]    --> tests/mock.rs:287:13
[INFO] [stdout]     |
[INFO] [stdout] 287 |     #[error(transparent)]
[INFO] [stdout]     |             ^^^^^^^^^^^ method cannot be called on `&Error` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/lib.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | pub enum Error {
[INFO] [stdout]     | -------------- doesn't satisfy `dfu_core::Error: AsDynError<'_>` or `dfu_core::Error: std::error::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `dfu_core::Error: std::error::Error`
[INFO] [stdout]             which is required by `dfu_core::Error: AsDynError<'_>`
[INFO] [stdout]             `&dfu_core::Error: std::error::Error`
[INFO] [stdout]             which is required by `&dfu_core::Error: AsDynError<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `as_dyn_error` exists for reference `&Error`, but its trait bounds were not satisfied
[INFO] [stdout]    --> tests/mock.rs:287:13
[INFO] [stdout]     |
[INFO] [stdout] 287 |     #[error(transparent)]
[INFO] [stdout]     |             ^^^^^^^^^^^ method cannot be called on `&Error` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/lib.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | pub enum Error {
[INFO] [stdout]     | -------------- doesn't satisfy `dfu_core::Error: AsDynError<'_>` or `dfu_core::Error: std::error::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `dfu_core::Error: std::error::Error`
[INFO] [stdout]             which is required by `dfu_core::Error: AsDynError<'_>`
[INFO] [stdout]             `&dfu_core::Error: std::error::Error`
[INFO] [stdout]             which is required by `&dfu_core::Error: AsDynError<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dfu_core::DfuIo`
[INFO] [stdout]  --> tests/download.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use dfu_core::DfuIo;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors; 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors; 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `dfu-core` (test "mock") due to 5 previous errors; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `dfu-core` (test "download") due to 6 previous errors; 2 warnings emitted
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/lib.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 | #[derive(Debug, Display)]
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_Error`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]    --> src/lib.rs:259:45
[INFO] [stdout]     |
[INFO] [stdout] 259 | #[derive(Debug, Clone, Copy, Eq, PartialEq, Display)]
[INFO] [stdout]     |                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_Status`
[INFO] [stdout]     = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]     = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]     = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]     = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]    --> src/lib.rs:348:45
[INFO] [stdout]     |
[INFO] [stdout] 348 | #[derive(Debug, Clone, Copy, Eq, PartialEq, Display)]
[INFO] [stdout]     |                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_State`
[INFO] [stdout]     = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]     = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]     = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]     = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/functional_descriptor.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Debug, Display)]
[INFO] [stdout]   |                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_Error`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]   = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/memory_layout.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Debug, Display, Error)]
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_Error`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]    = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d048a292a955f639e070914b525ac15d0da863c5cf2494782b05cefbf08a23b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d048a292a955f639e070914b525ac15d0da863c5cf2494782b05cefbf08a23b8", kill_on_drop: false }`
[INFO] [stdout] d048a292a955f639e070914b525ac15d0da863c5cf2494782b05cefbf08a23b8
[INFO] checking dfu-core-0.6.0 against try#57fe1b734d9ff1c8a92bda60b85506b9648158d3 for pr-123752
[INFO] extracting crate dfu-core 0.6.0 into /workspace/builds/worker-4-tc2/source
[INFO] validating manifest of crates.io crate dfu-core 0.6.0 on toolchain 57fe1b734d9ff1c8a92bda60b85506b9648158d3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+57fe1b734d9ff1c8a92bda60b85506b9648158d3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate dfu-core 0.6.0
[INFO] finished tweaking crates.io crate dfu-core 0.6.0
[INFO] tweaked toml for crates.io crate dfu-core 0.6.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+57fe1b734d9ff1c8a92bda60b85506b9648158d3" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 39 packages
[INFO] [stderr]       Adding env_logger v0.10.2 (latest: v0.11.3)
[INFO] [stderr]       Adding num-derive v0.3.3 (latest: v0.4.2)
[INFO] [stderr]       Adding pretty-hex v0.3.0 (latest: v0.4.1)
[INFO] [stderr]       Adding syn v1.0.109 (latest: v2.0.58)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+57fe1b734d9ff1c8a92bda60b85506b9648158d3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+57fe1b734d9ff1c8a92bda60b85506b9648158d3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f1f210970bb1602e07bd48a50d597cca4e8b5de44f2b84e573847105577e037d
[INFO] running `Command { std: "docker" "start" "-a" "f1f210970bb1602e07bd48a50d597cca4e8b5de44f2b84e573847105577e037d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f1f210970bb1602e07bd48a50d597cca4e8b5de44f2b84e573847105577e037d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f1f210970bb1602e07bd48a50d597cca4e8b5de44f2b84e573847105577e037d", kill_on_drop: false }`
[INFO] [stdout] f1f210970bb1602e07bd48a50d597cca4e8b5de44f2b84e573847105577e037d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+57fe1b734d9ff1c8a92bda60b85506b9648158d3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d8410d072753a3847e80dc1f784be398a9acbdba00ff5efb42e747cdccd74260
[INFO] running `Command { std: "docker" "start" "-a" "d8410d072753a3847e80dc1f784be398a9acbdba00ff5efb42e747cdccd74260", kill_on_drop: false }`
[INFO] [stderr]     Checking regex-syntax v0.8.3
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]     Checking pretty-hex v0.3.0
[INFO] [stderr]     Checking termcolor v1.4.1
[INFO] [stderr]    Compiling displaydoc v0.2.4
[INFO] [stderr]     Checking humantime v2.1.0
[INFO] [stderr]     Checking thiserror v1.0.58
[INFO] [stderr]     Checking dfu-core v0.6.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/lib.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 | #[derive(Debug, Display)]
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_Error`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]    --> src/lib.rs:259:45
[INFO] [stdout]     |
[INFO] [stdout] 259 | #[derive(Debug, Clone, Copy, Eq, PartialEq, Display)]
[INFO] [stdout]     |                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_Status`
[INFO] [stdout]     = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]     = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]     = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]     = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]    --> src/lib.rs:348:45
[INFO] [stdout]     |
[INFO] [stdout] 348 | #[derive(Debug, Clone, Copy, Eq, PartialEq, Display)]
[INFO] [stdout]     |                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_State`
[INFO] [stdout]     = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]     = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]     = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]     = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/functional_descriptor.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Debug, Display)]
[INFO] [stdout]   |                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_Error`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]   = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking regex-automata v0.4.6
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]     Checking regex v1.10.4
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stdout] error[E0432]: unresolved import `dfu_core::memory_layout::MemoryLayout`
[INFO] [stdout]   --> tests/mock.rs:5:50
[INFO] [stdout]    |
[INFO] [stdout] 5  |     functional_descriptor::FunctionalDescriptor, memory_layout::MemoryLayout, DfuProtocol, State,
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `MemoryLayout` in `memory_layout`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /opt/rustwide/workdir/src/memory_layout.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct MemoryLayout(Vec<MemoryPage>);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `dfu_core::memory_layout::MemoryLayout`
[INFO] [stdout]   --> tests/mock.rs:5:50
[INFO] [stdout]    |
[INFO] [stdout] 5  |     functional_descriptor::FunctionalDescriptor, memory_layout::MemoryLayout, DfuProtocol, State,
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `MemoryLayout` in `memory_layout`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /opt/rustwide/workdir/src/memory_layout.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct MemoryLayout(Vec<MemoryPage>);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the item `TryFrom` is imported redundantly
[INFO] [stdout]  --> src/sync.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::*;
[INFO] [stdout]   |     -------- the item `TryFrom` is already imported here
[INFO] [stdout] 2 | use std::convert::TryFrom;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `convert::TryFrom`
[INFO] [stdout]  --> tests/mock.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cell::RefCell, convert::TryFrom};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `sync` in `dfu_core`
[INFO] [stdout]   --> tests/download.rs:61:29
[INFO] [stdout]    |
[INFO] [stdout] 61 |     let mut dfu = dfu_core::sync::DfuSync::new(mock);
[INFO] [stdout]    |                             ^^^^ could not find `sync` in `dfu_core`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /opt/rustwide/workdir/src/lib.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub mod sync;
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `convert::TryFrom`
[INFO] [stdout]  --> tests/mock.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cell::RefCell, convert::TryFrom};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/mock.rs:129:32
[INFO] [stdout]     |
[INFO] [stdout] 129 |             } => memory_layout.iter().sum(),
[INFO] [stdout]     |                                ^^^^ cannot infer type for type parameter `M` declared on the enum `DfuProtocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/mock.rs:129:32
[INFO] [stdout]     |
[INFO] [stdout] 129 |             } => memory_layout.iter().sum(),
[INFO] [stdout]     |                                ^^^^ cannot infer type for type parameter `M` declared on the enum `DfuProtocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `&M`
[INFO] [stdout]    --> tests/mock.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let m = match self.protocol {
[INFO] [stdout]     |             ^
[INFO] [stdout] ...
[INFO] [stdout] 147 |             .iter()
[INFO] [stdout]     |              ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `m` an explicit type, where the type for type parameter `M` is specified
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let m: &M = match self.protocol {
[INFO] [stdout]     |              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `&M`
[INFO] [stdout]    --> tests/mock.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let m = match self.protocol {
[INFO] [stdout]     |             ^
[INFO] [stdout] ...
[INFO] [stdout] 147 |             .iter()
[INFO] [stdout]     |              ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `m` an explicit type, where the type for type parameter `M` is specified
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let m: &M = match self.protocol {
[INFO] [stdout]     |              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `as_dyn_error` exists for reference `&Error`, but its trait bounds were not satisfied
[INFO] [stdout]    --> tests/mock.rs:287:13
[INFO] [stdout]     |
[INFO] [stdout] 287 |     #[error(transparent)]
[INFO] [stdout]     |             ^^^^^^^^^^^ method cannot be called on `&Error` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/lib.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | pub enum Error {
[INFO] [stdout]     | -------------- doesn't satisfy `dfu_core::Error: AsDynError<'_>` or `dfu_core::Error: std::error::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `dfu_core::Error: std::error::Error`
[INFO] [stdout]             which is required by `dfu_core::Error: AsDynError<'_>`
[INFO] [stdout]             `&dfu_core::Error: std::error::Error`
[INFO] [stdout]             which is required by `&dfu_core::Error: AsDynError<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `as_dyn_error` exists for reference `&Error`, but its trait bounds were not satisfied
[INFO] [stdout]    --> tests/mock.rs:287:13
[INFO] [stdout]     |
[INFO] [stdout] 287 |     #[error(transparent)]
[INFO] [stdout]     |             ^^^^^^^^^^^ method cannot be called on `&Error` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/lib.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout] 35  | pub enum Error {
[INFO] [stdout]     | -------------- doesn't satisfy `dfu_core::Error: AsDynError<'_>` or `dfu_core::Error: std::error::Error`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `dfu_core::Error: std::error::Error`
[INFO] [stdout]             which is required by `dfu_core::Error: AsDynError<'_>`
[INFO] [stdout]             `&dfu_core::Error: std::error::Error`
[INFO] [stdout]             which is required by `&dfu_core::Error: AsDynError<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dfu_core::DfuIo`
[INFO] [stdout]  --> tests/download.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use dfu_core::DfuIo;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors; 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `dfu-core` (test "mock") due to 5 previous errors; 1 warning emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: aborting due to 5 previous errors; 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `dfu-core` (test "download") due to 6 previous errors; 2 warnings emitted
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/lib.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 | #[derive(Debug, Display)]
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_Error`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]    --> src/lib.rs:259:45
[INFO] [stdout]     |
[INFO] [stdout] 259 | #[derive(Debug, Clone, Copy, Eq, PartialEq, Display)]
[INFO] [stdout]     |                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_Status`
[INFO] [stdout]     = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]     = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]     = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]     = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]    --> src/lib.rs:348:45
[INFO] [stdout]     |
[INFO] [stdout] 348 | #[derive(Debug, Clone, Copy, Eq, PartialEq, Display)]
[INFO] [stdout]     |                                             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_State`
[INFO] [stdout]     = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]     = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]     = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]     = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/functional_descriptor.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Debug, Display)]
[INFO] [stdout]   |                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_Error`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]   = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/memory_layout.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Debug, Display, Error)]
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_DERIVE_Display_FOR_Error`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: the derive macro `Display` may come from an old version of the `displaydoc` crate, try updating your dependency with `cargo update -p displaydoc`
[INFO] [stdout]    = note: this warning originates in the derive macro `Display` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 6 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d8410d072753a3847e80dc1f784be398a9acbdba00ff5efb42e747cdccd74260", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d8410d072753a3847e80dc1f784be398a9acbdba00ff5efb42e747cdccd74260", kill_on_drop: false }`
[INFO] [stdout] d8410d072753a3847e80dc1f784be398a9acbdba00ff5efb42e747cdccd74260
