[INFO] cloning repository https://github.com/jonlamb-gh/rpi4-argon-fan-controller [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jonlamb-gh/rpi4-argon-fan-controller" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjonlamb-gh%2Frpi4-argon-fan-controller", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjonlamb-gh%2Frpi4-argon-fan-controller'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fc1a9d4368b2e851e1feed0dd4b4472f63718e67 [INFO] checking jonlamb-gh/rpi4-argon-fan-controller against master#fd17deacce374a4185c882795be162e17b557050 for pr-138001 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjonlamb-gh%2Frpi4-argon-fan-controller" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/jonlamb-gh/rpi4-argon-fan-controller on toolchain fd17deacce374a4185c882795be162e17b557050 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fd17deacce374a4185c882795be162e17b557050" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] removed /workspace/builds/worker-7-tc1/source/.cargo/config [INFO] started tweaking git repo https://github.com/jonlamb-gh/rpi4-argon-fan-controller [INFO] finished tweaking git repo https://github.com/jonlamb-gh/rpi4-argon-fan-controller [INFO] tweaked toml for git repo https://github.com/jonlamb-gh/rpi4-argon-fan-controller written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/jonlamb-gh/rpi4-argon-fan-controller 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" "+fd17deacce374a4185c882795be162e17b557050" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating git repository `https://github.com/jonlamb-gh/rpi-mailbox.git` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded proptest v0.10.1 [INFO] [stderr] Downloaded rppal v0.13.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:1680c8fbd8dfb46fcd6d22e546df16ab0e007457dc29fcd9e987cdd5077fd1af" "/opt/rustwide/cargo-home/bin/cargo" "+fd17deacce374a4185c882795be162e17b557050" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1bdcfbfd1f3417c5ff3dde93aefde89dbbee78b964c72f988c11cea7e4f9c56a [INFO] running `Command { std: "docker" "start" "-a" "1bdcfbfd1f3417c5ff3dde93aefde89dbbee78b964c72f988c11cea7e4f9c56a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1bdcfbfd1f3417c5ff3dde93aefde89dbbee78b964c72f988c11cea7e4f9c56a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1bdcfbfd1f3417c5ff3dde93aefde89dbbee78b964c72f988c11cea7e4f9c56a", kill_on_drop: false }` [INFO] [stdout] 1bdcfbfd1f3417c5ff3dde93aefde89dbbee78b964c72f988c11cea7e4f9c56a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:1680c8fbd8dfb46fcd6d22e546df16ab0e007457dc29fcd9e987cdd5077fd1af" "/opt/rustwide/cargo-home/bin/cargo" "+fd17deacce374a4185c882795be162e17b557050" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 76ae0021cbaa300eb20f0e97ef06d952634c6980eebe8b79ef2fa8da82309f03 [INFO] running `Command { std: "docker" "start" "-a" "76ae0021cbaa300eb20f0e97ef06d952634c6980eebe8b79ef2fa8da82309f03", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling libc v0.2.122 [INFO] [stderr] Compiling proc-macro2 v1.0.37 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling syn v1.0.91 [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Compiling cc v1.0.73 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling rustversion v1.0.6 [INFO] [stderr] Checking gimli v0.26.1 [INFO] [stderr] Checking adler v1.0.2 [INFO] [stderr] Compiling log v0.4.16 [INFO] [stderr] Compiling serde_derive v1.0.136 [INFO] [stderr] Compiling failure_derive v0.1.8 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Checking regex-syntax v0.6.25 [INFO] [stderr] Compiling unicode-segmentation v1.9.0 [INFO] [stderr] Checking rustc-demangle v0.1.21 [INFO] [stderr] Compiling serde v1.0.136 [INFO] [stderr] Checking unicode-width v0.1.9 [INFO] [stderr] Checking strsim v0.8.0 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling miniz_oxide v0.4.4 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling num-bigint v0.3.3 [INFO] [stderr] Compiling num-rational v0.3.2 [INFO] [stderr] Compiling num-iter v0.1.42 [INFO] [stderr] Compiling heck v0.3.3 [INFO] [stderr] Checking ansi_term v0.12.1 [INFO] [stderr] Checking remove_dir_all v0.5.3 [INFO] [stderr] Checking fastrand v1.7.0 [INFO] [stderr] Checking humantime v2.1.0 [INFO] [stderr] Checking termcolor v1.1.3 [INFO] [stderr] Checking object v0.27.1 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Checking ppv-lite86 v0.2.16 [INFO] [stderr] Compiling quote v1.0.17 [INFO] [stderr] Checking bit-vec v0.6.3 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking exitcode v1.1.2 [INFO] [stderr] Checking quick-error v1.2.3 [INFO] [stderr] Compiling err-derive v0.3.1 [INFO] [stderr] Checking byteorder v1.4.3 [INFO] [stderr] Checking bit-set v0.5.2 [INFO] [stderr] Compiling backtrace v0.3.64 [INFO] [stderr] Checking num-complex v0.3.1 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking time v0.1.44 [INFO] [stderr] Checking nix v0.23.1 [INFO] [stderr] Checking wait-timeout v0.2.0 [INFO] [stderr] Checking tempfile v3.3.0 [INFO] [stderr] Checking rppal v0.13.1 [INFO] [stderr] Checking clap v2.34.0 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking rusty-fork v0.3.0 [INFO] [stderr] Checking chrono v0.4.19 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking rand_xorshift v0.2.0 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking regex v1.5.5 [INFO] [stderr] Checking addr2line v0.17.0 [INFO] [stderr] Checking proptest v0.10.1 [INFO] [stderr] Checking env_logger v0.9.0 [INFO] [stderr] Checking num v0.3.1 [INFO] [stderr] Checking ctrlc v3.2.1 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Compiling structopt-derive v0.4.18 [INFO] [stderr] Checking failure v0.1.8 [INFO] [stderr] Checking rpi-mailbox v0.1.1 (https://github.com/jonlamb-gh/rpi-mailbox.git?branch=aarch64#fee0401b) [INFO] [stderr] Checking structopt v0.3.26 [INFO] [stderr] Checking toml v0.5.8 [INFO] [stderr] Checking rpi4-argon-fan-controller v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:89:35 [INFO] [stdout] | [INFO] [stdout] 89 | #[derive(Debug, Clone, PartialEq, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Error` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_std_error_Error_FOR_ParseFanSpeedError` [INFO] [stdout] 90 | pub enum ParseFanSpeedError { [INFO] [stdout] | ------------------ `ParseFanSpeedError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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: the lint level is defined here [INFO] [stdout] --> src/lib.rs:1:9 [INFO] [stdout] | [INFO] [stdout] 1 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[deny(non_local_definitions)]` implied by `#[deny(warnings)]` [INFO] [stdout] = note: this error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:89:35 [INFO] [stdout] | [INFO] [stdout] 89 | #[derive(Debug, Clone, PartialEq, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_fmt_Display_FOR_ParseFanSpeedError` [INFO] [stdout] 90 | pub enum ParseFanSpeedError { [INFO] [stdout] | ------------------ `ParseFanSpeedError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:89:35 [INFO] [stdout] | [INFO] [stdout] 89 | #[derive(Debug, Clone, PartialEq, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `From` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_convert_From_ParseIntError_FOR_ParseFanSpeedError` [INFO] [stdout] 90 | pub enum ParseFanSpeedError { [INFO] [stdout] | ------------------ `ParseFanSpeedError` is not local [INFO] [stdout] 91 | #[error(display = "Failed to parse fan speed {}", _0)] [INFO] [stdout] 92 | ParseIntError(#[error(from)] ParseIntError), [INFO] [stdout] | ------------- `ParseIntError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:212:35 [INFO] [stdout] | [INFO] [stdout] 212 | #[derive(Debug, Clone, PartialEq, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Error` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_std_error_Error_FOR_ParseUpdateIntervalSecondsError` [INFO] [stdout] 213 | pub enum ParseUpdateIntervalSecondsError { [INFO] [stdout] | ------------------------------- `ParseUpdateIntervalSecondsError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:212:35 [INFO] [stdout] | [INFO] [stdout] 212 | #[derive(Debug, Clone, PartialEq, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_fmt_Display_FOR_ParseUpdateIntervalSecondsError` [INFO] [stdout] 213 | pub enum ParseUpdateIntervalSecondsError { [INFO] [stdout] | ------------------------------- `ParseUpdateIntervalSecondsError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:212:35 [INFO] [stdout] | [INFO] [stdout] 212 | #[derive(Debug, Clone, PartialEq, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `From` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_convert_From_ParseIntError_FOR_ParseUpdateIntervalSecondsError` [INFO] [stdout] 213 | pub enum ParseUpdateIntervalSecondsError { [INFO] [stdout] | ------------------------------- `ParseUpdateIntervalSecondsError` is not local [INFO] [stdout] 214 | #[error(display = "Failed to parse update interval, {}", _0)] [INFO] [stdout] 215 | ParseError(#[error(from)] ParseIntError), [INFO] [stdout] | ------------- `ParseIntError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/config.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | #[derive(Debug, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Error` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_std_error_Error_FOR_ConfigLoadError` [INFO] [stdout] 9 | pub enum ConfigLoadError { [INFO] [stdout] | --------------- `ConfigLoadError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/config.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | #[derive(Debug, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_fmt_Display_FOR_ConfigLoadError` [INFO] [stdout] 9 | pub enum ConfigLoadError { [INFO] [stdout] | --------------- `ConfigLoadError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/config.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | #[derive(Debug, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `From` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_convert_From_ConfigCheckError_FOR_ConfigLoadError` [INFO] [stdout] 9 | pub enum ConfigLoadError { [INFO] [stdout] | --------------- `ConfigLoadError` is not local [INFO] [stdout] ... [INFO] [stdout] 17 | Check(#[error(from)] ConfigCheckError), [INFO] [stdout] | ---------------- `ConfigCheckError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/config.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Debug, PartialEq, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Error` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_std_error_Error_FOR_ConfigCheckError` [INFO] [stdout] 21 | pub enum ConfigCheckError { [INFO] [stdout] | ---------------- `ConfigCheckError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/config.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Debug, PartialEq, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_fmt_Display_FOR_ConfigCheckError` [INFO] [stdout] 21 | pub enum ConfigCheckError { [INFO] [stdout] | ---------------- `ConfigCheckError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/mailbox.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | #[derive(Debug, Clone, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Error` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_std_error_Error_FOR_MailboxError` [INFO] [stdout] 7 | #[error(display = "{}", _0)] [INFO] [stdout] 8 | pub struct MailboxError(rpi_mailbox::error::ErrorKind); [INFO] [stdout] | ------------ `MailboxError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/mailbox.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | #[derive(Debug, Clone, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_fmt_Display_FOR_MailboxError` [INFO] [stdout] 7 | #[error(display = "{}", _0)] [INFO] [stdout] 8 | pub struct MailboxError(rpi_mailbox::error::ErrorKind); [INFO] [stdout] | ------------ `MailboxError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rpi4-argon-fan-controller` (lib) due to 13 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:89:35 [INFO] [stdout] | [INFO] [stdout] 89 | #[derive(Debug, Clone, PartialEq, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Error` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_std_error_Error_FOR_ParseFanSpeedError` [INFO] [stdout] 90 | pub enum ParseFanSpeedError { [INFO] [stdout] | ------------------ `ParseFanSpeedError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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: the lint level is defined here [INFO] [stdout] --> src/lib.rs:1:9 [INFO] [stdout] | [INFO] [stdout] 1 | #![deny(warnings)] [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = note: `#[deny(non_local_definitions)]` implied by `#[deny(warnings)]` [INFO] [stdout] = note: this error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:89:35 [INFO] [stdout] | [INFO] [stdout] 89 | #[derive(Debug, Clone, PartialEq, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_fmt_Display_FOR_ParseFanSpeedError` [INFO] [stdout] 90 | pub enum ParseFanSpeedError { [INFO] [stdout] | ------------------ `ParseFanSpeedError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:89:35 [INFO] [stdout] | [INFO] [stdout] 89 | #[derive(Debug, Clone, PartialEq, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `From` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_convert_From_ParseIntError_FOR_ParseFanSpeedError` [INFO] [stdout] 90 | pub enum ParseFanSpeedError { [INFO] [stdout] | ------------------ `ParseFanSpeedError` is not local [INFO] [stdout] 91 | #[error(display = "Failed to parse fan speed {}", _0)] [INFO] [stdout] 92 | ParseIntError(#[error(from)] ParseIntError), [INFO] [stdout] | ------------- `ParseIntError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:212:35 [INFO] [stdout] | [INFO] [stdout] 212 | #[derive(Debug, Clone, PartialEq, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Error` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_std_error_Error_FOR_ParseUpdateIntervalSecondsError` [INFO] [stdout] 213 | pub enum ParseUpdateIntervalSecondsError { [INFO] [stdout] | ------------------------------- `ParseUpdateIntervalSecondsError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:212:35 [INFO] [stdout] | [INFO] [stdout] 212 | #[derive(Debug, Clone, PartialEq, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_fmt_Display_FOR_ParseUpdateIntervalSecondsError` [INFO] [stdout] 213 | pub enum ParseUpdateIntervalSecondsError { [INFO] [stdout] | ------------------------------- `ParseUpdateIntervalSecondsError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:212:35 [INFO] [stdout] | [INFO] [stdout] 212 | #[derive(Debug, Clone, PartialEq, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `From` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_convert_From_ParseIntError_FOR_ParseUpdateIntervalSecondsError` [INFO] [stdout] 213 | pub enum ParseUpdateIntervalSecondsError { [INFO] [stdout] | ------------------------------- `ParseUpdateIntervalSecondsError` is not local [INFO] [stdout] 214 | #[error(display = "Failed to parse update interval, {}", _0)] [INFO] [stdout] 215 | ParseError(#[error(from)] ParseIntError), [INFO] [stdout] | ------------- `ParseIntError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/config.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | #[derive(Debug, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Error` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_std_error_Error_FOR_ConfigLoadError` [INFO] [stdout] 9 | pub enum ConfigLoadError { [INFO] [stdout] | --------------- `ConfigLoadError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/config.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | #[derive(Debug, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_fmt_Display_FOR_ConfigLoadError` [INFO] [stdout] 9 | pub enum ConfigLoadError { [INFO] [stdout] | --------------- `ConfigLoadError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/config.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | #[derive(Debug, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `From` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_convert_From_ConfigCheckError_FOR_ConfigLoadError` [INFO] [stdout] 9 | pub enum ConfigLoadError { [INFO] [stdout] | --------------- `ConfigLoadError` is not local [INFO] [stdout] ... [INFO] [stdout] 17 | Check(#[error(from)] ConfigCheckError), [INFO] [stdout] | ---------------- `ConfigCheckError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/config.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Debug, PartialEq, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Error` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_std_error_Error_FOR_ConfigCheckError` [INFO] [stdout] 21 | pub enum ConfigCheckError { [INFO] [stdout] | ---------------- `ConfigCheckError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/config.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Debug, PartialEq, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_fmt_Display_FOR_ConfigCheckError` [INFO] [stdout] 21 | pub enum ConfigCheckError { [INFO] [stdout] | ---------------- `ConfigCheckError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/mailbox.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | #[derive(Debug, Clone, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Error` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_std_error_Error_FOR_MailboxError` [INFO] [stdout] 7 | #[error(display = "{}", _0)] [INFO] [stdout] 8 | pub struct MailboxError(rpi_mailbox::error::ErrorKind); [INFO] [stdout] | ------------ `MailboxError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/mailbox.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | #[derive(Debug, Clone, err_derive::Error)] [INFO] [stdout] | ^---------------- [INFO] [stdout] | | [INFO] [stdout] | `Display` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_core_fmt_Display_FOR_MailboxError` [INFO] [stdout] 7 | #[error(display = "{}", _0)] [INFO] [stdout] 8 | pub struct MailboxError(rpi_mailbox::error::ErrorKind); [INFO] [stdout] | ------------ `MailboxError` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `err_derive::Error` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `err_derive::Error` may come from an old version of the `err_derive` crate, try updating your dependency with `cargo update -p err_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 error originates in the derive macro `err_derive::Error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rpi4-argon-fan-controller` (lib test) due to 13 previous errors [INFO] running `Command { std: "docker" "inspect" "76ae0021cbaa300eb20f0e97ef06d952634c6980eebe8b79ef2fa8da82309f03", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "76ae0021cbaa300eb20f0e97ef06d952634c6980eebe8b79ef2fa8da82309f03", kill_on_drop: false }` [INFO] [stdout] 76ae0021cbaa300eb20f0e97ef06d952634c6980eebe8b79ef2fa8da82309f03