[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.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPoorRican%2Fsensd" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/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-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/PoorRican/sensd on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "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.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] a281b087033cde28c3ac943dc01619523c1143bee39c7d1558ef09722abf0949
[INFO] running `Command { std: "docker" "start" "a281b087033cde28c3ac943dc01619523c1143bee39c7d1558ef09722abf0949", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a281b087033cde28c3ac943dc01619523c1143bee39c7d1558ef09722abf0949", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a281b087033cde28c3ac943dc01619523c1143bee39c7d1558ef09722abf0949" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a281b087033cde28c3ac943dc01619523c1143bee39c7d1558ef09722abf0949", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a281b087033cde28c3ac943dc01619523c1143bee39c7d1558ef09722abf0949" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.56
[INFO] [stderr]    Compiling quote v1.0.27
[INFO] [stderr]    Compiling serde v1.0.163
[INFO] [stderr]    Compiling libc v0.2.144
[INFO] [stderr]    Compiling serde_json v1.0.96
[INFO] [stderr]    Compiling iana-time-zone v0.1.56
[INFO] [stderr]    Compiling dotenv v0.15.0
[INFO] [stderr]    Compiling custom_error v1.9.2
[INFO] [stderr]    Compiling pid v4.0.0
[INFO] [stderr]    Compiling float-cmp v0.9.0
[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 `release` profile [optimized] target(s) in 17.22s
[INFO] running `Command { std: "docker" "inspect" "a281b087033cde28c3ac943dc01619523c1143bee39c7d1558ef09722abf0949", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a281b087033cde28c3ac943dc01619523c1143bee39c7d1558ef09722abf0949" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", 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/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: 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: 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: 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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[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: 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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.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 `release` profile [optimized] target(s) in 4.14s
[INFO] running `Command { std: "docker" "inspect" "a281b087033cde28c3ac943dc01619523c1143bee39c7d1558ef09722abf0949", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a281b087033cde28c3ac943dc01619523c1143bee39c7d1558ef09722abf0949" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", 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: 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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[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: 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]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[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/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: 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: `sensd` (example "thermostat") generated 1 warning (run `cargo fix --example "thermostat" -p sensd` to apply 1 suggestion)
[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]     Finished `release` profile [optimized] target(s) in 0.07s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/sensd/d979db0a85487d19/out/sensd-d979db0a85487d19)
[INFO] [stdout] 
[INFO] [stdout] running 58 tests
[INFO] [stdout] test action::handler::tests::test_attempt ... ok
[INFO] [stdout] test action::handler::tests::test_push ... ok
[INFO] [stdout] test action::trigger::tests::lte ... ok
[INFO] [stdout] test action::io::tests::test_default ... ok
[INFO] [stdout] test action::routine::meta_tests::test_constructor_w_none ... 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 io::dev::container::tests::insert_input ... ok
[INFO] [stdout] test action::routine::functionality_tests::test_attempt ... FAILED
[INFO] [stdout] test action::routine::meta_tests::test_constructor_w_log ... ok
[INFO] [stdout] test action::io::tests::test_output_fails_wo_value - should panic ... ok
[INFO] [stdout] test io::dev::input::tests::set_dir_changes_log_dir ... ok
[INFO] [stdout] test io::dev::container::tests::insert_output ... ok
[INFO] [stdout] test io::dev::input::tests::test_init_log ... ok
[INFO] [stdout] test action::io::tests::test_agrees ... ok
[INFO] [stdout] test action::routine::meta_tests::validate_command - should panic ... ok
[INFO] [stdout] test action::actions::threshold::tests::with_output_name_parameter ... ok
[INFO] [stdout] test action::actions::threshold::tests::new_name_parameter ... ok
[INFO] [stdout] test io::dev::input::tests::new_name_parameter ... ok
[INFO] [stdout] test io::dev::input::tests::new_kind_parameter ... ok
[INFO] [stdout] test io::dev::output::tests::set_dir ... ok
[INFO] [stdout] test io::dev::output::tests::new_kind_parameter ... ok
[INFO] [stdout] test io::dev::output::tests::new_name_parameter ... ok
[INFO] [stdout] test io::dev::output::tests::set_dir_changes_log_dir ... ok
[INFO] [stdout] test io::dev::container::tests::set_root ... ok
[INFO] [stdout] test io::dev::input::tests::test_init_publisher ... ok
[INFO] [stdout] test io::types::raw::tests::test_rawvalue_mul ... ok
[INFO] [stdout] test io::types::raw::tests::test_rawvalue_sub_mismatched - should panic ... ok
[INFO] [stdout] test io::types::raw::tests::test_rawvalue_sub ... ok
[INFO] [stdout] test settings::tests::set_root_into ... ok
[INFO] [stdout] test io::dev::output::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 storage::group::tests::push_input_changes_dir ... ok
[INFO] [stdout] test io::types::raw::tests::test_rawvalue_add ... ok
[INFO] [stdout] test storage::group::tests::push_output_changes_dir ... ok
[INFO] [stdout] test storage::group::tests::test_dir ... ok
[INFO] [stdout] test io::types::raw::tests::test_rawvalue_add_mismatched - should panic ... ok
[INFO] [stdout] test storage::group::tests::push_output ... ok
[INFO] [stdout] test storage::group::tests::push_input_panics - should panic ... ok
[INFO] [stdout] test io::metadata::tests::new_name_parameter ... ok
[INFO] [stdout] test storage::group::tests::push_output_panics - should panic ... ok
[INFO] [stdout] test io::types::raw::tests::test_rawvalue_div ... ok
[INFO] [stdout] test storage::group::tests::with_interval ... ok
[INFO] [stdout] test storage::group::tests::with_root ... ok
[INFO] [stdout] test storage::logging::log::tests::set_dir ... ok
[INFO] [stdout] test storage::group::tests::new_name_parameter ... ok
[INFO] [stdout] test storage::group::tests::push_input ... ok
[INFO] [stdout] test settings::tests::set_root_panics - should panic ... ok
[INFO] [stdout] test io::types::raw::tests::test_rawvalue_div_mismatched - should panic ... ok
[INFO] [stdout] test storage::group::tests::test_init_root ... 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_mul_mismatched - should panic ... ok
[INFO] [stdout] test storage::logging::types::test_event_collection::test_extendability ... ok
[INFO] [stdout] test storage::logging::log::tests::test_extend ... ok
[INFO] [stdout] test storage::logging::log::tests::test_load_save ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- action::routine::functionality_tests::test_attempt stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'action::routine::functionality_tests::test_attempt' (663) panicked at src/action/routine.rs:186:13:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: false
[INFO] [stdout]  right: true
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56587c65a331 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x56587c66f38a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x56587c65e85c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x56587c635406 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x56587c652149 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x56587c5e7500 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x56587c652302 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x56587c6354b2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x56587c62e079 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x56587c6360bd - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x56587c66fabc - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x56587c66f9d3 - core[a373ad73a504971]::panicking::assert_failed_inner
[INFO] [stdout]   12:     0x56587c5d4021 - core[a373ad73a504971]::panicking::assert_failed::<bool, bool>
[INFO] [stdout]   13:     0x56587c5c79a0 - <sensd[33ba23e861599c84]::action::routine::functionality_tests::test_attempt::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x56587c5da94b - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   15:     0x56587c5e7b25 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   16:     0x56587c5e1414 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x56587c5eabb2 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x56587c659b8f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x7bb7d0f7ddfa - <unknown>
[INFO] [stdout]   20:     0x7bb7d10113d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     action::routine::functionality_tests::test_attempt
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 57 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "a281b087033cde28c3ac943dc01619523c1143bee39c7d1558ef09722abf0949", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a281b087033cde28c3ac943dc01619523c1143bee39c7d1558ef09722abf0949", kill_on_drop: false }`
[INFO] [stdout] a281b087033cde28c3ac943dc01619523c1143bee39c7d1558ef09722abf0949
