[INFO] fetching crate shared-mutex 0.3.1...
[INFO] testing shared-mutex-0.3.1 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate shared-mutex 0.3.1 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate shared-mutex 0.3.1
[INFO] finished tweaking crates.io crate shared-mutex 0.3.1
[INFO] tweaked toml for crates.io crate shared-mutex 0.3.1 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate shared-mutex 0.3.1 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 5 packages to latest compatible versions
[INFO] [stderr]       Adding scoped-pool v0.1.10 (available: v1.0.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1e6874fb638400feeb4e94c2a7f92950243ad899cf8a51e2542df92cb6df8685
[INFO] running `Command { std: "docker" "start" "-a" "1e6874fb638400feeb4e94c2a7f92950243ad899cf8a51e2542df92cb6df8685", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1e6874fb638400feeb4e94c2a7f92950243ad899cf8a51e2542df92cb6df8685", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1e6874fb638400feeb4e94c2a7f92950243ad899cf8a51e2542df92cb6df8685", kill_on_drop: false }`
[INFO] [stdout] 1e6874fb638400feeb4e94c2a7f92950243ad899cf8a51e2542df92cb6df8685
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e7ab280f05bce2d5fea18aab2cf64e8f4d04db34bb9bc4266c92c0b9d70da0a7
[INFO] running `Command { std: "docker" "start" "-a" "e7ab280f05bce2d5fea18aab2cf64e8f4d04db34bb9bc4266c92c0b9d70da0a7", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]    Compiling poison v0.1.0
[INFO] [stderr]    Compiling shared-mutex v0.3.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/lib.rs:80:16
[INFO] [stdout]    |
[INFO] [stdout] 80 |             Ok(try!(unsafe { SharedMutexReadGuard::new(self) }))
[INFO] [stdout]    |                ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/lib.rs:92:16
[INFO] [stdout]    |
[INFO] [stdout] 92 |             Ok(try!(unsafe { SharedMutexWriteGuard::new(self) }))
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/lib.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |         unsafe { self.data.into_inner().into_inner() }
[INFO] [stdout]    |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/lib.rs:62:18
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn write(&self) -> LockResult<SharedMutexWriteGuard<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]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn write(&self) -> LockResult<SharedMutexWriteGuard<'_, T>> {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/lib.rs:69:17
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn read(&self) -> LockResult<SharedMutexReadGuard<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] 69 |     pub fn read(&self) -> LockResult<SharedMutexReadGuard<'_, T>> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/lib.rs:78:21
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn try_read(&self) -> TryLockResult<SharedMutexReadGuard<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] 78 |     pub fn try_read(&self) -> TryLockResult<SharedMutexReadGuard<'_, T>> {
[INFO] [stdout]    |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/lib.rs:90:22
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn try_write(&self) -> TryLockResult<SharedMutexWriteGuard<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] 90 |     pub fn try_write(&self) -> TryLockResult<SharedMutexWriteGuard<'_, T>> {
[INFO] [stdout]    |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/monitor.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn read(&self) -> LockResult<MonitorReadGuard<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] 47 |     pub fn read(&self) -> LockResult<MonitorReadGuard<'_, T>> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/monitor.rs:57:18
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn write(&self) -> LockResult<MonitorWriteGuard<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] 57 |     pub fn write(&self) -> LockResult<MonitorWriteGuard<'_, T>> {
[INFO] [stdout]    |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]    --> src/raw.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let _ = self.unlock_read_to();
[INFO] [stdout]     |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(let_underscore_lock)]` (part of `#[warn(let_underscore)]`) on by default
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let _unused = self.unlock_read_to();
[INFO] [stdout]     |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 141 -         let _ = self.unlock_read_to();
[INFO] [stdout] 141 +         drop(self.unlock_read_to());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/raw.rs:144:23
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn unlock_read_to(&self) -> MutexGuard<State> {
[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] 144 |     fn unlock_read_to(&self) -> MutexGuard<'_, State> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]    --> src/raw.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let _ = self.unlock_write_to();
[INFO] [stdout]     |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]     |
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let _unused = self.unlock_write_to();
[INFO] [stdout]     |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 173 -         let _ = self.unlock_write_to();
[INFO] [stdout] 173 +         drop(self.unlock_write_to());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/raw.rs:177:24
[INFO] [stdout]     |
[INFO] [stdout] 177 |     fn unlock_write_to(&self) -> MutexGuard<State> {
[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] 177 |     fn unlock_write_to(&self) -> MutexGuard<'_, State> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.35s
[INFO] running `Command { std: "docker" "inspect" "e7ab280f05bce2d5fea18aab2cf64e8f4d04db34bb9bc4266c92c0b9d70da0a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e7ab280f05bce2d5fea18aab2cf64e8f4d04db34bb9bc4266c92c0b9d70da0a7", kill_on_drop: false }`
[INFO] [stdout] e7ab280f05bce2d5fea18aab2cf64e8f4d04db34bb9bc4266c92c0b9d70da0a7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1623ad908b570ffe9db900641d163bd479846382afdfb8ba3b7183c66e92fcad
[INFO] running `Command { std: "docker" "start" "-a" "1623ad908b570ffe9db900641d163bd479846382afdfb8ba3b7183c66e92fcad", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]    Compiling scopeguard v0.1.2
[INFO] [stderr]    Compiling variance v0.1.3
[INFO] [stderr]    Compiling crossbeam v0.2.12
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/lib.rs:80:16
[INFO] [stdout]    |
[INFO] [stdout] 80 |             Ok(try!(unsafe { SharedMutexReadGuard::new(self) }))
[INFO] [stdout]    |                ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/lib.rs:92:16
[INFO] [stdout]    |
[INFO] [stdout] 92 |             Ok(try!(unsafe { SharedMutexWriteGuard::new(self) }))
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/lib.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |         unsafe { self.data.into_inner().into_inner() }
[INFO] [stdout]    |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/lib.rs:62:18
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn write(&self) -> LockResult<SharedMutexWriteGuard<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]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn write(&self) -> LockResult<SharedMutexWriteGuard<'_, T>> {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/lib.rs:69:17
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn read(&self) -> LockResult<SharedMutexReadGuard<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] 69 |     pub fn read(&self) -> LockResult<SharedMutexReadGuard<'_, T>> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/lib.rs:78:21
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn try_read(&self) -> TryLockResult<SharedMutexReadGuard<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] 78 |     pub fn try_read(&self) -> TryLockResult<SharedMutexReadGuard<'_, T>> {
[INFO] [stdout]    |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/lib.rs:90:22
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn try_write(&self) -> TryLockResult<SharedMutexWriteGuard<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] 90 |     pub fn try_write(&self) -> TryLockResult<SharedMutexWriteGuard<'_, T>> {
[INFO] [stdout]    |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/monitor.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn read(&self) -> LockResult<MonitorReadGuard<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] 47 |     pub fn read(&self) -> LockResult<MonitorReadGuard<'_, T>> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/monitor.rs:57:18
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn write(&self) -> LockResult<MonitorWriteGuard<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] 57 |     pub fn write(&self) -> LockResult<MonitorWriteGuard<'_, T>> {
[INFO] [stdout]    |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]    --> src/raw.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let _ = self.unlock_read_to();
[INFO] [stdout]     |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(let_underscore_lock)]` (part of `#[warn(let_underscore)]`) on by default
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let _unused = self.unlock_read_to();
[INFO] [stdout]     |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 141 -         let _ = self.unlock_read_to();
[INFO] [stdout] 141 +         drop(self.unlock_read_to());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/raw.rs:144:23
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn unlock_read_to(&self) -> MutexGuard<State> {
[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] 144 |     fn unlock_read_to(&self) -> MutexGuard<'_, State> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]    --> src/raw.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let _ = self.unlock_write_to();
[INFO] [stdout]     |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]     |
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let _unused = self.unlock_write_to();
[INFO] [stdout]     |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 173 -         let _ = self.unlock_write_to();
[INFO] [stdout] 173 +         drop(self.unlock_write_to());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/raw.rs:177:24
[INFO] [stdout]     |
[INFO] [stdout] 177 |     fn unlock_write_to(&self) -> MutexGuard<State> {
[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] 177 |     fn unlock_write_to(&self) -> MutexGuard<'_, State> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling scoped-pool v0.1.10
[INFO] [stderr]    Compiling shared-mutex v0.3.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/lib.rs:80:16
[INFO] [stdout]    |
[INFO] [stdout] 80 |             Ok(try!(unsafe { SharedMutexReadGuard::new(self) }))
[INFO] [stdout]    |                ^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:1:24
[INFO] [stdout]    |
[INFO] [stdout]  1 | #![cfg_attr(test, deny(warnings))]
[INFO] [stdout]    |                        ^^^^^^^^
[INFO] [stdout]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/lib.rs:92:16
[INFO] [stdout]    |
[INFO] [stdout] 92 |             Ok(try!(unsafe { SharedMutexWriteGuard::new(self) }))
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/lib.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |         unsafe { self.data.into_inner().into_inner() }
[INFO] [stdout]    |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` implied by `#[warn(warnings)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/lib.rs:62:18
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn write(&self) -> LockResult<SharedMutexWriteGuard<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]    = note: `#[warn(mismatched_lifetime_syntaxes)]` implied by `#[warn(warnings)]`
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn write(&self) -> LockResult<SharedMutexWriteGuard<'_, T>> {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/lib.rs:69:17
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub fn read(&self) -> LockResult<SharedMutexReadGuard<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] 69 |     pub fn read(&self) -> LockResult<SharedMutexReadGuard<'_, T>> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/lib.rs:78:21
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn try_read(&self) -> TryLockResult<SharedMutexReadGuard<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] 78 |     pub fn try_read(&self) -> TryLockResult<SharedMutexReadGuard<'_, T>> {
[INFO] [stdout]    |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/lib.rs:90:22
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn try_write(&self) -> TryLockResult<SharedMutexWriteGuard<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] 90 |     pub fn try_write(&self) -> TryLockResult<SharedMutexWriteGuard<'_, T>> {
[INFO] [stdout]    |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/monitor.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn read(&self) -> LockResult<MonitorReadGuard<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] 47 |     pub fn read(&self) -> LockResult<MonitorReadGuard<'_, T>> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/monitor.rs:57:18
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn write(&self) -> LockResult<MonitorWriteGuard<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] 57 |     pub fn write(&self) -> LockResult<MonitorWriteGuard<'_, T>> {
[INFO] [stdout]    |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]    --> src/raw.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let _ = self.unlock_read_to();
[INFO] [stdout]     |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(let_underscore_lock)]` (part of `#[warn(let_underscore)]`) on by default
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let _unused = self.unlock_read_to();
[INFO] [stdout]     |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 141 -         let _ = self.unlock_read_to();
[INFO] [stdout] 141 +         drop(self.unlock_read_to());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/raw.rs:144:23
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn unlock_read_to(&self) -> MutexGuard<State> {
[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] 144 |     fn unlock_read_to(&self) -> MutexGuard<'_, State> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-binding let on a synchronization lock
[INFO] [stdout]    --> src/raw.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let _ = self.unlock_write_to();
[INFO] [stdout]     |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stdout]     |
[INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let _unused = self.unlock_write_to();
[INFO] [stdout]     |              ++++++
[INFO] [stdout] help: consider immediately dropping the value
[INFO] [stdout]     |
[INFO] [stdout] 173 -         let _ = self.unlock_write_to();
[INFO] [stdout] 173 +         drop(self.unlock_write_to());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/raw.rs:177:24
[INFO] [stdout]     |
[INFO] [stdout] 177 |     fn unlock_write_to(&self) -> MutexGuard<State> {
[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] 177 |     fn unlock_write_to(&self) -> MutexGuard<'_, State> {
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.78s
[INFO] running `Command { std: "docker" "inspect" "1623ad908b570ffe9db900641d163bd479846382afdfb8ba3b7183c66e92fcad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1623ad908b570ffe9db900641d163bd479846382afdfb8ba3b7183c66e92fcad", kill_on_drop: false }`
[INFO] [stdout] 1623ad908b570ffe9db900641d163bd479846382afdfb8ba3b7183c66e92fcad
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 981ea9eaff3f13fd31586b396a310d1daa916fbd25b2a08289b0917df0cfbec2
[INFO] running `Command { std: "docker" "start" "-a" "981ea9eaff3f13fd31586b396a310d1daa916fbd25b2a08289b0917df0cfbec2", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/lib.rs:80:16
[INFO] [stderr]    |
[INFO] [stderr] 80 |             Ok(try!(unsafe { SharedMutexReadGuard::new(self) }))
[INFO] [stderr]    |                ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/lib.rs:92:16
[INFO] [stderr]    |
[INFO] [stderr] 92 |             Ok(try!(unsafe { SharedMutexWriteGuard::new(self) }))
[INFO] [stderr]    |                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]   --> src/lib.rs:55:9
[INFO] [stderr]    |
[INFO] [stderr] 55 |         unsafe { self.data.into_inner().into_inner() }
[INFO] [stderr]    |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/lib.rs:62:18
[INFO] [stderr]    |
[INFO] [stderr] 62 |     pub fn write(&self) -> LockResult<SharedMutexWriteGuard<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]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 62 |     pub fn write(&self) -> LockResult<SharedMutexWriteGuard<'_, T>> {
[INFO] [stderr]    |                                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/lib.rs:69:17
[INFO] [stderr]    |
[INFO] [stderr] 69 |     pub fn read(&self) -> LockResult<SharedMutexReadGuard<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] 69 |     pub fn read(&self) -> LockResult<SharedMutexReadGuard<'_, T>> {
[INFO] [stderr]    |                                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/lib.rs:78:21
[INFO] [stderr]    |
[INFO] [stderr] 78 |     pub fn try_read(&self) -> TryLockResult<SharedMutexReadGuard<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] 78 |     pub fn try_read(&self) -> TryLockResult<SharedMutexReadGuard<'_, T>> {
[INFO] [stderr]    |                                                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/lib.rs:90:22
[INFO] [stderr]    |
[INFO] [stderr] 90 |     pub fn try_write(&self) -> TryLockResult<SharedMutexWriteGuard<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] 90 |     pub fn try_write(&self) -> TryLockResult<SharedMutexWriteGuard<'_, T>> {
[INFO] [stderr]    |                                                                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/monitor.rs:47:17
[INFO] [stderr]    |
[INFO] [stderr] 47 |     pub fn read(&self) -> LockResult<MonitorReadGuard<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] 47 |     pub fn read(&self) -> LockResult<MonitorReadGuard<'_, T>> {
[INFO] [stderr]    |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/monitor.rs:57:18
[INFO] [stderr]    |
[INFO] [stderr] 57 |     pub fn write(&self) -> LockResult<MonitorWriteGuard<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] 57 |     pub fn write(&self) -> LockResult<MonitorWriteGuard<'_, T>> {
[INFO] [stderr]    |                                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: non-binding let on a synchronization lock
[INFO] [stderr]    --> src/raw.rs:141:13
[INFO] [stderr]     |
[INFO] [stderr] 141 |         let _ = self.unlock_read_to();
[INFO] [stderr]     |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(let_underscore_lock)]` (part of `#[warn(let_underscore)]`) on by default
[INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stderr]     |
[INFO] [stderr] 141 |         let _unused = self.unlock_read_to();
[INFO] [stderr]     |              ++++++
[INFO] [stderr] help: consider immediately dropping the value
[INFO] [stderr]     |
[INFO] [stderr] 141 -         let _ = self.unlock_read_to();
[INFO] [stderr] 141 +         drop(self.unlock_read_to());
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/raw.rs:144:23
[INFO] [stderr]     |
[INFO] [stderr] 144 |     fn unlock_read_to(&self) -> MutexGuard<State> {
[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] 144 |     fn unlock_read_to(&self) -> MutexGuard<'_, State> {
[INFO] [stderr]     |                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: non-binding let on a synchronization lock
[INFO] [stderr]    --> src/raw.rs:173:13
[INFO] [stderr]     |
[INFO] [stderr] 173 |         let _ = self.unlock_write_to();
[INFO] [stderr]     |             ^ this lock is not assigned to a binding and is immediately dropped
[INFO] [stderr]     |
[INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value
[INFO] [stderr]     |
[INFO] [stderr] 173 |         let _unused = self.unlock_write_to();
[INFO] [stderr]     |              ++++++
[INFO] [stderr] help: consider immediately dropping the value
[INFO] [stderr]     |
[INFO] [stderr] 173 -         let _ = self.unlock_write_to();
[INFO] [stderr] 173 +         drop(self.unlock_write_to());
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/raw.rs:177:24
[INFO] [stderr]     |
[INFO] [stderr] 177 |     fn unlock_write_to(&self) -> MutexGuard<State> {
[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] 177 |     fn unlock_write_to(&self) -> MutexGuard<'_, State> {
[INFO] [stderr]     |                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: `shared-mutex` (lib) generated 13 warnings (run `cargo fix --lib -p shared-mutex` to apply 10 suggestions)
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/lib.rs:80:16
[INFO] [stderr]    |
[INFO] [stderr] 80 |             Ok(try!(unsafe { SharedMutexReadGuard::new(self) }))
[INFO] [stderr]    |                ^^^
[INFO] [stderr]    |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]   --> src/lib.rs:1:24
[INFO] [stderr]    |
[INFO] [stderr]  1 | #![cfg_attr(test, deny(warnings))]
[INFO] [stderr]    |                        ^^^^^^^^
[INFO] [stderr]    = note: `#[warn(deprecated)]` implied by `#[warn(warnings)]`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary `unsafe` block
[INFO] [stderr]   --> src/lib.rs:55:9
[INFO] [stderr]    |
[INFO] [stderr] 55 |         unsafe { self.data.into_inner().into_inner() }
[INFO] [stderr]    |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_unsafe)]` implied by `#[warn(warnings)]`
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/lib.rs:62:18
[INFO] [stderr]    |
[INFO] [stderr] 62 |     pub fn write(&self) -> LockResult<SharedMutexWriteGuard<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]    = note: `#[warn(mismatched_lifetime_syntaxes)]` implied by `#[warn(warnings)]`
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 62 |     pub fn write(&self) -> LockResult<SharedMutexWriteGuard<'_, T>> {
[INFO] [stderr]    |                                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: `shared-mutex` (lib test) generated 13 warnings (10 duplicates) (run `cargo fix --lib -p shared-mutex --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shared_mutex-090a40e66586f4e1)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test raw::test::test_raw_is ... ok
[INFO] [stdout] test test::test_mapping ... ok
[INFO] [stdout] test test::test_map_recover ... ok
[INFO] [stdout] test test::test_simple_single_thread ... ok
[INFO] [stdout] test test::test_try_locking ... ok
[INFO] [stdout] test test::test_simple_waiting ... ok
[INFO] [stdout] test test::test_simple_multithreaded ... ok
[INFO] [stdout] test test::test_locking_multithreaded ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests shared_mutex
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "981ea9eaff3f13fd31586b396a310d1daa916fbd25b2a08289b0917df0cfbec2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "981ea9eaff3f13fd31586b396a310d1daa916fbd25b2a08289b0917df0cfbec2", kill_on_drop: false }`
[INFO] [stdout] 981ea9eaff3f13fd31586b396a310d1daa916fbd25b2a08289b0917df0cfbec2
