[INFO] cloning repository https://github.com/KaguraMilet/MiniLSM
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/KaguraMilet/MiniLSM" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKaguraMilet%2FMiniLSM", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKaguraMilet%2FMiniLSM'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bd4dfa7309f53eca482c9eadea8c433e7615a529
[INFO] checking KaguraMilet/MiniLSM/bd4dfa7309f53eca482c9eadea8c433e7615a529 against master#292be5c7c05138d753bbd4b30db7a3f1a5c914f7 for pr-148271
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKaguraMilet%2FMiniLSM" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-5-tc1/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-5-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/KaguraMilet/MiniLSM
[INFO] finished tweaking git repo https://github.com/KaguraMilet/MiniLSM
[INFO] tweaked toml for git repo https://github.com/KaguraMilet/MiniLSM written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/KaguraMilet/MiniLSM on toolchain 292be5c7c05138d753bbd4b30db7a3f1a5c914f7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+292be5c7c05138d753bbd4b30db7a3f1a5c914f7" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/KaguraMilet/MiniLSM 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" "+292be5c7c05138d753bbd4b30db7a3f1a5c914f7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded error-code v3.2.0
[INFO] [stderr]   Downloaded triomphe v0.1.11
[INFO] [stderr]   Downloaded ouroboros_macro v0.18.4
[INFO] [stderr]   Downloaded clipboard-win v5.3.1
[INFO] [stderr]   Downloaded plotters-svg v0.3.6
[INFO] [stderr]   Downloaded ouroboros v0.18.4
[INFO] [stderr]   Downloaded foldhash v0.1.1
[INFO] [stderr]   Downloaded plotters-backend v0.3.6
[INFO] [stderr]   Downloaded sdd v3.0.3
[INFO] [stderr]   Downloaded duct v0.13.7
[INFO] [stderr]   Downloaded crossbeam-skiplist v0.1.3
[INFO] [stderr]   Downloaded proc-macro2 v1.0.83
[INFO] [stderr]   Downloaded structured-logger v1.0.3
[INFO] [stderr]   Downloaded raw-cpuid v11.1.0
[INFO] [stderr]   Downloaded rustyline v13.0.0
[INFO] [stderr]   Downloaded plotters v0.3.6
[INFO] [stderr]   Downloaded scc v2.2.0
[INFO] [stderr]   Downloaded moka v0.9.9
[INFO] [stderr]   Downloaded moka v0.12.8
[INFO] [stderr]   Downloaded farmhash v1.1.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+292be5c7c05138d753bbd4b30db7a3f1a5c914f7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 201140ad91a34274522694212589b54c41d69d926e15716f454b1d87c6915f36
[INFO] running `Command { std: "docker" "start" "-a" "201140ad91a34274522694212589b54c41d69d926e15716f454b1d87c6915f36", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "201140ad91a34274522694212589b54c41d69d926e15716f454b1d87c6915f36", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "201140ad91a34274522694212589b54c41d69d926e15716f454b1d87c6915f36", kill_on_drop: false }`
[INFO] [stdout] 201140ad91a34274522694212589b54c41d69d926e15716f454b1d87c6915f36
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+292be5c7c05138d753bbd4b30db7a3f1a5c914f7" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d6502e21b90ae1f71fda62fe604d713e80ac8ae5fa3a158cd108d1e108756210
[INFO] running `Command { std: "docker" "start" "-a" "d6502e21b90ae1f71fda62fe604d713e80ac8ae5fa3a158cd108d1e108756210", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.83
[INFO] [stderr]    Compiling serde v1.0.204
[INFO] [stderr]     Checking bitflags v2.5.0
[INFO] [stderr]    Compiling typeid v1.0.2
[INFO] [stderr]     Checking memchr v2.7.2
[INFO] [stderr]    Compiling rustix v0.38.34
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.0
[INFO] [stderr]     Checking anstyle-parse v0.2.4
[INFO] [stderr]     Checking anstyle v1.0.7
[INFO] [stderr]     Checking anstyle-query v1.0.3
[INFO] [stderr]     Checking colorchoice v1.0.1
[INFO] [stderr]    Compiling serde_json v1.0.120
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking unicode-width v0.1.12
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking clap_lex v0.7.0
[INFO] [stderr]    Compiling either v1.12.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.13
[INFO] [stderr]     Checking triomphe v0.1.11
[INFO] [stderr]     Checking unicode-segmentation v1.11.0
[INFO] [stderr]     Checking bytes v1.6.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking uuid v1.8.0
[INFO] [stderr]     Checking tagptr v0.2.0
[INFO] [stderr]     Checking anstream v0.6.14
[INFO] [stderr]     Checking aliasable v0.1.3
[INFO] [stderr]     Checking farmhash v1.1.5
[INFO] [stderr]    Compiling moka v0.9.9
[INFO] [stderr]     Checking quanta v0.11.1
[INFO] [stderr]     Checking scheduled-thread-pool v0.2.7
[INFO] [stderr]     Checking nix v0.27.1
[INFO] [stderr]     Checking crossbeam-skiplist v0.1.3
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking arc-swap v1.7.1
[INFO] [stderr]     Checking fastrand v2.1.0
[INFO] [stderr]     Checking raw-cpuid v11.1.0
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling moka v0.12.8
[INFO] [stderr]     Checking nix v0.28.0
[INFO] [stderr]     Checking clap_builder v4.5.9
[INFO] [stderr]     Checking tokio v1.40.0
[INFO] [stderr]     Checking foldhash v0.1.1
[INFO] [stderr]     Checking xxhash-rust v0.8.12
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]     Checking half v2.4.1
[INFO] [stderr]     Checking regex-syntax v0.8.3
[INFO] [stderr]     Checking plotters-backend v0.3.6
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking rayon-core v1.12.1
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking plotters-svg v0.3.6
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]     Checking sdd v3.0.3
[INFO] [stderr]    Compiling syn v2.0.66
[INFO] [stderr]     Checking scc v2.2.0
[INFO] [stderr]     Checking plotters v0.3.6
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking is-terminal v0.4.12
[INFO] [stderr]     Checking shared_child v1.0.0
[INFO] [stderr]     Checking os_pipe v1.1.5
[INFO] [stderr]     Checking console v0.15.8
[INFO] [stderr]     Checking duct v0.13.7
[INFO] [stderr]     Checking quanta v0.12.3
[INFO] [stderr]     Checking regex-automata v0.4.6
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking fd-lock v4.0.2
[INFO] [stderr]     Checking tempfile v3.10.1
[INFO] [stderr]     Checking regex v1.10.4
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]    Compiling proc-macro2-diagnostics v0.10.1
[INFO] [stderr]    Compiling serde_derive v1.0.204
[INFO] [stderr]    Compiling clap_derive v4.5.8
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]    Compiling ouroboros_macro v0.18.4
[INFO] [stderr]    Compiling serial_test_derive v3.1.1
[INFO] [stderr]     Checking thiserror v1.0.63
[INFO] [stderr]     Checking ouroboros v0.18.4
[INFO] [stderr]     Checking clap v4.5.9
[INFO] [stderr]     Checking mini-lsm-xtask v0.2.0 (/opt/rustwide/workdir/xtask)
[INFO] [stderr]     Checking erased-serde v0.4.5
[INFO] [stderr]     Checking serde_fmt v1.0.3
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking value-bag-serde1 v1.9.0
[INFO] [stderr]     Checking value-bag v1.9.0
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking log v0.4.22
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]     Checking rustyline v13.0.0
[INFO] [stderr]     Checking structured-logger v1.0.3
[INFO] [stderr]     Checking rustyline v14.0.0
[INFO] [stderr]     Checking serial_test v3.1.1
[INFO] [stderr]     Checking mini-lsm-starter v0.2.0 (/opt/rustwide/workdir/mini-lsm-starter)
[INFO] [stderr]     Checking mini-lsm v0.2.0 (/opt/rustwide/workdir/mini-lsm)
[INFO] [stderr]     Checking mini-lsm-mvcc v0.2.0 (/opt/rustwide/workdir/mini-lsm-mvcc)
[INFO] [stdout] error[E0432]: unresolved import `foldhash`
[INFO] [stdout]   --> mini-lsm/src/mvcc.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use foldhash::{HashSet, HashSetExt};
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `foldhash`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `foldhash`, use `cargo add foldhash` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::key::TimeStamp`
[INFO] [stdout]   --> mini-lsm/src/mvcc.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::{key::TimeStamp, lsm_storage::LsmStorageInner};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ no `TimeStamp` in `key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `foldhash`
[INFO] [stdout]   --> mini-lsm/src/mvcc/txn.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use foldhash::HashSet;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `foldhash`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `foldhash`, use `cargo add foldhash` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `log`
[INFO] [stdout]   --> mini-lsm/src/mvcc/txn.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use log::info;
[INFO] [stdout]    |     ^^^ use of unresolved module or unlinked crate `log`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `log`, use `cargo add log` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `foldhash`
[INFO] [stdout]   --> mini-lsm/src/mvcc.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use foldhash::{HashSet, HashSetExt};
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `foldhash`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `foldhash`, use `cargo add foldhash` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::key::TimeStamp`
[INFO] [stdout]   --> mini-lsm/src/mvcc.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::{key::TimeStamp, lsm_storage::LsmStorageInner};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ no `TimeStamp` in `key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `foldhash`
[INFO] [stdout]   --> mini-lsm/src/mvcc/txn.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use foldhash::HashSet;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `foldhash`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `foldhash`, use `cargo add foldhash` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `log`
[INFO] [stdout]   --> mini-lsm/src/mvcc/txn.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use log::info;
[INFO] [stdout]    |     ^^^ use of unresolved module or unlinked crate `log`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `log`, use `cargo add log` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> mini-lsm/src/mvcc/txn.rs:49:39
[INFO] [stdout]    |
[INFO] [stdout] 49 |             let mut read_write_sets = key_hashes.lock();
[INFO] [stdout]    |                                       ^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> mini-lsm/src/mvcc/txn.rs:49:39
[INFO] [stdout]    |
[INFO] [stdout] 49 |             let mut read_write_sets = key_hashes.lock();
[INFO] [stdout]    |                                       ^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_with_ts` found for struct `std::sync::Arc<LsmStorageInner>` in the current scope
[INFO] [stdout]   --> mini-lsm/src/mvcc/txn.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 |         self.inner.get_with_ts(key, self.read_ts)
[INFO] [stdout]    |                    ^^^^^^^^^^^ method not found in `std::sync::Arc<LsmStorageInner>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `version` is never read
[INFO] [stdout]    --> mini-lsm-starter/src/common/hybrid_lock.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub struct ShardGuard<'a, T: ?Sized> {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 188 |     latch: &'a HybridLatch<T>,
[INFO] [stdout] 189 |     version: u64,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (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]   --> mini-lsm-starter/src/block/iterator.rs:65:16
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn key(&self) -> KeySlice {
[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] 65 |     pub fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> mini-lsm-starter/src/iterators/concat_iterator.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn key(&self) -> KeySlice {
[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] 114 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]     |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-starter/src/iterators/merge_iterator.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn key(&self) -> KeySlice {
[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] 89 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-starter/src/key.rs:76:25
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn as_key_slice(&self) -> KeySlice {
[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] 76 |     pub fn as_key_slice(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> mini-lsm-starter/src/key.rs:106:25
[INFO] [stdout]     |
[INFO] [stdout] 106 |     pub fn as_key_slice(&self) -> KeySlice {
[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] 106 |     pub fn as_key_slice(&self) -> KeySlice<'_> {
[INFO] [stdout]     |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_with_ts` found for struct `std::sync::Arc<LsmStorageInner>` in the current scope
[INFO] [stdout]   --> mini-lsm/src/mvcc/txn.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 |         self.inner.get_with_ts(key, self.read_ts)
[INFO] [stdout]    |                    ^^^^^^^^^^^ method not found in `std::sync::Arc<LsmStorageInner>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> mini-lsm-starter/src/mem_table.rs:244:12
[INFO] [stdout]     |
[INFO] [stdout] 244 |     fn key(&self) -> KeySlice {
[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] 244 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]     |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-starter/src/table/iterator.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn key(&self) -> KeySlice {
[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] 77 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `scan_with_ts` found for struct `std::sync::Arc<LsmStorageInner>` in the current scope
[INFO] [stdout]   --> mini-lsm/src/mvcc/txn.rs:75:35
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let lsm_iter = self.inner.scan_with_ts(lower, upper, self.read_ts)?;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^ method not found in `std::sync::Arc<LsmStorageInner>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> mini-lsm/src/mvcc/txn.rs:86:39
[INFO] [stdout]    |
[INFO] [stdout] 86 |             let mut read_write_sets = key_hashes.lock();
[INFO] [stdout]    |                                       ^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:101:39
[INFO] [stdout]     |
[INFO] [stdout] 101 |             let mut read_write_sets = key_hashes.lock();
[INFO] [stdout]     |                                       ^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `scan_with_ts` found for struct `std::sync::Arc<LsmStorageInner>` in the current scope
[INFO] [stdout]   --> mini-lsm/src/mvcc/txn.rs:75:35
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let lsm_iter = self.inner.scan_with_ts(lower, upper, self.read_ts)?;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^ method not found in `std::sync::Arc<LsmStorageInner>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> mini-lsm/src/mvcc/txn.rs:86:39
[INFO] [stdout]    |
[INFO] [stdout] 86 |             let mut read_write_sets = key_hashes.lock();
[INFO] [stdout]    |                                       ^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:101:39
[INFO] [stdout]     |
[INFO] [stdout] 101 |             let mut read_write_sets = key_hashes.lock();
[INFO] [stdout]     |                                       ^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `mvcc` found for struct `std::sync::Arc<LsmStorageInner>` in the current scope
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:115:40
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let _commit_guard = self.inner.mvcc().commit_lock.lock();
[INFO] [stdout]     |                                        ^^^^-- help: remove the arguments
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        field, not a method
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `mvcc` found for struct `std::sync::Arc<LsmStorageInner>` in the current scope
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:115:40
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let _commit_guard = self.inner.mvcc().commit_lock.lock();
[INFO] [stdout]     |                                        ^^^^-- help: remove the arguments
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        field, not a method
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `write_batch_inner` found for struct `std::sync::Arc<LsmStorageInner>` in the current scope
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:133:36
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let commit_ts = self.inner.write_batch_inner(&batch)?;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `write_batch` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 133 -         let commit_ts = self.inner.write_batch_inner(&batch)?;
[INFO] [stdout] 133 +         let commit_ts = self.inner.write_batch(&batch)?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:136:49
[INFO] [stdout]     |
[INFO] [stdout] 136 |             let write_set = std::mem::take(&mut key_hashes.lock().1);
[INFO] [stdout]     |                                                 ^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `mvcc` found for struct `std::sync::Arc<LsmStorageInner>` in the current scope
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:144:18
[INFO] [stdout]     |
[INFO] [stdout] 142 |               assert!(self
[INFO] [stdout]     |  _____________________-
[INFO] [stdout] 143 | |                 .inner
[INFO] [stdout] 144 | |                 .mvcc()
[INFO] [stdout]     | |                 -^^^^-- help: remove the arguments
[INFO] [stdout]     | |                 ||
[INFO] [stdout]     | |_________________|field, not a method
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `write_batch_inner` found for struct `std::sync::Arc<LsmStorageInner>` in the current scope
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:133:36
[INFO] [stdout]     |
[INFO] [stdout] 133 |         let commit_ts = self.inner.write_batch_inner(&batch)?;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `write_batch` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 133 -         let commit_ts = self.inner.write_batch_inner(&batch)?;
[INFO] [stdout] 133 +         let commit_ts = self.inner.write_batch(&batch)?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:136:49
[INFO] [stdout]     |
[INFO] [stdout] 136 |             let write_set = std::mem::take(&mut key_hashes.lock().1);
[INFO] [stdout]     |                                                 ^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `mvcc` found for struct `std::sync::Arc<LsmStorageInner>` in the current scope
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:150:24
[INFO] [stdout]     |
[INFO] [stdout] 150 |             self.inner.mvcc().vacuum();
[INFO] [stdout]     |                        ^^^^-- help: remove the arguments
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        field, not a method
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:165:46
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let (ref read_set, ref write_set) = *rw_sets.lock();
[INFO] [stdout]     |                                              ^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 168 |         if write_set.is_empty() {
[INFO] [stdout]     |            ^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `mvcc` found for struct `std::sync::Arc<LsmStorageInner>` in the current scope
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:144:18
[INFO] [stdout]     |
[INFO] [stdout] 142 |               assert!(self
[INFO] [stdout]     |  _____________________-
[INFO] [stdout] 143 | |                 .inner
[INFO] [stdout] 144 | |                 .mvcc()
[INFO] [stdout]     | |                 -^^^^-- help: remove the arguments
[INFO] [stdout]     | |                 ||
[INFO] [stdout]     | |_________________|field, not a method
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `mvcc` found for struct `std::sync::Arc<LsmStorageInner>` in the current scope
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:172:41
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let committed_txns = self.inner.mvcc().committed_txns.lock();
[INFO] [stdout]     |                                         ^^^^-- help: remove the arguments
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         field, not a method
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `mvcc` found for struct `std::sync::Arc<LsmStorageInner>` in the current scope
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:150:24
[INFO] [stdout]     |
[INFO] [stdout] 150 |             self.inner.mvcc().vacuum();
[INFO] [stdout]     |                        ^^^^-- help: remove the arguments
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        field, not a method
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:165:46
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let (ref read_set, ref write_set) = *rw_sets.lock();
[INFO] [stdout]     |                                              ^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 168 |         if write_set.is_empty() {
[INFO] [stdout]     |            ^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `mvcc` found for struct `std::sync::Arc<LsmStorageInner>` in the current scope
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:172:41
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let committed_txns = self.inner.mvcc().committed_txns.lock();
[INFO] [stdout]     |                                         ^^^^-- help: remove the arguments
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         field, not a method
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `mvcc` found for struct `std::sync::Arc<LsmStorageInner>` in the current scope
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:185:33
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let mut ts = self.inner.mvcc().ts.lock();
[INFO] [stdout]     |                                 ^^^^-- help: remove the arguments
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 field, not a method
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `mvcc` found for struct `std::sync::Arc<LsmStorageInner>` in the current scope
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:185:33
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let mut ts = self.inner.mvcc().ts.lock();
[INFO] [stdout]     |                                 ^^^^-- help: remove the arguments
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 field, not a method
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:255:38
[INFO] [stdout]     |
[INFO] [stdout] 255 |         txn.key_hashes.as_ref().map(|key_hashes| {
[INFO] [stdout]     |                                      ^^^^^^^^^^
[INFO] [stdout] 256 |             key_hashes
[INFO] [stdout]     |             ---------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 255 |         txn.key_hashes.as_ref().map(|key_hashes: /* Type */| {
[INFO] [stdout]     |                                                ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:255:38
[INFO] [stdout]     |
[INFO] [stdout] 255 |         txn.key_hashes.as_ref().map(|key_hashes| {
[INFO] [stdout]     |                                      ^^^^^^^^^^
[INFO] [stdout] 256 |             key_hashes
[INFO] [stdout]     |             ---------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 255 |         txn.key_hashes.as_ref().map(|key_hashes: /* Type */| {
[INFO] [stdout]     |                                                ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:300:23
[INFO] [stdout]     |
[INFO] [stdout] 300 |                 .map(|key_hashes| {
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 301 |                     key_hashes
[INFO] [stdout]     |                     ---------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 300 |                 .map(|key_hashes: /* Type */| {
[INFO] [stdout]     |                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-mvcc/src/block/iterator.rs:63:16
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn key(&self) -> KeySlice {
[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] 63 |     pub fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-mvcc/src/iterators/concat_iterator.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn key(&self) -> KeySlice {
[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] 97 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-mvcc/src/iterators/merge_iterator.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn key(&self) -> KeySlice {
[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] 85 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-mvcc/src/key.rs:75:25
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn as_key_slice(&self) -> KeySlice {
[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] 75 |     pub fn as_key_slice(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> mini-lsm-mvcc/src/key.rs:105:25
[INFO] [stdout]     |
[INFO] [stdout] 105 |     pub fn as_key_slice(&self) -> KeySlice {
[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] 105 |     pub fn as_key_slice(&self) -> KeySlice<'_> {
[INFO] [stdout]     |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> mini-lsm/src/mvcc.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |         watermark.add_reader(read_ts);
[INFO] [stdout]    |         ^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-mvcc/src/mem_table.rs:53:50
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub(crate) fn map_key_bound_plus_ts(bound: Bound<&[u8]>, ts: u64) -> Bound<KeySlice> {
[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] 53 | pub(crate) fn map_key_bound_plus_ts(bound: Bound<&[u8]>, ts: u64) -> Bound<KeySlice<'_>> {
[INFO] [stdout]    |                                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> mini-lsm-mvcc/src/mem_table.rs:221:12
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn key(&self) -> KeySlice {
[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] 221 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]     |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> mini-lsm/src/mvcc/txn.rs:300:23
[INFO] [stdout]     |
[INFO] [stdout] 300 |                 .map(|key_hashes| {
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 301 |                     key_hashes
[INFO] [stdout]     |                     ---------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 300 |                 .map(|key_hashes: /* Type */| {
[INFO] [stdout]     |                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-mvcc/src/table/iterator.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn key(&self) -> KeySlice {
[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] 85 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> mini-lsm/src/mvcc.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |         watermark.add_reader(read_ts);
[INFO] [stdout]    |         ^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `structured_logger`
[INFO] [stdout]   --> mini-lsm-mvcc/src/bin/compaction-simulator.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use structured_logger::{json::new_writer, Builder};
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `structured_logger`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `structured_logger`, use `cargo add structured_logger` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `structured_logger`
[INFO] [stdout]   --> mini-lsm-mvcc/src/bin/compaction-simulator.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use structured_logger::{json::new_writer, Builder};
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `structured_logger`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `structured_logger`, use `cargo add structured_logger` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `structured_logger`
[INFO] [stdout]   --> mini-lsm-mvcc/src/bin/mini-lsm-cli.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use structured_logger::{json::new_writer, Builder};
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `structured_logger`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `structured_logger`, use `cargo add structured_logger` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `structured_logger`
[INFO] [stdout]   --> mini-lsm-mvcc/src/bin/mini-lsm-cli.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use structured_logger::{json::new_writer, Builder};
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `structured_logger`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `structured_logger`, use `cargo add structured_logger` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `log`
[INFO] [stdout]    --> mini-lsm-mvcc/src/bin/mini-lsm-cli.rs:365:5
[INFO] [stdout]     |
[INFO] [stdout] 365 |     log::info!("mini-lsm started");
[INFO] [stdout]     |     ^^^ use of unresolved module or unlinked crate `log`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `structured_logger`
[INFO] [stdout]   --> mini-lsm-mvcc/src/bin/compaction-simulator.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use structured_logger::{json::new_writer, Builder};
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `structured_logger`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `structured_logger`, use `cargo add structured_logger` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `structured_logger`
[INFO] [stdout]   --> mini-lsm-mvcc/src/bin/mini-lsm-cli.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use structured_logger::{json::new_writer, Builder};
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `structured_logger`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `structured_logger`, use `cargo add structured_logger` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `structured_logger`
[INFO] [stdout]   --> mini-lsm-mvcc/src/bin/mini-lsm-cli.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use structured_logger::{json::new_writer, Builder};
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `structured_logger`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `structured_logger`, use `cargo add structured_logger` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `log`
[INFO] [stdout]    --> mini-lsm-mvcc/src/bin/mini-lsm-cli.rs:365:5
[INFO] [stdout]     |
[INFO] [stdout] 365 |     log::info!("mini-lsm started");
[INFO] [stdout]     |     ^^^ use of unresolved module or unlinked crate `log`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `structured_logger`
[INFO] [stdout]   --> mini-lsm-mvcc/src/bin/compaction-simulator.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use structured_logger::{json::new_writer, Builder};
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `structured_logger`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `structured_logger`, use `cargo add structured_logger` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `LsmStorageOptions` has no field named `max_manifest_file_size`
[INFO] [stdout]    --> mini-lsm-mvcc/src/bin/mini-lsm-cli.rs:350:13
[INFO] [stdout]     |
[INFO] [stdout] 350 |             max_manifest_file_size: 1 << 30,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^ `LsmStorageOptions` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CompactionOptions` and `LeveledCompactionOptions`
[INFO] [stdout]  --> mini-lsm-starter/benches/minilsm_bench.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 |     compact::{CompactionOptions, LeveledCompactionOptions},
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mini-lsm-mvcc` (bin "compaction-simulator-mvcc-ref" test) due to 2 previous errors
[INFO] [stdout] error[E0560]: struct `LsmStorageOptions` has no field named `max_manifest_file_size`
[INFO] [stdout]    --> mini-lsm-mvcc/src/bin/mini-lsm-cli.rs:350:13
[INFO] [stdout]     |
[INFO] [stdout] 350 |             max_manifest_file_size: 1 << 30,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^ `LsmStorageOptions` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: function `get_bench` is never used
[INFO] [stdout]   --> mini-lsm-starter/benches/minilsm_bench.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn get_bench(c: &mut Criterion) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433, E0560.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mini-lsm-mvcc` (bin "mini-lsm-cli-mvcc-ref" test) due to 4 previous errors
[INFO] [stderr] error: could not compile `mini-lsm-mvcc` (bin "compaction-simulator-mvcc-ref") due to 2 previous errors
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433, E0560.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mini-lsm` (lib) due to 21 previous errors
[INFO] [stderr] error: could not compile `mini-lsm-mvcc` (bin "mini-lsm-cli-mvcc-ref") due to 4 previous errors
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-mvcc/src/block/iterator.rs:63:16
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn key(&self) -> KeySlice {
[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] 63 |     pub fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-mvcc/src/iterators/concat_iterator.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn key(&self) -> KeySlice {
[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] 97 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-mvcc/src/iterators/merge_iterator.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn key(&self) -> KeySlice {
[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] 85 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-mvcc/src/key.rs:75:25
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn as_key_slice(&self) -> KeySlice {
[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] 75 |     pub fn as_key_slice(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> mini-lsm-mvcc/src/key.rs:105:25
[INFO] [stdout]     |
[INFO] [stdout] 105 |     pub fn as_key_slice(&self) -> KeySlice {
[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] 105 |     pub fn as_key_slice(&self) -> KeySlice<'_> {
[INFO] [stdout]     |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-mvcc/src/mem_table.rs:53:50
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub(crate) fn map_key_bound_plus_ts(bound: Bound<&[u8]>, ts: u64) -> Bound<KeySlice> {
[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] 53 | pub(crate) fn map_key_bound_plus_ts(bound: Bound<&[u8]>, ts: u64) -> Bound<KeySlice<'_>> {
[INFO] [stdout]    |                                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HybridLatchError`
[INFO] [stdout]    --> mini-lsm-starter/src/common/hybrid_lock.rs:238:30
[INFO] [stdout]     |
[INFO] [stdout] 238 |     use super::{HybridLatch, HybridLatchError, Result};
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (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]    --> mini-lsm-mvcc/src/mem_table.rs:221:12
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn key(&self) -> KeySlice {
[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] 221 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]     |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-mvcc/src/table/iterator.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn key(&self) -> KeySlice {
[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] 85 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-mvcc/src/tests/harness.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn key(&self) -> KeySlice {
[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] 60 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mini-lsm` (lib test) due to 21 previous errors
[INFO] [stdout] warning: field `version` is never read
[INFO] [stdout]    --> mini-lsm-starter/src/common/hybrid_lock.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub struct ShardGuard<'a, T: ?Sized> {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 188 |     latch: &'a HybridLatch<T>,
[INFO] [stdout] 189 |     version: u64,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (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]   --> mini-lsm-starter/src/block/iterator.rs:65:16
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn key(&self) -> KeySlice {
[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] 65 |     pub fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> mini-lsm-starter/src/iterators/concat_iterator.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn key(&self) -> KeySlice {
[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] 114 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]     |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-starter/src/iterators/merge_iterator.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn key(&self) -> KeySlice {
[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] 89 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-starter/src/key.rs:76:25
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn as_key_slice(&self) -> KeySlice {
[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] 76 |     pub fn as_key_slice(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> mini-lsm-starter/src/key.rs:106:25
[INFO] [stdout]     |
[INFO] [stdout] 106 |     pub fn as_key_slice(&self) -> KeySlice {
[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] 106 |     pub fn as_key_slice(&self) -> KeySlice<'_> {
[INFO] [stdout]     |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> mini-lsm-starter/src/mem_table.rs:244:12
[INFO] [stdout]     |
[INFO] [stdout] 244 |     fn key(&self) -> KeySlice {
[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] 244 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]     |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-starter/src/table/iterator.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn key(&self) -> KeySlice {
[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] 77 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> mini-lsm-starter/src/tests/harness.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn key(&self) -> KeySlice {
[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] 60 |     fn key(&self) -> KeySlice<'_> {
[INFO] [stdout]    |                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d6502e21b90ae1f71fda62fe604d713e80ac8ae5fa3a158cd108d1e108756210", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d6502e21b90ae1f71fda62fe604d713e80ac8ae5fa3a158cd108d1e108756210", kill_on_drop: false }`
[INFO] [stdout] d6502e21b90ae1f71fda62fe604d713e80ac8ae5fa3a158cd108d1e108756210
