[INFO] cloning repository https://github.com/Searching96/rust-solo-all-db [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Searching96/rust-solo-all-db" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSearching96%2Frust-solo-all-db", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSearching96%2Frust-solo-all-db'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fbae819c19cc6675cfa39c3844f025edb64802fe [INFO] linting Searching96/rust-solo-all-db against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSearching96%2Frust-solo-all-db" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Searching96/rust-solo-all-db [INFO] finished tweaking git repo https://github.com/Searching96/rust-solo-all-db [INFO] tweaked toml for git repo https://github.com/Searching96/rust-solo-all-db written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Searching96/rust-solo-all-db 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/Searching96/rust-solo-all-db 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] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded clap_derive v4.5.41 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 78cc1d69e551ff2bfaef8fd7d90ee6496ef0db5a85fddaf0518e3e4b0ec5b8a4 [INFO] running `Command { std: "docker" "start" "-a" "78cc1d69e551ff2bfaef8fd7d90ee6496ef0db5a85fddaf0518e3e4b0ec5b8a4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "78cc1d69e551ff2bfaef8fd7d90ee6496ef0db5a85fddaf0518e3e4b0ec5b8a4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "78cc1d69e551ff2bfaef8fd7d90ee6496ef0db5a85fddaf0518e3e4b0ec5b8a4", kill_on_drop: false }` [INFO] [stdout] 78cc1d69e551ff2bfaef8fd7d90ee6496ef0db5a85fddaf0518e3e4b0ec5b8a4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] d7f14585e183370a901600e40e0399547a917df2d7c6f4526e36c0bdbe3ce8ac [INFO] running `Command { std: "docker" "start" "-a" "d7f14585e183370a901600e40e0399547a917df2d7c6f4526e36c0bdbe3ce8ac", kill_on_drop: false }` [INFO] [stderr] Checking once_cell v1.21.3 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking csv-core v0.1.12 [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Checking yaml-rust v0.4.5 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking indexmap v2.10.0 [INFO] [stderr] Checking linux-raw-sys v0.9.4 [INFO] [stderr] Checking getrandom v0.3.3 [INFO] [stderr] Checking ahash v0.7.8 [INFO] [stderr] Checking hashbrown v0.12.3 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking ordered-multimap v0.4.3 [INFO] [stderr] Checking rust-ini v0.18.0 [INFO] [stderr] Checking tempfile v3.20.0 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling clap_derive v4.5.41 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling rust-solo-all-db-macros v0.1.0 (/opt/rustwide/workdir/rust-solo-all-db-macros) [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Compiling pest v2.8.1 [INFO] [stderr] Checking clap v4.5.41 [INFO] [stderr] Compiling pest_meta v2.8.1 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Compiling pest_generator v2.8.1 [INFO] [stderr] Compiling pest_derive v2.8.1 [INFO] [stderr] Checking toml v0.5.11 [INFO] [stderr] Checking ron v0.7.1 [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking json5 v0.4.1 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking csv v1.3.1 [INFO] [stderr] Checking config v0.13.4 [INFO] [stderr] Checking rust-solo-all-db v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: field `parallel_threads` is never read [INFO] [stdout] --> src/etl/loader.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct ETLLoader { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 34 | batch_size: usize, [INFO] [stdout] 35 | parallel_threads: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> src/engine/lsm.rs:180:13 [INFO] [stdout] | [INFO] [stdout] 180 | / loop { [INFO] [stdout] 181 | | match rx.recv_timeout(config.background_compaction_interval) { [INFO] [stdout] 182 | | Ok(CompactionMessage::CheckCompaction) | Err(_) => { [INFO] [stdout] ... | [INFO] [stdout] 201 | | } [INFO] [stdout] | |_____________^ help: try: `while let Ok(CompactionMessage::CheckCompaction) | Err(_) = rx.recv_timeout(config.background_compaction_interval) { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] = note: `#[warn(clippy::while_let_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/engine/lsm.rs:418:9 [INFO] [stdout] | [INFO] [stdout] 418 | / if self.config.background_compaction { [INFO] [stdout] 419 | | if let Some(ref handle) = self.compaction_handle { [INFO] [stdout] 420 | | handle.send_check_compaction(); [INFO] [stdout] 421 | | } [INFO] [stdout] 422 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 418 ~ if self.config.background_compaction [INFO] [stdout] 419 ~ && let Some(ref handle) = self.compaction_handle { [INFO] [stdout] 420 | handle.send_check_compaction(); [INFO] [stdout] 421 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BloomFilter` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/engine/bloom.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `LevelManager` [INFO] [stdout] --> src/engine/level.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / pub fn new() -> Self { [INFO] [stdout] 14 | | Self { [INFO] [stdout] 15 | | levels: BTreeMap::new(), [INFO] [stdout] 16 | | max_level: 0, [INFO] [stdout] ... | [INFO] [stdout] 20 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 12 + impl Default for LevelManager { [INFO] [stdout] 13 + fn default() -> Self { [INFO] [stdout] 14 + Self::new() [INFO] [stdout] 15 + } [INFO] [stdout] 16 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/engine/level.rs:38:34 [INFO] [stdout] | [INFO] [stdout] 38 | self.levels.entry(level).or_insert_with(Vec::new).push(sstable); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/engine/level.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | / if level > 0 { [INFO] [stdout] 42 | | if let Some(level_sstables) = self.levels.get_mut(&level) { [INFO] [stdout] 43 | | level_sstables.sort_by(|a, b| a.min_key().cmp(b.min_key())); [INFO] [stdout] 44 | | } [INFO] [stdout] 45 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 41 ~ if level > 0 [INFO] [stdout] 42 ~ && let Some(level_sstables) = self.levels.get_mut(&level) { [INFO] [stdout] 43 | level_sstables.sort_by(|a, b| a.min_key().cmp(b.min_key())); [INFO] [stdout] 44 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/engine/level.rs:69:17 [INFO] [stdout] | [INFO] [stdout] 69 | self.levels.get(&0).map_or(false, |files| files.len() >= self.level_0_file_limit) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 69 - self.levels.get(&0).map_or(false, |files| files.len() >= self.level_0_file_limit) [INFO] [stdout] 69 + self.levels.get(&0).is_some_and(|files| files.len() >= self.level_0_file_limit) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `parallel_threads` is never read [INFO] [stdout] --> src/etl/loader.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct ETLLoader { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 34 | batch_size: usize, [INFO] [stdout] 35 | parallel_threads: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/cli.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | config.memtable_size_limit = 100; // Smaller limit for CLI demo [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `engine::lsm::LSMConfig { memtable_size_limit: 100, data_dir: PathBuf::from("data/runtime"), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/cli.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut config = LSMConfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/etl/csv_parser.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | / if self.has_headers { [INFO] [stdout] 131 | | if let Ok(headers) = csv_reader.headers() { [INFO] [stdout] 132 | | columns = headers.iter().map(|h| h.to_string()).collect(); [INFO] [stdout] 133 | | } [INFO] [stdout] 134 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 130 ~ if self.has_headers [INFO] [stdout] 131 ~ && let Ok(headers) = csv_reader.headers() { [INFO] [stdout] 132 | columns = headers.iter().map(|h| h.to_string()).collect(); [INFO] [stdout] 133 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> src/engine/lsm.rs:180:13 [INFO] [stdout] | [INFO] [stdout] 180 | / loop { [INFO] [stdout] 181 | | match rx.recv_timeout(config.background_compaction_interval) { [INFO] [stdout] 182 | | Ok(CompactionMessage::CheckCompaction) | Err(_) => { [INFO] [stdout] ... | [INFO] [stdout] 201 | | } [INFO] [stdout] | |_____________^ help: try: `while let Ok(CompactionMessage::CheckCompaction) | Err(_) = rx.recv_timeout(config.background_compaction_interval) { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] = note: `#[warn(clippy::while_let_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/etl/csv_parser.rs:248:17 [INFO] [stdout] | [INFO] [stdout] 248 | / if let Some(expected_type) = schema.get_column_type(i) { [INFO] [stdout] 249 | | if !self.validate_field_type(field, expected_type) { [INFO] [stdout] 250 | | return Err(DbError::InvalidOperation(format!( [INFO] [stdout] 251 | | "Field '{}' in column {} doesn't match expected type {:?}", [INFO] [stdout] ... | [INFO] [stdout] 255 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 248 ~ if let Some(expected_type) = schema.get_column_type(i) [INFO] [stdout] 249 ~ && !self.validate_field_type(field, expected_type) { [INFO] [stdout] 250 | return Err(DbError::InvalidOperation(format!( [INFO] [stdout] ... [INFO] [stdout] 253 | ))); [INFO] [stdout] 254 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ETLLoader` [INFO] [stdout] --> src/etl/loader.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | / pub fn new() -> Self { [INFO] [stdout] 41 | | Self { [INFO] [stdout] 42 | | batch_size: 1000, [INFO] [stdout] 43 | | parallel_threads: 4, // Default to 4 threads [INFO] [stdout] ... | [INFO] [stdout] 46 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 39 + impl Default for ETLLoader { [INFO] [stdout] 40 + fn default() -> Self { [INFO] [stdout] 41 + Self::new() [INFO] [stdout] 42 + } [INFO] [stdout] 43 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/engine/lsm.rs:418:9 [INFO] [stdout] | [INFO] [stdout] 418 | / if self.config.background_compaction { [INFO] [stdout] 419 | | if let Some(ref handle) = self.compaction_handle { [INFO] [stdout] 420 | | handle.send_check_compaction(); [INFO] [stdout] 421 | | } [INFO] [stdout] 422 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 418 ~ if self.config.background_compaction [INFO] [stdout] 419 ~ && let Some(ref handle) = self.compaction_handle { [INFO] [stdout] 420 | handle.send_check_compaction(); [INFO] [stdout] 421 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row_number` is used as a loop counter [INFO] [stdout] --> src/etl/loader.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | for result in csv_reader.records() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row_number, result) in (if has_headers { 1 } else { 0 }..).zip(csv_reader.records())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/query/parser.rs:299:29 [INFO] [stdout] | [INFO] [stdout] 299 | if (ch == '!' && next_ch == '=') || [INFO] [stdout] | _____________________________^ [INFO] [stdout] 300 | | (ch == '>' && next_ch == '=') || [INFO] [stdout] 301 | | (ch == '<' && next_ch == '=') || [INFO] [stdout] 302 | | (ch == '<' && next_ch == '>') { [INFO] [stdout] | |_________________________________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 299 - if (ch == '!' && next_ch == '=') || [INFO] [stdout] 300 - (ch == '>' && next_ch == '=') || [INFO] [stdout] 301 - (ch == '<' && next_ch == '=') || [INFO] [stdout] 302 - (ch == '<' && next_ch == '>') { [INFO] [stdout] 299 + if !(next_ch != '=' && ch != '<' || next_ch != '=' && next_ch != '>' || ch != '!' && ch != '>' && ch != '<') { [INFO] [stdout] | [INFO] [stdout] 299 - if (ch == '!' && next_ch == '=') || [INFO] [stdout] 300 - (ch == '>' && next_ch == '=') || [INFO] [stdout] 301 - (ch == '<' && next_ch == '=') || [INFO] [stdout] 302 - (ch == '<' && next_ch == '>') { [INFO] [stdout] 299 + if (ch == '<' || ch == '>' || ch == '!') && (next_ch == '>' || next_ch == '=') && (ch == '<' || next_ch == '=') { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/query/parser.rs:299:29 [INFO] [stdout] | [INFO] [stdout] 299 | if (ch == '!' && next_ch == '=') || [INFO] [stdout] | _____________________________^ [INFO] [stdout] 300 | | (ch == '>' && next_ch == '=') || [INFO] [stdout] 301 | | (ch == '<' && next_ch == '=') || [INFO] [stdout] | |_________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 299 - if (ch == '!' && next_ch == '=') || [INFO] [stdout] 300 - (ch == '>' && next_ch == '=') || [INFO] [stdout] 301 - (ch == '<' && next_ch == '=') || [INFO] [stdout] 299 + if !(next_ch != '=' || ch != '!' && ch != '>' && ch != '<') || [INFO] [stdout] | [INFO] [stdout] 299 - if (ch == '!' && next_ch == '=') || [INFO] [stdout] 300 - (ch == '>' && next_ch == '=') || [INFO] [stdout] 301 - (ch == '<' && next_ch == '=') || [INFO] [stdout] 299 + if (ch == '<' || ch == '>' || ch == '!') && next_ch == '=' || [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/query/parser.rs:299:29 [INFO] [stdout] | [INFO] [stdout] 299 | if (ch == '!' && next_ch == '=') || [INFO] [stdout] | _____________________________^ [INFO] [stdout] 300 | | (ch == '>' && next_ch == '=') || [INFO] [stdout] | |_________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 299 - if (ch == '!' && next_ch == '=') || [INFO] [stdout] 300 - (ch == '>' && next_ch == '=') || [INFO] [stdout] 299 + if !(next_ch != '=' || ch != '!' && ch != '>') || [INFO] [stdout] | [INFO] [stdout] 299 - if (ch == '!' && next_ch == '=') || [INFO] [stdout] 300 - (ch == '>' && next_ch == '=') || [INFO] [stdout] 299 + if (ch == '>' || ch == '!') && next_ch == '=' || [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BloomFilter` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/engine/bloom.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `LevelManager` [INFO] [stdout] --> src/engine/level.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / pub fn new() -> Self { [INFO] [stdout] 14 | | Self { [INFO] [stdout] 15 | | levels: BTreeMap::new(), [INFO] [stdout] 16 | | max_level: 0, [INFO] [stdout] ... | [INFO] [stdout] 20 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 12 + impl Default for LevelManager { [INFO] [stdout] 13 + fn default() -> Self { [INFO] [stdout] 14 + Self::new() [INFO] [stdout] 15 + } [INFO] [stdout] 16 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/engine/level.rs:38:34 [INFO] [stdout] | [INFO] [stdout] 38 | self.levels.entry(level).or_insert_with(Vec::new).push(sstable); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/engine/level.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | / if level > 0 { [INFO] [stdout] 42 | | if let Some(level_sstables) = self.levels.get_mut(&level) { [INFO] [stdout] 43 | | level_sstables.sort_by(|a, b| a.min_key().cmp(b.min_key())); [INFO] [stdout] 44 | | } [INFO] [stdout] 45 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 41 ~ if level > 0 [INFO] [stdout] 42 ~ && let Some(level_sstables) = self.levels.get_mut(&level) { [INFO] [stdout] 43 | level_sstables.sort_by(|a, b| a.min_key().cmp(b.min_key())); [INFO] [stdout] 44 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/engine/level.rs:69:17 [INFO] [stdout] | [INFO] [stdout] 69 | self.levels.get(&0).map_or(false, |files| files.len() >= self.level_0_file_limit) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 69 - self.levels.get(&0).map_or(false, |files| files.len() >= self.level_0_file_limit) [INFO] [stdout] 69 + self.levels.get(&0).is_some_and(|files| files.len() >= self.level_0_file_limit) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/cli.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | config.memtable_size_limit = 100; // Smaller limit for CLI demo [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `engine::lsm::LSMConfig { memtable_size_limit: 100, data_dir: PathBuf::from("data/runtime"), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/cli.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | let mut config = LSMConfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/cli.rs:265:9 [INFO] [stdout] | [INFO] [stdout] 265 | config.memtable_size_limit = 10; // Very small for testing [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `engine::lsm::LSMConfig { memtable_size_limit: 10, data_dir: temp_dir.path().to_path_buf(), enable_wal: false, background_compaction: false, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/cli.rs:264:9 [INFO] [stdout] | [INFO] [stdout] 264 | let mut config = LSMConfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:281:9 [INFO] [stdout] | [INFO] [stdout] 281 | assert_eq!(result.unwrap(), false); // Should not quit [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 281 - assert_eq!(result.unwrap(), false); // Should not quit [INFO] [stdout] 281 + assert!(!result.unwrap()); // Should not quit [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:297:9 [INFO] [stdout] | [INFO] [stdout] 297 | assert_eq!(result.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 297 - assert_eq!(result.unwrap(), false); [INFO] [stdout] 297 + assert!(!result.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:309:9 [INFO] [stdout] | [INFO] [stdout] 309 | assert_eq!(result.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 309 - assert_eq!(result.unwrap(), false); [INFO] [stdout] 309 + assert!(!result.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:330:9 [INFO] [stdout] | [INFO] [stdout] 330 | assert_eq!(result.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 330 - assert_eq!(result.unwrap(), false); [INFO] [stdout] 330 + assert!(!result.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:351:9 [INFO] [stdout] | [INFO] [stdout] 351 | assert_eq!(result.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 351 - assert_eq!(result.unwrap(), false); [INFO] [stdout] 351 + assert!(!result.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:364:9 [INFO] [stdout] | [INFO] [stdout] 364 | assert_eq!(result.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 364 - assert_eq!(result.unwrap(), false); [INFO] [stdout] 364 + assert!(!result.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:376:9 [INFO] [stdout] | [INFO] [stdout] 376 | assert_eq!(result.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 376 - assert_eq!(result.unwrap(), false); [INFO] [stdout] 376 + assert!(!result.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:389:9 [INFO] [stdout] | [INFO] [stdout] 389 | assert_eq!(result.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 389 - assert_eq!(result.unwrap(), false); [INFO] [stdout] 389 + assert!(!result.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:398:9 [INFO] [stdout] | [INFO] [stdout] 398 | assert_eq!(result.unwrap(), true); // Should quit [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 398 - assert_eq!(result.unwrap(), true); // Should quit [INFO] [stdout] 398 + assert!(result.unwrap()); // Should quit [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:402:9 [INFO] [stdout] | [INFO] [stdout] 402 | assert_eq!(result.unwrap(), true); // Should also quit [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 402 - assert_eq!(result.unwrap(), true); // Should also quit [INFO] [stdout] 402 + assert!(result.unwrap()); // Should also quit [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:411:9 [INFO] [stdout] | [INFO] [stdout] 411 | assert_eq!(result.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 411 - assert_eq!(result.unwrap(), false); [INFO] [stdout] 411 + assert!(!result.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:421:9 [INFO] [stdout] | [INFO] [stdout] 421 | assert_eq!(result.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 421 - assert_eq!(result.unwrap(), false); [INFO] [stdout] 421 + assert!(!result.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:425:9 [INFO] [stdout] | [INFO] [stdout] 425 | assert_eq!(result.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 425 - assert_eq!(result.unwrap(), false); [INFO] [stdout] 425 + assert!(!result.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:434:9 [INFO] [stdout] | [INFO] [stdout] 434 | assert_eq!(result.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 434 - assert_eq!(result.unwrap(), false); [INFO] [stdout] 434 + assert!(!result.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:443:9 [INFO] [stdout] | [INFO] [stdout] 443 | assert_eq!(result.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 443 - assert_eq!(result.unwrap(), false); [INFO] [stdout] 443 + assert!(!result.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:452:9 [INFO] [stdout] | [INFO] [stdout] 452 | assert_eq!(result.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 452 - assert_eq!(result.unwrap(), false); [INFO] [stdout] 452 + assert!(!result.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:461:9 [INFO] [stdout] | [INFO] [stdout] 461 | assert_eq!(result.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 461 - assert_eq!(result.unwrap(), false); [INFO] [stdout] 461 + assert!(!result.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:471:9 [INFO] [stdout] | [INFO] [stdout] 471 | assert_eq!(result.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 471 - assert_eq!(result.unwrap(), false); [INFO] [stdout] 471 + assert!(!result.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/cli.rs:479:9 [INFO] [stdout] | [INFO] [stdout] 479 | assert_eq!(result.unwrap(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 479 - assert_eq!(result.unwrap(), false); [INFO] [stdout] 479 + assert!(!result.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `PerformanceMetrics` [INFO] [stdout] --> src/metrics.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | / pub fn new() -> Self { [INFO] [stdout] 15 | | Self { [INFO] [stdout] 16 | | start_time: Instant::now(), [INFO] [stdout] 17 | | operation_counts: Arc::new(Mutex::new(HashMap::new())), [INFO] [stdout] ... | [INFO] [stdout] 21 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 13 + impl Default for PerformanceMetrics { [INFO] [stdout] 14 + fn default() -> Self { [INFO] [stdout] 15 + Self::new() [INFO] [stdout] 16 + } [INFO] [stdout] 17 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/etl/csv_parser.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | / if self.has_headers { [INFO] [stdout] 131 | | if let Ok(headers) = csv_reader.headers() { [INFO] [stdout] 132 | | columns = headers.iter().map(|h| h.to_string()).collect(); [INFO] [stdout] 133 | | } [INFO] [stdout] 134 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 130 ~ if self.has_headers [INFO] [stdout] 131 ~ && let Ok(headers) = csv_reader.headers() { [INFO] [stdout] 132 | columns = headers.iter().map(|h| h.to_string()).collect(); [INFO] [stdout] 133 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/etl/csv_parser.rs:248:17 [INFO] [stdout] | [INFO] [stdout] 248 | / if let Some(expected_type) = schema.get_column_type(i) { [INFO] [stdout] 249 | | if !self.validate_field_type(field, expected_type) { [INFO] [stdout] 250 | | return Err(DbError::InvalidOperation(format!( [INFO] [stdout] 251 | | "Field '{}' in column {} doesn't match expected type {:?}", [INFO] [stdout] ... | [INFO] [stdout] 255 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 248 ~ if let Some(expected_type) = schema.get_column_type(i) [INFO] [stdout] 249 ~ && !self.validate_field_type(field, expected_type) { [INFO] [stdout] 250 | return Err(DbError::InvalidOperation(format!( [INFO] [stdout] ... [INFO] [stdout] 253 | ))); [INFO] [stdout] 254 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ETLLoader` [INFO] [stdout] --> src/etl/loader.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | / pub fn new() -> Self { [INFO] [stdout] 41 | | Self { [INFO] [stdout] 42 | | batch_size: 1000, [INFO] [stdout] 43 | | parallel_threads: 4, // Default to 4 threads [INFO] [stdout] ... | [INFO] [stdout] 46 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 39 + impl Default for ETLLoader { [INFO] [stdout] 40 + fn default() -> Self { [INFO] [stdout] 41 + Self::new() [INFO] [stdout] 42 + } [INFO] [stdout] 43 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `row_number` is used as a loop counter [INFO] [stdout] --> src/etl/loader.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | for result in csv_reader.records() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (row_number, result) in (if has_headers { 1 } else { 0 }..).zip(csv_reader.records())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/query/parser.rs:299:29 [INFO] [stdout] | [INFO] [stdout] 299 | if (ch == '!' && next_ch == '=') || [INFO] [stdout] | _____________________________^ [INFO] [stdout] 300 | | (ch == '>' && next_ch == '=') || [INFO] [stdout] 301 | | (ch == '<' && next_ch == '=') || [INFO] [stdout] 302 | | (ch == '<' && next_ch == '>') { [INFO] [stdout] | |_________________________________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 299 - if (ch == '!' && next_ch == '=') || [INFO] [stdout] 300 - (ch == '>' && next_ch == '=') || [INFO] [stdout] 301 - (ch == '<' && next_ch == '=') || [INFO] [stdout] 302 - (ch == '<' && next_ch == '>') { [INFO] [stdout] 299 + if !(next_ch != '=' && ch != '<' || next_ch != '=' && next_ch != '>' || ch != '!' && ch != '>' && ch != '<') { [INFO] [stdout] | [INFO] [stdout] 299 - if (ch == '!' && next_ch == '=') || [INFO] [stdout] 300 - (ch == '>' && next_ch == '=') || [INFO] [stdout] 301 - (ch == '<' && next_ch == '=') || [INFO] [stdout] 302 - (ch == '<' && next_ch == '>') { [INFO] [stdout] 299 + if (ch == '<' || ch == '>' || ch == '!') && (next_ch == '>' || next_ch == '=') && (ch == '<' || next_ch == '=') { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/query/parser.rs:299:29 [INFO] [stdout] | [INFO] [stdout] 299 | if (ch == '!' && next_ch == '=') || [INFO] [stdout] | _____________________________^ [INFO] [stdout] 300 | | (ch == '>' && next_ch == '=') || [INFO] [stdout] 301 | | (ch == '<' && next_ch == '=') || [INFO] [stdout] | |_________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 299 - if (ch == '!' && next_ch == '=') || [INFO] [stdout] 300 - (ch == '>' && next_ch == '=') || [INFO] [stdout] 301 - (ch == '<' && next_ch == '=') || [INFO] [stdout] 299 + if !(next_ch != '=' || ch != '!' && ch != '>' && ch != '<') || [INFO] [stdout] | [INFO] [stdout] 299 - if (ch == '!' && next_ch == '=') || [INFO] [stdout] 300 - (ch == '>' && next_ch == '=') || [INFO] [stdout] 301 - (ch == '<' && next_ch == '=') || [INFO] [stdout] 299 + if (ch == '<' || ch == '>' || ch == '!') && next_ch == '=' || [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/query/parser.rs:299:29 [INFO] [stdout] | [INFO] [stdout] 299 | if (ch == '!' && next_ch == '=') || [INFO] [stdout] | _____________________________^ [INFO] [stdout] 300 | | (ch == '>' && next_ch == '=') || [INFO] [stdout] | |_________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 299 - if (ch == '!' && next_ch == '=') || [INFO] [stdout] 300 - (ch == '>' && next_ch == '=') || [INFO] [stdout] 299 + if !(next_ch != '=' || ch != '!' && ch != '>') || [INFO] [stdout] | [INFO] [stdout] 299 - if (ch == '!' && next_ch == '=') || [INFO] [stdout] 300 - (ch == '>' && next_ch == '=') || [INFO] [stdout] 299 + if (ch == '>' || ch == '!') && next_ch == '=' || [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/query/executor.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | config.data_dir = temp_dir.path().to_path_buf(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `engine::lsm::LSMConfig { data_dir: temp_dir.path().to_path_buf(), enable_wal: false, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/query/executor.rs:167:9 [INFO] [stdout] | [INFO] [stdout] 167 | let mut config = LSMConfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/query/executor.rs:196:9 [INFO] [stdout] | [INFO] [stdout] 196 | config.data_dir = temp_dir.path().to_path_buf(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `engine::lsm::LSMConfig { data_dir: temp_dir.path().to_path_buf(), enable_wal: false, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/query/executor.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | let mut config = LSMConfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/query/executor.rs:228:9 [INFO] [stdout] | [INFO] [stdout] 228 | config.data_dir = temp_dir.path().to_path_buf(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `engine::lsm::LSMConfig { data_dir: temp_dir.path().to_path_buf(), enable_wal: false, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/query/executor.rs:227:9 [INFO] [stdout] | [INFO] [stdout] 227 | let mut config = LSMConfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DbResult`, `QueryExecutor`, `SQLParser`, and `etl::ETLLoader` [INFO] [stdout] --> tests/common.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | etl::ETLLoader, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 6 | query::{SQLParser, QueryExecutor}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] 7 | DbResult, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LSMConfig` and `LSMTree` [INFO] [stdout] --> tests/performance.rs:5:14 [INFO] [stdout] | [INFO] [stdout] 5 | engine::{LSMTree, LSMConfig}, [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DbResult`, `QueryExecutor`, `SQLParser`, and `etl::ETLLoader` [INFO] [stdout] --> tests/common.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | etl::ETLLoader, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 6 | query::{SQLParser, QueryExecutor}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] 7 | DbResult, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DbResult`, `QueryExecutor`, `SQLParser`, and `etl::ETLLoader` [INFO] [stdout] --> tests/common.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | etl::ETLLoader, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 6 | query::{SQLParser, QueryExecutor}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] 7 | DbResult, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LSMConfig`, `LSMTree`, `QueryExecutor`, `SQLParser`, and `etl::ETLLoader` [INFO] [stdout] --> tests/stress_tests.rs:5:14 [INFO] [stdout] | [INFO] [stdout] 5 | engine::{LSMTree, LSMConfig}, [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] 6 | etl::ETLLoader, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 7 | query::{SQLParser, QueryExecutor}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `PerformanceMetrics` [INFO] [stdout] --> src/metrics.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | / pub fn new() -> Self { [INFO] [stdout] 15 | | Self { [INFO] [stdout] 16 | | start_time: Instant::now(), [INFO] [stdout] 17 | | operation_counts: Arc::new(Mutex::new(HashMap::new())), [INFO] [stdout] ... | [INFO] [stdout] 21 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 13 + impl Default for PerformanceMetrics { [INFO] [stdout] 14 + fn default() -> Self { [INFO] [stdout] 15 + Self::new() [INFO] [stdout] 16 + } [INFO] [stdout] 17 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_test_csv_with_errors` is never used [INFO] [stdout] --> tests/common.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn create_test_csv_with_errors(temp_dir: &TempDir, filename: &str) -> PathBuf { [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 `assert_duration_bounds` is never used [INFO] [stdout] --> tests/common.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn assert_duration_bounds(duration: std::time::Duration, min_ms: u64, max_ms: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_test_data` is never used [INFO] [stdout] --> tests/common.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn generate_test_data(count: usize, prefix: &str) -> Vec<(String, String)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DbResult`, `QueryExecutor`, `SQLParser`, and `etl::ETLLoader` [INFO] [stdout] --> tests/common.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | etl::ETLLoader, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 6 | query::{SQLParser, QueryExecutor}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] 7 | DbResult, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `metadata` [INFO] [stdout] --> tests/stress_tests.rs:248:19 [INFO] [stdout] | [INFO] [stdout] 248 | if let Ok(metadata) = std::fs::metadata(&temp_dir.path()) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metadata` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_test_csv` is never used [INFO] [stdout] --> tests/common.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn create_test_csv(temp_dir: &TempDir, filename: &str, data: &[(&str, &str)]) -> PathBuf { [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 `create_test_csv_with_errors` is never used [INFO] [stdout] --> tests/common.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn create_test_csv_with_errors(temp_dir: &TempDir, filename: &str) -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `assert_duration_bounds` is never used [INFO] [stdout] --> tests/common.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn assert_duration_bounds(duration: std::time::Duration, min_ms: u64, max_ms: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_test_data` is never used [INFO] [stdout] --> tests/common.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn generate_test_data(count: usize, prefix: &str) -> Vec<(String, String)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_memory_usage` is never used [INFO] [stdout] --> tests/common.rs:97:8 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn get_memory_usage() -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `measure_time` is never used [INFO] [stdout] --> tests/common.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn measure_time(f: F) -> (R, std::time::Duration) [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 `assert_duration_bounds` is never used [INFO] [stdout] --> tests/common.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn assert_duration_bounds(duration: std::time::Duration, min_ms: u64, max_ms: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_test_data` is never used [INFO] [stdout] --> tests/common.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn generate_test_data(count: usize, prefix: &str) -> Vec<(String, String)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_memory_usage` is never used [INFO] [stdout] --> tests/common.rs:97:8 [INFO] [stdout] | [INFO] [stdout] 97 | pub fn get_memory_usage() -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> tests/stress_tests.rs:248:49 [INFO] [stdout] | [INFO] [stdout] 248 | if let Ok(metadata) = std::fs::metadata(&temp_dir.path()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `temp_dir.path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `std::mem::drop` with a value that does not implement `Drop`. Dropping such a type only extends its contained lifetimes [INFO] [stdout] --> tests/end_to_end.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | drop(executor); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: argument has type `rust_solo_all_db::query::QueryExecutor<'_>` [INFO] [stdout] --> tests/end_to_end.rs:60:10 [INFO] [stdout] | [INFO] [stdout] 60 | drop(executor); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_non_drop [INFO] [stdout] = note: `#[warn(clippy::drop_non_drop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `std::mem::drop` with a value that does not implement `Drop`. Dropping such a type only extends its contained lifetimes [INFO] [stdout] --> tests/end_to_end.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | drop(executor); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: argument has type `rust_solo_all_db::query::QueryExecutor<'_>` [INFO] [stdout] --> tests/end_to_end.rs:77:10 [INFO] [stdout] | [INFO] [stdout] 77 | drop(executor); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_non_drop [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.81s [INFO] running `Command { std: "docker" "inspect" "d7f14585e183370a901600e40e0399547a917df2d7c6f4526e36c0bdbe3ce8ac", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d7f14585e183370a901600e40e0399547a917df2d7c6f4526e36c0bdbe3ce8ac", kill_on_drop: false }` [INFO] [stdout] d7f14585e183370a901600e40e0399547a917df2d7c6f4526e36c0bdbe3ce8ac