[INFO] cloning repository https://github.com/PoorRican/sensd
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/PoorRican/sensd" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPoorRican%2Fsensd", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPoorRican%2Fsensd'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ef6545f9b29343e6adc18c0fbbc0cf2f9d72aa9d
[INFO] testing PoorRican/sensd against 1.94.0 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPoorRican%2Fsensd" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/PoorRican/sensd
[INFO] finished tweaking git repo https://github.com/PoorRican/sensd
[INFO] tweaked toml for git repo https://github.com/PoorRican/sensd written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/PoorRican/sensd on toolchain 1.94.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/PoorRican/sensd 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" "+1.94.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.85
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.85
[INFO] [stderr]   Downloaded custom_error v1.9.2
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.85
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.85
[INFO] [stderr]   Downloaded pid v4.0.0
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.85
[INFO] [stderr]   Downloaded js-sys v0.3.62
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 93ce85ff113cfd1a9bafaf20bbe756b1d91bfea3622840947707813defeb3b21
[INFO] running `Command { std: "docker" "start" "-a" "93ce85ff113cfd1a9bafaf20bbe756b1d91bfea3622840947707813defeb3b21", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "93ce85ff113cfd1a9bafaf20bbe756b1d91bfea3622840947707813defeb3b21", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "93ce85ff113cfd1a9bafaf20bbe756b1d91bfea3622840947707813defeb3b21", kill_on_drop: false }`
[INFO] [stdout] 93ce85ff113cfd1a9bafaf20bbe756b1d91bfea3622840947707813defeb3b21
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 37872ab6954189826ad8a9cbb4d218506b5d4bb367e5575c11475a87c864dcf6
[INFO] running `Command { std: "docker" "start" "-a" "37872ab6954189826ad8a9cbb4d218506b5d4bb367e5575c11475a87c864dcf6", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.56
[INFO] [stderr]    Compiling quote v1.0.27
[INFO] [stderr]    Compiling unicode-ident v1.0.8
[INFO] [stderr]    Compiling libc v0.2.144
[INFO] [stderr]    Compiling serde v1.0.163
[INFO] [stderr]    Compiling serde_json v1.0.96
[INFO] [stderr]    Compiling itoa v1.0.6
[INFO] [stderr]    Compiling iana-time-zone v0.1.56
[INFO] [stderr]    Compiling ryu v1.0.13
[INFO] [stderr]    Compiling pid v4.0.0
[INFO] [stderr]    Compiling float-cmp v0.9.0
[INFO] [stderr]    Compiling dotenv v0.15.0
[INFO] [stderr]    Compiling custom_error v1.9.2
[INFO] [stderr]    Compiling time v0.1.45
[INFO] [stderr]    Compiling syn v2.0.15
[INFO] [stderr]    Compiling serde_derive v1.0.163
[INFO] [stderr]    Compiling chrono v0.4.24
[INFO] [stderr]    Compiling sensd v0.0.7-beta (/opt/rustwide/workdir)
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/action/io.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, PartialEq)]
[INFO] [stdout]    |                 --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     Input(fn() -> RawValue),
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/action/io.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, PartialEq)]
[INFO] [stdout]    |                 --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 17 |     Output(fn(RawValue) -> Result<(), ()>),
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/helpers.rs:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn lock(&self) -> Result<MutexGuard<T>, PoisonError<MutexGuard<T>>> {
[INFO] [stdout]    |                 ^^^^^            ^^^^^^^^^^^^^              ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |                |
[INFO] [stdout]    |                 |                the same lifetime is hidden here
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn lock(&self) -> Result<MutexGuard<'_, T>, PoisonError<MutexGuard<'_, T>>> {
[INFO] [stdout]    |                                             +++                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/helpers.rs:54:21
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn try_lock(&self) -> TryLockResult<MutexGuard<T>> {
[INFO] [stdout]    |                     ^^^^^                   ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn try_lock(&self) -> TryLockResult<MutexGuard<'_, T>> {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/io/dev/output.rs:86:43
[INFO] [stdout]    |
[INFO] [stdout] 86 |         self.dir = Some(PathBuf::from(path.clone()));
[INFO] [stdout]    |                                           ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 86 -         self.dir = Some(PathBuf::from(path.clone()));
[INFO] [stdout] 86 +         self.dir = Some(PathBuf::from(path));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/io/dev/container.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn values(&self) -> Values<K, Def<D>> {
[INFO] [stdout]    |                   ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn values(&self) -> Values<'_, K, Def<D>> {
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/io/dev/container.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn values_mut(&mut self) -> ValuesMut<K, Def<D>> {
[INFO] [stdout]    |                       ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn values_mut(&mut self) -> ValuesMut<'_, K, Def<D>> {
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/io/dev/container.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn iter(&self) -> Iter<K, Def<D>> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn iter(&self) -> Iter<'_, K, Def<D>> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/logging/log.rs:115:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |     pub fn iter(&self) -> Iter<DateTime<Utc>, IOEvent> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 115 |     pub fn iter(&self) -> Iter<'_, DateTime<Utc>, IOEvent> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.97s
[INFO] running `Command { std: "docker" "inspect" "37872ab6954189826ad8a9cbb4d218506b5d4bb367e5575c11475a87c864dcf6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "37872ab6954189826ad8a9cbb4d218506b5d4bb367e5575c11475a87c864dcf6", kill_on_drop: false }`
[INFO] [stdout] 37872ab6954189826ad8a9cbb4d218506b5d4bb367e5575c11475a87c864dcf6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d8d0cf66d7e8cb612a5d7686d28a870fba3ff440246e50d099e314fd1648a8b4
[INFO] running `Command { std: "docker" "start" "-a" "d8d0cf66d7e8cb612a5d7686d28a870fba3ff440246e50d099e314fd1648a8b4", kill_on_drop: false }`
[INFO] [stderr]    Compiling sensd v0.0.7-beta (/opt/rustwide/workdir)
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/action/io.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, PartialEq)]
[INFO] [stdout]    |                 --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     Input(fn() -> RawValue),
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/action/io.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, PartialEq)]
[INFO] [stdout]    |                 --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 17 |     Output(fn(RawValue) -> Result<(), ()>),
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/helpers.rs:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn lock(&self) -> Result<MutexGuard<T>, PoisonError<MutexGuard<T>>> {
[INFO] [stdout]    |                 ^^^^^            ^^^^^^^^^^^^^              ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |                |
[INFO] [stdout]    |                 |                the same lifetime is hidden here
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn lock(&self) -> Result<MutexGuard<'_, T>, PoisonError<MutexGuard<'_, T>>> {
[INFO] [stdout]    |                                             +++                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/helpers.rs:54:21
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn try_lock(&self) -> TryLockResult<MutexGuard<T>> {
[INFO] [stdout]    |                     ^^^^^                   ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn try_lock(&self) -> TryLockResult<MutexGuard<'_, T>> {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/io/dev/output.rs:86:43
[INFO] [stdout]    |
[INFO] [stdout] 86 |         self.dir = Some(PathBuf::from(path.clone()));
[INFO] [stdout]    |                                           ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 86 -         self.dir = Some(PathBuf::from(path.clone()));
[INFO] [stdout] 86 +         self.dir = Some(PathBuf::from(path));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/io/dev/container.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn values(&self) -> Values<K, Def<D>> {
[INFO] [stdout]    |                   ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn values(&self) -> Values<'_, K, Def<D>> {
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/io/dev/container.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn values_mut(&mut self) -> ValuesMut<K, Def<D>> {
[INFO] [stdout]    |                       ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn values_mut(&mut self) -> ValuesMut<'_, K, Def<D>> {
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/io/dev/container.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn iter(&self) -> Iter<K, Def<D>> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn iter(&self) -> Iter<'_, K, Def<D>> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/logging/log.rs:115:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |     pub fn iter(&self) -> Iter<DateTime<Utc>, IOEvent> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 115 |     pub fn iter(&self) -> Iter<'_, DateTime<Utc>, IOEvent> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> examples/simple.rs:46:32
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let group = Group::new(name.clone());
[INFO] [stdout]    |                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> examples/thermostat.rs:49:32
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let group = Group::new(name.clone());
[INFO] [stdout]    |                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> examples/blink.rs:34:32
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let group = Group::new(name.clone());
[INFO] [stdout]    |                                ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/action/io.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, PartialEq)]
[INFO] [stdout]    |                 --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 11 |     Input(fn() -> RawValue),
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/action/io.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | #[derive(Clone, PartialEq)]
[INFO] [stdout]    |                 --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 17 |     Output(fn(RawValue) -> Result<(), ()>),
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/action/routine.rs:182:24
[INFO] [stdout]     |
[INFO] [stdout] 182 |             assert_ne!(REGISTER, value);
[INFO] [stdout]     |                        ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/action/routine.rs:191:24
[INFO] [stdout]     |
[INFO] [stdout] 191 |             assert_eq!(REGISTER, value);
[INFO] [stdout]     |                        ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/helpers.rs:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn lock(&self) -> Result<MutexGuard<T>, PoisonError<MutexGuard<T>>> {
[INFO] [stdout]    |                 ^^^^^            ^^^^^^^^^^^^^              ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |                |
[INFO] [stdout]    |                 |                the same lifetime is hidden here
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn lock(&self) -> Result<MutexGuard<'_, T>, PoisonError<MutexGuard<'_, T>>> {
[INFO] [stdout]    |                                             +++                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/helpers.rs:54:21
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn try_lock(&self) -> TryLockResult<MutexGuard<T>> {
[INFO] [stdout]    |                     ^^^^^                   ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn try_lock(&self) -> TryLockResult<MutexGuard<'_, T>> {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/io/dev/output.rs:86:43
[INFO] [stdout]    |
[INFO] [stdout] 86 |         self.dir = Some(PathBuf::from(path.clone()));
[INFO] [stdout]    |                                           ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout] 86 -         self.dir = Some(PathBuf::from(path.clone()));
[INFO] [stdout] 86 +         self.dir = Some(PathBuf::from(path));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/io/dev/container.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn values(&self) -> Values<K, Def<D>> {
[INFO] [stdout]    |                   ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn values(&self) -> Values<'_, K, Def<D>> {
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/io/dev/container.rs:23:23
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn values_mut(&mut self) -> ValuesMut<K, Def<D>> {
[INFO] [stdout]    |                       ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn values_mut(&mut self) -> ValuesMut<'_, K, Def<D>> {
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/io/dev/container.rs:42:17
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn iter(&self) -> Iter<K, Def<D>> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn iter(&self) -> Iter<'_, K, Def<D>> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/logging/log.rs:115:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |     pub fn iter(&self) -> Iter<DateTime<Utc>, IOEvent> {
[INFO] [stdout]     |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 115 |     pub fn iter(&self) -> Iter<'_, DateTime<Utc>, IOEvent> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.71s
[INFO] running `Command { std: "docker" "inspect" "d8d0cf66d7e8cb612a5d7686d28a870fba3ff440246e50d099e314fd1648a8b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d8d0cf66d7e8cb612a5d7686d28a870fba3ff440246e50d099e314fd1648a8b4", kill_on_drop: false }`
[INFO] [stdout] d8d0cf66d7e8cb612a5d7686d28a870fba3ff440246e50d099e314fd1648a8b4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e6fc300bf1346d6e6663d7b7c6bd5e576dc829e067f20eed8f216d5570b3ba80
[INFO] running `Command { std: "docker" "start" "-a" "e6fc300bf1346d6e6663d7b7c6bd5e576dc829e067f20eed8f216d5570b3ba80", kill_on_drop: false }`
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> src/action/io.rs:11:11
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, PartialEq)]
[INFO] [stderr]    |                 --------- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 11 |     Input(fn() -> RawValue),
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stderr]   --> src/action/io.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr]  8 | #[derive(Clone, PartialEq)]
[INFO] [stderr]    |                 --------- in this derive macro expansion
[INFO] [stderr] ...
[INFO] [stderr] 17 |     Output(fn(RawValue) -> Result<(), ()>),
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the address of the same function can vary between different codegen units
[INFO] [stderr]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stderr]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/helpers.rs:50:17
[INFO] [stderr]    |
[INFO] [stderr] 50 |     pub fn lock(&self) -> Result<MutexGuard<T>, PoisonError<MutexGuard<T>>> {
[INFO] [stderr]    |                 ^^^^^            ^^^^^^^^^^^^^              ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                 |                |
[INFO] [stderr]    |                 |                the same lifetime is hidden here
[INFO] [stderr]    |                 the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 50 |     pub fn lock(&self) -> Result<MutexGuard<'_, T>, PoisonError<MutexGuard<'_, T>>> {
[INFO] [stderr]    |                                             +++                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/helpers.rs:54:21
[INFO] [stderr]    |
[INFO] [stderr] 54 |     pub fn try_lock(&self) -> TryLockResult<MutexGuard<T>> {
[INFO] [stderr]    |                     ^^^^^                   ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 54 |     pub fn try_lock(&self) -> TryLockResult<MutexGuard<'_, T>> {
[INFO] [stderr]    |                                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stderr]   --> src/io/dev/output.rs:86:43
[INFO] [stderr]    |
[INFO] [stderr] 86 |         self.dir = Some(PathBuf::from(path.clone()));
[INFO] [stderr]    |                                           ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the type `Path` does not implement `Clone`, so calling `clone` on `&Path` copies the reference, which does not do anything and can be removed
[INFO] [stderr]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stderr] help: remove this redundant call
[INFO] [stderr]    |
[INFO] [stderr] 86 -         self.dir = Some(PathBuf::from(path.clone()));
[INFO] [stderr] 86 +         self.dir = Some(PathBuf::from(path));
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/io/dev/container.rs:19:19
[INFO] [stderr]    |
[INFO] [stderr] 19 |     pub fn values(&self) -> Values<K, Def<D>> {
[INFO] [stderr]    |                   ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                   |
[INFO] [stderr]    |                   the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 19 |     pub fn values(&self) -> Values<'_, K, Def<D>> {
[INFO] [stderr]    |                                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/io/dev/container.rs:23:23
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub fn values_mut(&mut self) -> ValuesMut<K, Def<D>> {
[INFO] [stderr]    |                       ^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                       |
[INFO] [stderr]    |                       the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub fn values_mut(&mut self) -> ValuesMut<'_, K, Def<D>> {
[INFO] [stderr]    |                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/io/dev/container.rs:42:17
[INFO] [stderr]    |
[INFO] [stderr] 42 |     pub fn iter(&self) -> Iter<K, Def<D>> {
[INFO] [stderr]    |                 ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 42 |     pub fn iter(&self) -> Iter<'_, K, Def<D>> {
[INFO] [stderr]    |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/storage/logging/log.rs:115:17
[INFO] [stderr]     |
[INFO] [stderr] 115 |     pub fn iter(&self) -> Iter<DateTime<Utc>, IOEvent> {
[INFO] [stderr]     |                 ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 115 |     pub fn iter(&self) -> Iter<'_, DateTime<Utc>, IOEvent> {
[INFO] [stderr]     |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/action/routine.rs:182:24
[INFO] [stderr]     |
[INFO] [stderr] 182 |             assert_ne!(REGISTER, value);
[INFO] [stderr]     |                        ^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: creating a shared reference to mutable static
[INFO] [stderr]    --> src/action/routine.rs:191:24
[INFO] [stderr]     |
[INFO] [stderr] 191 |             assert_eq!(REGISTER, value);
[INFO] [stderr]     |                        ^^^^^^^^ shared reference to mutable static
[INFO] [stderr]     |
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stderr]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stderr] 
[INFO] [stderr] warning: `sensd` (lib) generated 9 warnings (run `cargo fix --lib -p sensd` to apply 7 suggestions)
[INFO] [stderr] warning: `sensd` (lib test) generated 11 warnings (9 duplicates)
[INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stderr]   --> examples/simple.rs:46:32
[INFO] [stderr]    |
[INFO] [stderr] 46 |     let group = Group::new(name.clone());
[INFO] [stderr]    |                                ^^^^^^^^ help: remove this redundant call
[INFO] [stderr]    |
[INFO] [stderr]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stderr]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stderr]   --> examples/blink.rs:34:32
[INFO] [stderr]    |
[INFO] [stderr] 34 |     let group = Group::new(name.clone());
[INFO] [stderr]    |                                ^^^^^^^^ help: remove this redundant call
[INFO] [stderr]    |
[INFO] [stderr]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stderr]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stderr]   --> examples/thermostat.rs:49:32
[INFO] [stderr]    |
[INFO] [stderr] 49 |     let group = Group::new(name.clone());
[INFO] [stderr]    |                                ^^^^^^^^ help: remove this redundant call
[INFO] [stderr]    |
[INFO] [stderr]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stderr]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `sensd` (example "simple") generated 1 warning (run `cargo fix --example "simple" -p sensd` to apply 1 suggestion)
[INFO] [stderr] warning: `sensd` (example "blink") generated 1 warning (run `cargo fix --example "blink" -p sensd` to apply 1 suggestion)
[INFO] [stderr] warning: `sensd` (example "thermostat") generated 1 warning (run `cargo fix --example "thermostat" -p sensd` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/sensd-7ad7fa7d6fb50770)
[INFO] [stdout] 
[INFO] [stdout] running 58 tests
[INFO] [stdout] test action::actions::threshold::tests::new_name_parameter ... ok
[INFO] [stdout] test action::io::tests::test_default ... ok
[INFO] [stdout] test action::handler::tests::test_attempt ... ok
[INFO] [stdout] test action::handler::tests::test_push ... ok
[INFO] [stdout] test action::actions::threshold::tests::with_output_name_parameter ... ok
[INFO] [stdout] test action::io::tests::test_agrees ... ok
[INFO] [stdout] test action::trigger::tests::gt ... ok
[INFO] [stdout] test action::trigger::tests::gte ... ok
[INFO] [stdout] test action::trigger::tests::lt ... ok
[INFO] [stdout] test action::trigger::tests::lte ... ok
[INFO] [stdout] test io::dev::container::tests::insert_input ... ok
[INFO] [stdout] test io::dev::container::tests::set_root ... ok
[INFO] [stdout] test io::dev::input::tests::new_kind_parameter ... ok
[INFO] [stdout] test io::dev::container::tests::insert_output ... ok
[INFO] [stdout] test io::dev::input::tests::new_name_parameter ... ok
[INFO] [stdout] test action::routine::meta_tests::test_constructor_w_log ... ok
[INFO] [stdout] test io::dev::input::tests::test_init_publisher ... ok
[INFO] [stdout] test io::dev::input::tests::set_dir_changes_log_dir ... ok
[INFO] [stdout] test io::dev::input::tests::test_init_log ... ok
[INFO] [stdout] test io::dev::input::tests::test_read ... ok
[INFO] [stdout] test io::dev::input::tests::test_rx ... ok
[INFO] [stdout] test io::dev::output::tests::new_kind_parameter ... ok
[INFO] [stdout] test io::dev::output::tests::set_dir_changes_log_dir ... ok
[INFO] [stdout] test io::dev::output::tests::new_name_parameter ... ok
[INFO] [stdout] test io::dev::output::tests::set_dir ... ok
[INFO] [stdout] test io::dev::output::tests::test_init_log ... ok
[INFO] [stdout] test io::metadata::tests::new_name_parameter ... ok
[INFO] [stdout] test io::types::raw::tests::test_rawvalue_add ... ok
[INFO] [stdout] test io::dev::output::tests::test_tx ... ok
[INFO] [stdout] test io::dev::output::tests::test_write ... ok
[INFO] [stdout] test io::types::raw::tests::test_rawvalue_div ... ok
[INFO] [stdout] test io::types::raw::tests::test_rawvalue_mul ... ok
[INFO] [stdout] test io::types::raw::tests::test_rawvalue_sub ... ok
[INFO] [stdout] test action::routine::functionality_tests::test_attempt ... ok
[INFO] [stdout] test settings::tests::set_root_into ... ok
[INFO] [stdout] test action::routine::meta_tests::test_constructor_w_none ... ok
[INFO] [stdout] test storage::group::tests::new_name_parameter ... ok
[INFO] [stdout] test storage::group::tests::push_input ... ok
[INFO] [stdout] test storage::group::tests::push_input_changes_dir ... ok
[INFO] [stdout] test action::io::tests::test_output_fails_wo_value - should panic ... ok
[INFO] [stdout] test action::routine::meta_tests::validate_command - should panic ... ok
[INFO] [stdout] test io::types::raw::tests::test_rawvalue_add_mismatched - should panic ... ok
[INFO] [stdout] test storage::group::tests::push_output_changes_dir ... ok
[INFO] [stdout] test storage::group::tests::push_output ... ok
[INFO] [stdout] test io::types::raw::tests::test_rawvalue_mul_mismatched - should panic ... ok
[INFO] [stdout] test io::types::raw::tests::test_rawvalue_div_mismatched - should panic ... ok
[INFO] [stdout] test io::types::raw::tests::test_rawvalue_sub_mismatched - should panic ... ok
[INFO] [stdout] test settings::tests::set_root_panics - should panic ... ok
[INFO] [stdout] test storage::group::tests::test_dir ... ok
[INFO] [stdout] test storage::group::tests::with_root ... ok
[INFO] [stdout] test storage::group::tests::push_input_panics - should panic ... ok
[INFO] [stdout] test storage::group::tests::push_output_panics - should panic ... ok
[INFO] [stdout] test storage::logging::log::tests::set_dir ... ok
[INFO] [stdout] test storage::group::tests::with_interval ... ok
[INFO] [stdout] test storage::logging::types::test_event_collection::test_extendability ... ok
[INFO] [stdout] test storage::group::tests::test_init_root ... ok
[INFO] [stdout] test storage::logging::log::tests::test_load_save ... ok
[INFO] [stdout] test storage::logging::log::tests::test_extend ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 58 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/grouping_test.rs (/opt/rustwide/target/debug/deps/grouping_test-0ac6594003f77ddb)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test test_builder_pattern ... ok
[INFO] [stdout] test test_poll ... ok
[INFO] [stdout] test test_directory_hierarchy ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests sensd
[INFO] [stdout] 
[INFO] [stdout] running 31 tests
[INFO] [stdout] test src/action/actions/pid.rs - action::actions::pid::PID::set_output (line 527) ... ok
[INFO] [stdout] test src/action/actions/pid.rs - action::actions::pid::PID::set_handler (line 457) ... ok
[INFO] [stdout] test src/action/actions/pid.rs - action::actions::pid::PID::new (line 120) ... ok
[INFO] [stdout] test src/action/actions/pid.rs - action::actions::pid::PID (line 79) ... ok
[INFO] [stdout] test src/action/actions/pid.rs - action::actions::pid::PID (line 57) ... ok
[INFO] [stdout] test src/action/actions/pid.rs - action::actions::pid::PID::set_setpoint (line 346) ... ok
[INFO] [stdout] test src/action/actions/pid.rs - action::actions::pid::PID::output_limit (line 375) ... ok
[INFO] [stdout] test src/action/actions/threshold.rs - action::actions::threshold::Threshold::new (line 47) ... ok
[INFO] [stdout] test src/action/actions/pid.rs - action::actions::pid::PID (line 16) ... ok
[INFO] [stdout] test src/action/actions/pid.rs - action::actions::pid::PID::set_output_limit (line 401) ... ok
[INFO] [stdout] test src/action/actions/pid.rs - action::actions::pid::PID (line 42) ... ok
[INFO] [stdout] test src/action/actions/pid.rs - action::actions::pid::PID::setpoint (line 321) ... ok
[INFO] [stdout] test src/io/dev/input.rs - io::dev::input::Input (line 20) ... ok
[INFO] [stdout] test src/action/actions/threshold.rs - action::actions::threshold::Threshold::threshold (line 121) ... ok
[INFO] [stdout] test src/action/actions/threshold.rs - action::actions::threshold::Threshold::set_output (line 201) ... ok
[INFO] [stdout] test src/io/dev/input.rs - io::dev::input::Input (line 39) ... ok
[INFO] [stdout] test src/io/dev/input.rs - io::dev::input::Input::read (line 238) ... ok
[INFO] [stdout] test src/io/dev/output.rs - io::dev::output::Output (line 40) ... ok
[INFO] [stdout] test src/action/actions/threshold.rs - action::actions::threshold::Threshold::with_output (line 94) ... ok
[INFO] [stdout] test src/io/dev/output.rs - io::dev::output::Output (line 21) ... ok
[INFO] [stdout] test src/io/dev/output.rs - io::dev::output::Output::write (line 211) ... ok
[INFO] [stdout] test src/io/event.rs - io::event::IOEvent::new (line 79) ... ok
[INFO] [stdout] test src/storage/group.rs - storage::group::Group::push_input (line 228) ... ok
[INFO] [stdout] test src/io/metadata.rs - io::metadata::DeviceMetadata::new (line 42) ... ok
[INFO] [stdout] test src/io/event.rs - io::event::IOEvent (line 12) ... ok
[INFO] [stdout] test src/storage/group.rs - storage::group::Group (line 44) ... ok
[INFO] [stdout] test src/io/event.rs - io::event::IOEvent::with_timestamp (line 48) ... ok
[INFO] [stdout] test src/storage/group.rs - storage::group::Group (line 22) ... ok
[INFO] [stdout] test src/storage/group.rs - storage::group::Group::new (line 139) ... ok
[INFO] [stdout] test src/storage/group.rs - storage::group::Group::push_output (line 260) ... ok
[INFO] [stdout] test src/storage/group.rs - storage::group::Group::with_root (line 183) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.99s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "e6fc300bf1346d6e6663d7b7c6bd5e576dc829e067f20eed8f216d5570b3ba80", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e6fc300bf1346d6e6663d7b7c6bd5e576dc829e067f20eed8f216d5570b3ba80", kill_on_drop: false }`
[INFO] [stdout] e6fc300bf1346d6e6663d7b7c6bd5e576dc829e067f20eed8f216d5570b3ba80
