[INFO] cloning repository https://github.com/Ad-Bean/mini-lsm [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ad-Bean/mini-lsm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAd-Bean%2Fmini-lsm", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAd-Bean%2Fmini-lsm'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4a475dd932d1b0eb73e9e82464e951bdd27fe3d3 [INFO] linting Ad-Bean/mini-lsm against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAd-Bean%2Fmini-lsm" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-3-tc1/source/.cargo/config.toml [INFO] removed /workspace/builds/worker-3-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/Ad-Bean/mini-lsm [INFO] finished tweaking git repo https://github.com/Ad-Bean/mini-lsm [INFO] tweaked toml for git repo https://github.com/Ad-Bean/mini-lsm written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Ad-Bean/mini-lsm on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Ad-Bean/mini-lsm 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded shared_child v1.0.1 [INFO] [stderr] Downloaded ouroboros v0.18.4 [INFO] [stderr] Downloaded crossbeam-skiplist v0.1.3 [INFO] [stderr] Downloaded duct v0.13.7 [INFO] [stderr] Downloaded triomphe v0.1.13 [INFO] [stderr] Downloaded ouroboros_macro v0.18.4 [INFO] [stderr] Downloaded serde v1.0.204 [INFO] [stderr] Downloaded serde_derive v1.0.204 [INFO] [stderr] Downloaded farmhash v1.1.5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5e8dda11c0c5baaa6b9a722192528fe467e439508b578eb81943a11753b6eb07 [INFO] running `Command { std: "docker" "start" "-a" "5e8dda11c0c5baaa6b9a722192528fe467e439508b578eb81943a11753b6eb07", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5e8dda11c0c5baaa6b9a722192528fe467e439508b578eb81943a11753b6eb07", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5e8dda11c0c5baaa6b9a722192528fe467e439508b578eb81943a11753b6eb07", kill_on_drop: false }` [INFO] [stdout] 5e8dda11c0c5baaa6b9a722192528fe467e439508b578eb81943a11753b6eb07 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d314d99323bc55f0c4f8a966cab5e5ee5131f07696daed19114b5309b808ad78 [INFO] running `Command { std: "docker" "start" "-a" "d314d99323bc55f0c4f8a966cab5e5ee5131f07696daed19114b5309b808ad78", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking colorchoice v1.0.2 [INFO] [stderr] Checking anstyle v1.0.8 [INFO] [stderr] Checking anstyle-query v1.1.1 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Checking anstyle-parse v0.2.5 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Checking clap_lex v0.7.2 [INFO] [stderr] Checking unicode-width v0.1.13 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Compiling syn v2.0.72 [INFO] [stderr] Compiling anyhow v1.0.86 [INFO] [stderr] Compiling thiserror v1.0.63 [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Compiling serde v1.0.204 [INFO] [stderr] Compiling either v1.13.0 [INFO] [stderr] Checking raw-cpuid v10.7.0 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking nibble_vec v0.1.0 [INFO] [stderr] Compiling serde_json v1.0.122 [INFO] [stderr] Compiling moka v0.9.9 [INFO] [stderr] Compiling itertools v0.12.1 [INFO] [stderr] Checking unicode-segmentation v1.11.0 [INFO] [stderr] Checking log v0.4.22 [INFO] [stderr] Checking triomphe v0.1.13 [INFO] [stderr] Checking radix_trie v0.2.1 [INFO] [stderr] Checking home v0.5.9 [INFO] [stderr] Checking aliasable v0.1.3 [INFO] [stderr] Checking tagptr v0.2.0 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking crossbeam-skiplist v0.1.3 [INFO] [stderr] Checking anstream v0.6.15 [INFO] [stderr] Checking farmhash v1.1.5 [INFO] [stderr] Checking arc-swap v1.7.1 [INFO] [stderr] Checking fastrand v2.1.0 [INFO] [stderr] Checking clap_builder v4.5.13 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking quanta v0.11.1 [INFO] [stderr] Checking nix v0.27.1 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking shared_child v1.0.1 [INFO] [stderr] Checking os_pipe v1.2.1 [INFO] [stderr] Checking console v0.15.8 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking uuid v1.10.0 [INFO] [stderr] Checking duct v0.13.7 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking scheduled-thread-pool v0.2.7 [INFO] [stderr] Checking fd-lock v4.0.2 [INFO] [stderr] Checking tempfile v3.12.0 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling clap_derive v4.5.13 [INFO] [stderr] Compiling thiserror-impl v1.0.63 [INFO] [stderr] Compiling serde_derive v1.0.204 [INFO] [stderr] Compiling ouroboros_macro v0.18.4 [INFO] [stderr] Checking rustyline v13.0.0 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking ouroboros v0.18.4 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking clap v4.5.13 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking mini-lsm-xtask v0.2.0 (/opt/rustwide/workdir/xtask) [INFO] [stderr] Checking mini-lsm v0.2.0 (/opt/rustwide/workdir/mini-lsm) [INFO] [stderr] Checking mini-lsm-starter v0.2.0 (/opt/rustwide/workdir/mini-lsm-starter) [INFO] [stderr] Checking mini-lsm-mvcc v0.2.0 (/opt/rustwide/workdir/mini-lsm-mvcc) [INFO] [stdout] warning: unused import: `core::str` [INFO] [stdout] --> mini-lsm-starter/src/tests/week1_day3.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use core::str; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `print!()` with a format string that ends in a single newline [INFO] [stdout] --> mini-lsm-starter/src/block/iterator.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | print!("l: {}, r: {}\n", l, r); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stdout] = note: `#[warn(clippy::print_with_newline)]` on by default [INFO] [stdout] help: use `println!` instead [INFO] [stdout] | [INFO] [stdout] 120 - print!("l: {}, r: {}\n", l, r); [INFO] [stdout] 120 + println!("l: {}, r: {}", l, r); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> mini-lsm-starter/src/block.rs:31:23 [INFO] [stdout] | [INFO] [stdout] 31 | let offsets = (&data[data.len() - 2 - num_of_elements * 2..data.len() - 2]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `data[data.len() - 2 - num_of_elements * 2..data.len() - 2]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> mini-lsm-starter/src/iterators/merge_iterator.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | / impl PartialOrd for HeapWrapper { [INFO] [stdout] 21 | | #[allow(clippy::non_canonical_partial_ord_impl)] [INFO] [stdout] 22 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 23 | | match self.1.key().cmp(&other.1.key()) { [INFO] [stdout] ... | [INFO] [stdout] 30 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 22 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 23 - match self.1.key().cmp(&other.1.key()) { [INFO] [stdout] 24 - cmp::Ordering::Greater => Some(cmp::Ordering::Greater), [INFO] [stdout] 25 - cmp::Ordering::Less => Some(cmp::Ordering::Less), [INFO] [stdout] 26 - cmp::Ordering::Equal => self.0.partial_cmp(&other.0), [INFO] [stdout] 27 - } [INFO] [stdout] 28 - .map(|x| x.reverse()) [INFO] [stdout] 29 - } [INFO] [stdout] 22 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> mini-lsm-starter/src/iterators/merge_iterator.rs:126:20 [INFO] [stdout] | [INFO] [stdout] 126 | if !(*iter < *current) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `(*iter >= *current)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> mini-lsm-starter/src/mem_table.rs:153:9 [INFO] [stdout] | [INFO] [stdout] 153 | &self.borrow_item().1.chunk() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.borrow_item().1.chunk()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> mini-lsm-starter/src/mem_table.rs:157:30 [INFO] [stdout] | [INFO] [stdout] 157 | KeySlice::from_slice(&self.borrow_item().0.chunk()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.borrow_item().0.chunk()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> mini-lsm-starter/src/table/bloom.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | -1.0 * (entries as f64) * false_positive_rate.ln() / std::f64::consts::LN_2.powi(2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `-(entries as f64)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] = note: `#[warn(clippy::neg_multiply)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> mini-lsm-starter/src/table/bloom.rs:75:17 [INFO] [stdout] | [INFO] [stdout] 75 | let k = k.min(30).max(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace with clamp: `k.clamp(1, 30)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> mini-lsm-starter/src/table/bloom.rs:77:22 [INFO] [stdout] | [INFO] [stdout] 77 | let nbytes = (nbits + 7) / 8; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nbits.div_ceil(8)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: there is no need to manually implement bit rotation [INFO] [stdout] --> mini-lsm-starter/src/table/bloom.rs:97:25 [INFO] [stdout] | [INFO] [stdout] 97 | let delta = (h >> 17) | (h << 15); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: this expression can be rewritten as: `h.rotate_left(15)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_rotate [INFO] [stdout] = note: `#[warn(clippy::manual_rotate)]` 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:52:16 [INFO] [stdout] | [INFO] [stdout] 52 | 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] 52 | 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:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | 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] 35 | 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:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | 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] 83 | 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:57:25 [INFO] [stdout] | [INFO] [stdout] 57 | 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] 57 | 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:80:25 [INFO] [stdout] | [INFO] [stdout] 80 | 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] 80 | 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:156:12 [INFO] [stdout] | [INFO] [stdout] 156 | 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] 156 | 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:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | 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] 46 | fn key(&self) -> KeySlice<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_sst` is never used [INFO] [stdout] --> mini-lsm-starter/src/tests/harness.rs:183:8 [INFO] [stdout] | [INFO] [stdout] 183 | pub fn generate_sst( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sync` is never used [INFO] [stdout] --> mini-lsm-starter/src/tests/harness.rs:213:8 [INFO] [stdout] | [INFO] [stdout] 213 | pub fn sync(storage: &LsmStorageInner) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compaction_bench` is never used [INFO] [stdout] --> mini-lsm-starter/src/tests/harness.rs:220:8 [INFO] [stdout] | [INFO] [stdout] 220 | pub fn compaction_bench(storage: Arc) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_compaction_ratio` is never used [INFO] [stdout] --> mini-lsm-starter/src/tests/harness.rs:282:8 [INFO] [stdout] | [INFO] [stdout] 282 | pub fn check_compaction_ratio(storage: Arc) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dump_files_in_dir` is never used [INFO] [stdout] --> mini-lsm-starter/src/tests/harness.rs:411:8 [INFO] [stdout] | [INFO] [stdout] 411 | pub fn dump_files_in_dir(path: impl AsRef) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `construct_merge_iterator_over_storage` is never used [INFO] [stdout] --> mini-lsm-starter/src/tests/harness.rs:423:8 [INFO] [stdout] | [INFO] [stdout] 423 | pub fn construct_merge_iterator_over_storage( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `print!()` with a format string that ends in a single newline [INFO] [stdout] --> mini-lsm-starter/src/block/iterator.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | print!("l: {}, r: {}\n", l, r); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stdout] = note: `#[warn(clippy::print_with_newline)]` on by default [INFO] [stdout] help: use `println!` instead [INFO] [stdout] | [INFO] [stdout] 120 - print!("l: {}, r: {}\n", l, r); [INFO] [stdout] 120 + println!("l: {}, r: {}", l, r); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> mini-lsm-starter/src/block.rs:31:23 [INFO] [stdout] | [INFO] [stdout] 31 | let offsets = (&data[data.len() - 2 - num_of_elements * 2..data.len() - 2]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `data[data.len() - 2 - num_of_elements * 2..data.len() - 2]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> mini-lsm-starter/src/iterators/merge_iterator.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | / impl PartialOrd for HeapWrapper { [INFO] [stdout] 21 | | #[allow(clippy::non_canonical_partial_ord_impl)] [INFO] [stdout] 22 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 23 | | match self.1.key().cmp(&other.1.key()) { [INFO] [stdout] ... | [INFO] [stdout] 30 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 22 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 23 - match self.1.key().cmp(&other.1.key()) { [INFO] [stdout] 24 - cmp::Ordering::Greater => Some(cmp::Ordering::Greater), [INFO] [stdout] 25 - cmp::Ordering::Less => Some(cmp::Ordering::Less), [INFO] [stdout] 26 - cmp::Ordering::Equal => self.0.partial_cmp(&other.0), [INFO] [stdout] 27 - } [INFO] [stdout] 28 - .map(|x| x.reverse()) [INFO] [stdout] 29 - } [INFO] [stdout] 22 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> mini-lsm-starter/src/iterators/merge_iterator.rs:126:20 [INFO] [stdout] | [INFO] [stdout] 126 | if !(*iter < *current) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `(*iter >= *current)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> mini-lsm-starter/src/mem_table.rs:153:9 [INFO] [stdout] | [INFO] [stdout] 153 | &self.borrow_item().1.chunk() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.borrow_item().1.chunk()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> mini-lsm-starter/src/mem_table.rs:157:30 [INFO] [stdout] | [INFO] [stdout] 157 | KeySlice::from_slice(&self.borrow_item().0.chunk()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.borrow_item().0.chunk()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> mini-lsm/src/compact/tiered.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | / return Some(TieredCompactionTask { [INFO] [stdout] 85 | | tiers: snapshot [INFO] [stdout] 86 | | .levels [INFO] [stdout] 87 | | .iter() [INFO] [stdout] ... | [INFO] [stdout] 91 | | bottom_tier_included: snapshot.levels.len() >= num_tiers_to_take, [INFO] [stdout] 92 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 84 ~ Some(TieredCompactionTask { [INFO] [stdout] 85 + tiers: snapshot [INFO] [stdout] 86 + .levels [INFO] [stdout] 87 + .iter() [INFO] [stdout] 88 + .take(num_tiers_to_take) [INFO] [stdout] 89 + .cloned() [INFO] [stdout] 90 + .collect::>(), [INFO] [stdout] 91 + bottom_tier_included: snapshot.levels.len() >= num_tiers_to_take, [INFO] [stdout] 92 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> mini-lsm-starter/src/table/bloom.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | -1.0 * (entries as f64) * false_positive_rate.ln() / std::f64::consts::LN_2.powi(2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `-(entries as f64)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] = note: `#[warn(clippy::neg_multiply)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> mini-lsm-starter/src/table/bloom.rs:75:17 [INFO] [stdout] | [INFO] [stdout] 75 | let k = k.min(30).max(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace with clamp: `k.clamp(1, 30)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> mini-lsm-starter/src/table/bloom.rs:77:22 [INFO] [stdout] | [INFO] [stdout] 77 | let nbytes = (nbits + 7) / 8; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nbits.div_ceil(8)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: there is no need to manually implement bit rotation [INFO] [stdout] --> mini-lsm-starter/src/table/bloom.rs:97:25 [INFO] [stdout] | [INFO] [stdout] 97 | let delta = (h >> 17) | (h << 15); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: this expression can be rewritten as: `h.rotate_left(15)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_rotate [INFO] [stdout] = note: `#[warn(clippy::manual_rotate)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> mini-lsm/src/iterators/merge_iterator.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | / impl PartialOrd for HeapWrapper { [INFO] [stdout] 22 | | #[allow(clippy::non_canonical_partial_ord_impl)] [INFO] [stdout] 23 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 24 | | match self.1.key().cmp(&other.1.key()) { [INFO] [stdout] ... | [INFO] [stdout] 31 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 23 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 24 - match self.1.key().cmp(&other.1.key()) { [INFO] [stdout] 25 - cmp::Ordering::Greater => Some(cmp::Ordering::Greater), [INFO] [stdout] 26 - cmp::Ordering::Less => Some(cmp::Ordering::Less), [INFO] [stdout] 27 - cmp::Ordering::Equal => self.0.partial_cmp(&other.0), [INFO] [stdout] 28 - } [INFO] [stdout] 29 - .map(|x| x.reverse()) [INFO] [stdout] 30 - } [INFO] [stdout] 23 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [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:52:16 [INFO] [stdout] | [INFO] [stdout] 52 | 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] 52 | 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:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | 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] 35 | 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:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | 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] 83 | 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:57:25 [INFO] [stdout] | [INFO] [stdout] 57 | 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] 57 | 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:80:25 [INFO] [stdout] | [INFO] [stdout] 80 | 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] 80 | 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:156:12 [INFO] [stdout] | [INFO] [stdout] 156 | 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] 156 | 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:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | 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] 46 | 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] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> mini-lsm-mvcc/src/compact/tiered.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | / return Some(TieredCompactionTask { [INFO] [stdout] 85 | | tiers: snapshot [INFO] [stdout] 86 | | .levels [INFO] [stdout] 87 | | .iter() [INFO] [stdout] ... | [INFO] [stdout] 91 | | bottom_tier_included: snapshot.levels.len() >= num_tiers_to_take, [INFO] [stdout] 92 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 84 ~ Some(TieredCompactionTask { [INFO] [stdout] 85 + tiers: snapshot [INFO] [stdout] 86 + .levels [INFO] [stdout] 87 + .iter() [INFO] [stdout] 88 + .take(num_tiers_to_take) [INFO] [stdout] 89 + .cloned() [INFO] [stdout] 90 + .collect::>(), [INFO] [stdout] 91 + bottom_tier_included: snapshot.levels.len() >= num_tiers_to_take, [INFO] [stdout] 92 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> mini-lsm-mvcc/src/iterators/merge_iterator.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | / impl PartialOrd for HeapWrapper { [INFO] [stdout] 22 | | #[allow(clippy::non_canonical_partial_ord_impl)] [INFO] [stdout] 23 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 24 | | match self.1.key().cmp(&other.1.key()) { [INFO] [stdout] ... | [INFO] [stdout] 31 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 23 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 24 - match self.1.key().cmp(&other.1.key()) { [INFO] [stdout] 25 - cmp::Ordering::Greater => Some(cmp::Ordering::Greater), [INFO] [stdout] 26 - cmp::Ordering::Less => Some(cmp::Ordering::Less), [INFO] [stdout] 27 - cmp::Ordering::Equal => self.0.partial_cmp(&other.0), [INFO] [stdout] 28 - } [INFO] [stdout] 29 - .map(|x| x.reverse()) [INFO] [stdout] 30 - } [INFO] [stdout] 23 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> mini-lsm-mvcc/src/key.rs:17:25 [INFO] [stdout] | [INFO] [stdout] 17 | pub const TS_MAX: u64 = std::u64::MAX; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 17 - pub const TS_MAX: u64 = std::u64::MAX; [INFO] [stdout] 17 + pub const TS_MAX: u64 = u64::MAX; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> mini-lsm-mvcc/src/key.rs:18:25 [INFO] [stdout] | [INFO] [stdout] 18 | pub const TS_MIN: u64 = std::u64::MIN; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 18 - pub const TS_MIN: u64 = std::u64::MIN; [INFO] [stdout] 18 + pub const TS_MIN: u64 = u64::MIN; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> mini-lsm-mvcc/src/key.rs:19:33 [INFO] [stdout] | [INFO] [stdout] 19 | pub const TS_RANGE_BEGIN: u64 = std::u64::MAX; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 19 - pub const TS_RANGE_BEGIN: u64 = std::u64::MAX; [INFO] [stdout] 19 + pub const TS_RANGE_BEGIN: u64 = u64::MAX; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> mini-lsm-mvcc/src/key.rs:20:31 [INFO] [stdout] | [INFO] [stdout] 20 | pub const TS_RANGE_END: u64 = std::u64::MIN; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 20 - pub const TS_RANGE_END: u64 = std::u64::MIN; [INFO] [stdout] 20 + pub const TS_RANGE_END: u64 = u64::MIN; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> mini-lsm/src/table/bloom.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | -1.0 * (entries as f64) * false_positive_rate.ln() / std::f64::consts::LN_2.powi(2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `-(entries as f64)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] = note: `#[warn(clippy::neg_multiply)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> mini-lsm/src/table/bloom.rs:82:17 [INFO] [stdout] | [INFO] [stdout] 82 | let k = k.min(30).max(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace with clamp: `k.clamp(1, 30)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> mini-lsm/src/table/bloom.rs:84:22 [INFO] [stdout] | [INFO] [stdout] 84 | let nbytes = (nbits + 7) / 8; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nbits.div_ceil(8)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: there is no need to manually implement bit rotation [INFO] [stdout] --> mini-lsm/src/table/bloom.rs:90:25 [INFO] [stdout] | [INFO] [stdout] 90 | let delta = (h >> 17) | (h << 15); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: this expression can be rewritten as: `h.rotate_left(15)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_rotate [INFO] [stdout] = note: `#[warn(clippy::manual_rotate)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: there is no need to manually implement bit rotation [INFO] [stdout] --> mini-lsm/src/table/bloom.rs:110:25 [INFO] [stdout] | [INFO] [stdout] 110 | let delta = (h >> 17) | (h << 15); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: this expression can be rewritten as: `h.rotate_left(15)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_rotate [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> mini-lsm-mvcc/src/lsm_storage.rs:762:17 [INFO] [stdout] | [INFO] [stdout] 762 | pub fn scan<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] 763 | self: &'a Arc, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 762 ~ pub fn scan( [INFO] [stdout] 763 ~ self: &Arc, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: transmute used without annotations [INFO] [stdout] --> mini-lsm-mvcc/src/mem_table.rs:96:51 [INFO] [stdout] | [INFO] [stdout] 96 | Bytes::from_static(unsafe { std::mem::transmute(key.key_ref()) }), [INFO] [stdout] | ^^^^^^^^^ help: consider adding missing annotations: `transmute::<&[u8], &[u8]>` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_transmute_annotations [INFO] [stdout] = note: `#[warn(clippy::missing_transmute_annotations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> mini-lsm/src/block/iterator.rs:62:16 [INFO] [stdout] | [INFO] [stdout] 62 | 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] 62 | 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/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/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/src/key.rs:57:25 [INFO] [stdout] | [INFO] [stdout] 57 | 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] 57 | 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/src/key.rs:80:25 [INFO] [stdout] | [INFO] [stdout] 80 | 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] 80 | 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/src/mem_table.rs:183:12 [INFO] [stdout] | [INFO] [stdout] 183 | 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] 183 | 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/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: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> mini-lsm-mvcc/src/table/bloom.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | -1.0 * (entries as f64) * false_positive_rate.ln() / std::f64::consts::LN_2.powi(2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `-(entries as f64)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] = note: `#[warn(clippy::neg_multiply)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> mini-lsm-mvcc/src/table/bloom.rs:82:17 [INFO] [stdout] | [INFO] [stdout] 82 | let k = k.min(30).max(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace with clamp: `k.clamp(1, 30)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> mini-lsm-mvcc/src/table/bloom.rs:84:22 [INFO] [stdout] | [INFO] [stdout] 84 | let nbytes = (nbits + 7) / 8; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nbits.div_ceil(8)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: there is no need to manually implement bit rotation [INFO] [stdout] --> mini-lsm-mvcc/src/table/bloom.rs:90:25 [INFO] [stdout] | [INFO] [stdout] 90 | let delta = (h >> 17) | (h << 15); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: this expression can be rewritten as: `h.rotate_left(15)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_rotate [INFO] [stdout] = note: `#[warn(clippy::manual_rotate)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: there is no need to manually implement bit rotation [INFO] [stdout] --> mini-lsm-mvcc/src/table/bloom.rs:110:25 [INFO] [stdout] | [INFO] [stdout] 110 | let delta = (h >> 17) | (h << 15); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: this expression can be rewritten as: `h.rotate_left(15)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_rotate [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] 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 { [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> { [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] 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: unneeded `return` statement [INFO] [stdout] --> mini-lsm/src/compact/tiered.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | / return Some(TieredCompactionTask { [INFO] [stdout] 85 | | tiers: snapshot [INFO] [stdout] 86 | | .levels [INFO] [stdout] 87 | | .iter() [INFO] [stdout] ... | [INFO] [stdout] 91 | | bottom_tier_included: snapshot.levels.len() >= num_tiers_to_take, [INFO] [stdout] 92 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 84 ~ Some(TieredCompactionTask { [INFO] [stdout] 85 + tiers: snapshot [INFO] [stdout] 86 + .levels [INFO] [stdout] 87 + .iter() [INFO] [stdout] 88 + .take(num_tiers_to_take) [INFO] [stdout] 89 + .cloned() [INFO] [stdout] 90 + .collect::>(), [INFO] [stdout] 91 + bottom_tier_included: snapshot.levels.len() >= num_tiers_to_take, [INFO] [stdout] 92 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> mini-lsm/src/iterators/merge_iterator.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | / impl PartialOrd for HeapWrapper { [INFO] [stdout] 22 | | #[allow(clippy::non_canonical_partial_ord_impl)] [INFO] [stdout] 23 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 24 | | match self.1.key().cmp(&other.1.key()) { [INFO] [stdout] ... | [INFO] [stdout] 31 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 23 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 24 - match self.1.key().cmp(&other.1.key()) { [INFO] [stdout] 25 - cmp::Ordering::Greater => Some(cmp::Ordering::Greater), [INFO] [stdout] 26 - cmp::Ordering::Less => Some(cmp::Ordering::Less), [INFO] [stdout] 27 - cmp::Ordering::Equal => self.0.partial_cmp(&other.0), [INFO] [stdout] 28 - } [INFO] [stdout] 29 - .map(|x| x.reverse()) [INFO] [stdout] 30 - } [INFO] [stdout] 23 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> mini-lsm-mvcc/src/compact/tiered.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | / return Some(TieredCompactionTask { [INFO] [stdout] 85 | | tiers: snapshot [INFO] [stdout] 86 | | .levels [INFO] [stdout] 87 | | .iter() [INFO] [stdout] ... | [INFO] [stdout] 91 | | bottom_tier_included: snapshot.levels.len() >= num_tiers_to_take, [INFO] [stdout] 92 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 84 ~ Some(TieredCompactionTask { [INFO] [stdout] 85 + tiers: snapshot [INFO] [stdout] 86 + .levels [INFO] [stdout] 87 + .iter() [INFO] [stdout] 88 + .take(num_tiers_to_take) [INFO] [stdout] 89 + .cloned() [INFO] [stdout] 90 + .collect::>(), [INFO] [stdout] 91 + bottom_tier_included: snapshot.levels.len() >= num_tiers_to_take, [INFO] [stdout] 92 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> mini-lsm-mvcc/src/iterators/merge_iterator.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | / impl PartialOrd for HeapWrapper { [INFO] [stdout] 22 | | #[allow(clippy::non_canonical_partial_ord_impl)] [INFO] [stdout] 23 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 24 | | match self.1.key().cmp(&other.1.key()) { [INFO] [stdout] ... | [INFO] [stdout] 31 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 23 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 24 - match self.1.key().cmp(&other.1.key()) { [INFO] [stdout] 25 - cmp::Ordering::Greater => Some(cmp::Ordering::Greater), [INFO] [stdout] 26 - cmp::Ordering::Less => Some(cmp::Ordering::Less), [INFO] [stdout] 27 - cmp::Ordering::Equal => self.0.partial_cmp(&other.0), [INFO] [stdout] 28 - } [INFO] [stdout] 29 - .map(|x| x.reverse()) [INFO] [stdout] 30 - } [INFO] [stdout] 23 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> mini-lsm-mvcc/src/key.rs:17:25 [INFO] [stdout] | [INFO] [stdout] 17 | pub const TS_MAX: u64 = std::u64::MAX; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 17 - pub const TS_MAX: u64 = std::u64::MAX; [INFO] [stdout] 17 + pub const TS_MAX: u64 = u64::MAX; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> mini-lsm-mvcc/src/key.rs:18:25 [INFO] [stdout] | [INFO] [stdout] 18 | pub const TS_MIN: u64 = std::u64::MIN; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 18 - pub const TS_MIN: u64 = std::u64::MIN; [INFO] [stdout] 18 + pub const TS_MIN: u64 = u64::MIN; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> mini-lsm-mvcc/src/key.rs:19:33 [INFO] [stdout] | [INFO] [stdout] 19 | pub const TS_RANGE_BEGIN: u64 = std::u64::MAX; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 19 - pub const TS_RANGE_BEGIN: u64 = std::u64::MAX; [INFO] [stdout] 19 + pub const TS_RANGE_BEGIN: u64 = u64::MAX; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> mini-lsm-mvcc/src/key.rs:20:31 [INFO] [stdout] | [INFO] [stdout] 20 | pub const TS_RANGE_END: u64 = std::u64::MIN; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 20 - pub const TS_RANGE_END: u64 = std::u64::MIN; [INFO] [stdout] 20 + pub const TS_RANGE_END: u64 = u64::MIN; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> mini-lsm-mvcc/src/lsm_storage.rs:762:17 [INFO] [stdout] | [INFO] [stdout] 762 | pub fn scan<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] 763 | self: &'a Arc, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 762 ~ pub fn scan( [INFO] [stdout] 763 ~ self: &Arc, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> mini-lsm/src/table/bloom.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | -1.0 * (entries as f64) * false_positive_rate.ln() / std::f64::consts::LN_2.powi(2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `-(entries as f64)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] = note: `#[warn(clippy::neg_multiply)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> mini-lsm/src/table/bloom.rs:82:17 [INFO] [stdout] | [INFO] [stdout] 82 | let k = k.min(30).max(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace with clamp: `k.clamp(1, 30)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> mini-lsm/src/table/bloom.rs:84:22 [INFO] [stdout] | [INFO] [stdout] 84 | let nbytes = (nbits + 7) / 8; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nbits.div_ceil(8)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: there is no need to manually implement bit rotation [INFO] [stdout] --> mini-lsm/src/table/bloom.rs:90:25 [INFO] [stdout] | [INFO] [stdout] 90 | let delta = (h >> 17) | (h << 15); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: this expression can be rewritten as: `h.rotate_left(15)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_rotate [INFO] [stdout] = note: `#[warn(clippy::manual_rotate)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: transmute used without annotations [INFO] [stdout] --> mini-lsm-mvcc/src/mem_table.rs:96:51 [INFO] [stdout] | [INFO] [stdout] 96 | Bytes::from_static(unsafe { std::mem::transmute(key.key_ref()) }), [INFO] [stdout] | ^^^^^^^^^ help: consider adding missing annotations: `transmute::<&[u8], &[u8]>` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_transmute_annotations [INFO] [stdout] = note: `#[warn(clippy::missing_transmute_annotations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: there is no need to manually implement bit rotation [INFO] [stdout] --> mini-lsm/src/table/bloom.rs:110:25 [INFO] [stdout] | [INFO] [stdout] 110 | let delta = (h >> 17) | (h << 15); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: this expression can be rewritten as: `h.rotate_left(15)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_rotate [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> mini-lsm-mvcc/src/table/bloom.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | -1.0 * (entries as f64) * false_positive_rate.ln() / std::f64::consts::LN_2.powi(2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `-(entries as f64)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] = note: `#[warn(clippy::neg_multiply)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> mini-lsm-mvcc/src/table/bloom.rs:82:17 [INFO] [stdout] | [INFO] [stdout] 82 | let k = k.min(30).max(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace with clamp: `k.clamp(1, 30)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> mini-lsm-mvcc/src/table/bloom.rs:84:22 [INFO] [stdout] | [INFO] [stdout] 84 | let nbytes = (nbits + 7) / 8; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nbits.div_ceil(8)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: there is no need to manually implement bit rotation [INFO] [stdout] --> mini-lsm-mvcc/src/table/bloom.rs:90:25 [INFO] [stdout] | [INFO] [stdout] 90 | let delta = (h >> 17) | (h << 15); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: this expression can be rewritten as: `h.rotate_left(15)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_rotate [INFO] [stdout] = note: `#[warn(clippy::manual_rotate)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: there is no need to manually implement bit rotation [INFO] [stdout] --> mini-lsm-mvcc/src/table/bloom.rs:110:25 [INFO] [stdout] | [INFO] [stdout] 110 | let delta = (h >> 17) | (h << 15); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: this expression can be rewritten as: `h.rotate_left(15)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_rotate [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> mini-lsm/src/block/iterator.rs:62:16 [INFO] [stdout] | [INFO] [stdout] 62 | 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] 62 | 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/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/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/src/key.rs:57:25 [INFO] [stdout] | [INFO] [stdout] 57 | 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] 57 | 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/src/key.rs:80:25 [INFO] [stdout] | [INFO] [stdout] 80 | 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] 80 | 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/src/mem_table.rs:183:12 [INFO] [stdout] | [INFO] [stdout] 183 | 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] 183 | 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/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/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] 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 { [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> { [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] 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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.10s [INFO] running `Command { std: "docker" "inspect" "d314d99323bc55f0c4f8a966cab5e5ee5131f07696daed19114b5309b808ad78", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d314d99323bc55f0c4f8a966cab5e5ee5131f07696daed19114b5309b808ad78", kill_on_drop: false }` [INFO] [stdout] d314d99323bc55f0c4f8a966cab5e5ee5131f07696daed19114b5309b808ad78