[INFO] cloning repository https://github.com/jordannakamoto/ils [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jordannakamoto/ils" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjordannakamoto%2Fils", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjordannakamoto%2Fils'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 9659389a81dc448f46b32020973c14072f674488 [INFO] linting jordannakamoto/ils against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjordannakamoto%2Fils" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/jordannakamoto/ils [INFO] finished tweaking git repo https://github.com/jordannakamoto/ils [INFO] tweaked toml for git repo https://github.com/jordannakamoto/ils written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jordannakamoto/ils 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/jordannakamoto/ils 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 type1-encoding-parser v0.1.0 [INFO] [stderr] Downloaded viuer v0.7.1 [INFO] [stderr] Downloaded ansi_colours v1.2.3 [INFO] [stderr] Downloaded avif-serialize v0.8.6 [INFO] [stderr] Downloaded aligned-vec v0.6.4 [INFO] [stderr] Downloaded adobe-cmap-parser v0.4.1 [INFO] [stderr] Downloaded profiling-procmacros v1.0.17 [INFO] [stderr] Downloaded pdf-extract v0.7.12 [INFO] [stderr] Downloaded find-msvc-tools v0.1.2 [INFO] [stderr] Downloaded v_frame v0.3.9 [INFO] [stderr] Downloaded ravif v0.11.20 [INFO] [stderr] Downloaded av1-grain v0.2.4 [INFO] [stderr] Downloaded postscript v0.14.1 [INFO] [stderr] Downloaded image-webp v0.2.4 [INFO] [stderr] Downloaded imgref v1.12.0 [INFO] [stderr] Downloaded cc v1.2.39 [INFO] [stderr] Downloaded euclid v0.20.14 [INFO] [stderr] Downloaded libfuzzer-sys v0.4.10 [INFO] [stderr] Downloaded pom v1.1.0 [INFO] [stderr] Downloaded quick-xml v0.38.3 [INFO] [stderr] Downloaded libc v0.2.176 [INFO] [stderr] Downloaded pxfm v0.1.24 [INFO] [stderr] Downloaded windows-sys v0.61.1 [INFO] [stderr] Downloaded lopdf v0.34.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] c619fdb75c5ea40c123a0248435bc1cf7ef82f5e03bbfa12278fba00e57ab382 [INFO] running `Command { std: "docker" "start" "-a" "c619fdb75c5ea40c123a0248435bc1cf7ef82f5e03bbfa12278fba00e57ab382", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c619fdb75c5ea40c123a0248435bc1cf7ef82f5e03bbfa12278fba00e57ab382", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c619fdb75c5ea40c123a0248435bc1cf7ef82f5e03bbfa12278fba00e57ab382", kill_on_drop: false }` [INFO] [stdout] c619fdb75c5ea40c123a0248435bc1cf7ef82f5e03bbfa12278fba00e57ab382 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 66b40a07c6dc468b732ef357e452237a29003e4cfcbc2e170245afc2bdfa3d4b [INFO] running `Command { std: "docker" "start" "-a" "66b40a07c6dc468b732ef357e452237a29003e4cfcbc2e170245afc2bdfa3d4b", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling libc v0.2.176 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking flate2 v1.1.2 [INFO] [stderr] Checking bitflags v2.9.4 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Checking rayon v1.11.0 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking bytemuck v1.23.2 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling find-msvc-tools v0.1.2 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling cc v1.2.39 [INFO] [stderr] Checking half v2.6.0 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking signal-hook-registry v1.4.6 [INFO] [stderr] Compiling built v0.7.7 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Compiling rav1e v0.7.1 [INFO] [stderr] Compiling onig_sys v69.9.1 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking rgb v0.8.52 [INFO] [stderr] Checking zune-inflate v0.2.54 [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Checking quick-error v2.0.1 [INFO] [stderr] Checking lebe v0.5.3 [INFO] [stderr] Checking bit_field v0.10.3 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking signal-hook-mio v0.2.4 [INFO] [stderr] Checking gif v0.13.3 [INFO] [stderr] Checking jpeg-decoder v0.3.2 [INFO] [stderr] Checking exr v1.73.0 [INFO] [stderr] Checking maybe-rayon v0.1.1 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking qoi v0.4.1 [INFO] [stderr] Checking itertools v0.12.1 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Checking bitstream-io v2.6.0 [INFO] [stderr] Checking imgref v1.12.0 [INFO] [stderr] Checking zune-core v0.4.12 [INFO] [stderr] Checking new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Checking pom v1.1.0 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling noop_proc_macro v0.3.0 [INFO] [stderr] Checking png v0.17.16 [INFO] [stderr] Checking zune-jpeg v0.4.21 [INFO] [stderr] Checking loop9 v0.1.5 [INFO] [stderr] Checking tiff v0.9.1 [INFO] [stderr] Checking avif-serialize v0.8.6 [INFO] [stderr] Checking pxfm v0.1.24 [INFO] [stderr] Checking quick-xml v0.38.3 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Checking byteorder-lite v0.1.0 [INFO] [stderr] Checking winnow v0.7.13 [INFO] [stderr] Checking ryu v1.0.20 [INFO] [stderr] Checking toml_write v0.1.2 [INFO] [stderr] Checking fastrand v2.3.0 [INFO] [stderr] Checking yaml-rust v0.4.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling equator-macro v0.4.2 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling profiling-procmacros v1.0.17 [INFO] [stderr] Checking profiling v1.0.17 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Checking equator v0.4.2 [INFO] [stderr] Compiling fax_derive v0.2.0 [INFO] [stderr] Checking aligned-vec v0.6.4 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Checking v_frame v0.3.9 [INFO] [stderr] Checking fax v0.2.6 [INFO] [stderr] Checking av1-grain v0.2.4 [INFO] [stderr] Checking image v0.24.9 [INFO] [stderr] Checking tiff v0.10.3 [INFO] [stderr] Checking moxcms v0.7.5 [INFO] [stderr] Checking tempfile v3.23.0 [INFO] [stderr] Checking onig v6.5.1 [INFO] [stderr] Checking image-webp v0.2.4 [INFO] [stderr] Checking thiserror v2.0.17 [INFO] [stderr] Checking lopdf v0.34.0 [INFO] [stderr] Checking type1-encoding-parser v0.1.0 [INFO] [stderr] Checking adobe-cmap-parser v0.4.1 [INFO] [stderr] Checking crossterm v0.27.0 [INFO] [stderr] Checking ansi_colours v1.2.3 [INFO] [stderr] Checking console v0.15.11 [INFO] [stderr] Checking euclid v0.20.14 [INFO] [stderr] Checking png v0.18.0 [INFO] [stderr] Checking base64 v0.21.7 [INFO] [stderr] Checking regex-syntax v0.8.6 [INFO] [stderr] Checking postscript v0.14.1 [INFO] [stderr] Checking termcolor v1.4.1 [INFO] [stderr] Checking crossterm v0.28.1 [INFO] [stderr] Checking pdf-extract v0.7.12 [INFO] [stderr] Checking viuer v0.7.1 [INFO] [stderr] Checking serde_spanned v0.6.9 [INFO] [stderr] Checking toml_datetime v0.6.11 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking plist v1.8.0 [INFO] [stderr] Checking toml_edit v0.22.27 [INFO] [stderr] Checking syntect v5.3.0 [INFO] [stderr] Checking toml v0.8.23 [INFO] [stderr] Checking ravif v0.11.20 [INFO] [stderr] Checking image v0.25.8 [INFO] [stderr] Checking ils v0.1.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/main.rs:31:45 [INFO] [stdout] | [INFO] [stdout] 31 | let home = env::var("HOME").map_err(|_| io::Error::new(io::ErrorKind::Other, "HOME not set"))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 31 - let home = env::var("HOME").map_err(|_| io::Error::new(io::ErrorKind::Other, "HOME not set"))?; [INFO] [stdout] 31 + let home = env::var("HOME").map_err(|_| io::Error::other("HOME not set"))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/main.rs:31:45 [INFO] [stdout] | [INFO] [stdout] 31 | let home = env::var("HOME").map_err(|_| io::Error::new(io::ErrorKind::Other, "HOME not set"))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 31 - let home = env::var("HOME").map_err(|_| io::Error::new(io::ErrorKind::Other, "HOME not set"))?; [INFO] [stdout] 31 + let home = env::var("HOME").map_err(|_| io::Error::other("HOME not set"))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/main.rs:503:30 [INFO] [stdout] | [INFO] [stdout] 503 | .map_err(|e| io::Error::new(io::ErrorKind::Other, e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 503 - .map_err(|e| io::Error::new(io::ErrorKind::Other, e))?; [INFO] [stdout] 503 + .map_err(|e| io::Error::other(e))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:509:38 [INFO] [stdout] | [INFO] [stdout] 509 | fn record_visit(&mut self, path: &PathBuf, max_storage: usize) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 509 - fn record_visit(&mut self, path: &PathBuf, max_storage: usize) { [INFO] [stdout] 509 + fn record_visit(&mut self, path: &Path, max_storage: usize) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/main.rs:519:12 [INFO] [stdout] | [INFO] [stdout] 519 | if self.entries.len() % 100 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `self.entries.len().is_multiple_of(100)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/main.rs:633:17 [INFO] [stdout] | [INFO] [stdout] 633 | io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 633 - io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] 633 + io::Error::other(e) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/main.rs:796:1 [INFO] [stdout] | [INFO] [stdout] 796 | / impl Default for Config { [INFO] [stdout] 797 | | fn default() -> Self { [INFO] [stdout] 798 | | Config { [INFO] [stdout] 799 | | keybindings: Keybindings::default(), [INFO] [stdout] ... | [INFO] [stdout] 804 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 591 + #[derive(Default)] [INFO] [stdout] 592 | struct Config { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/main.rs:814:17 [INFO] [stdout] | [INFO] [stdout] 814 | io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 814 - io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] 814 + io::Error::other(e) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/main.rs:869:17 [INFO] [stdout] | [INFO] [stdout] 869 | io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 869 - io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] 869 + io::Error::other(e) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/main.rs:1062:17 [INFO] [stdout] | [INFO] [stdout] 1062 | io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 1062 - io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] 1062 + io::Error::other(e) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/main.rs:1151:45 [INFO] [stdout] | [INFO] [stdout] 1151 | let ch_width = if ch.is_ascii() { 1 } else { 1 }; // Simplified: treat all chars as width 1 [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/main.rs:1151:56 [INFO] [stdout] | [INFO] [stdout] 1151 | let ch_width = if ch.is_ascii() { 1 } else { 1 }; // Simplified: treat all chars as width 1 [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: matching on `Some` with `ok()` is redundant [INFO] [stdout] --> src/main.rs:1194:13 [INFO] [stdout] | [INFO] [stdout] 1194 | if let Some(home) = env::var("HOME").ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_result_ok [INFO] [stdout] = note: `#[warn(clippy::match_result_ok)]` on by default [INFO] [stdout] help: consider matching on `Ok(home)` and removing the call to `ok` instead [INFO] [stdout] | [INFO] [stdout] 1194 - if let Some(home) = env::var("HOME").ok() { [INFO] [stdout] 1194 + if let Ok(home) = env::var("HOME") { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/main.rs:1468:35 [INFO] [stdout] | [INFO] [stdout] 1468 | let rows_needed = (num_entries + cols - 1) / cols; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `num_entries.div_ceil(cols)` [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: manual absolute difference pattern without using `abs_diff` [INFO] [stdout] --> src/main.rs:1471:33 [INFO] [stdout] | [INFO] [stdout] 1471 | let score = if cols > rows_needed { [INFO] [stdout] | _________________________________^ [INFO] [stdout] 1472 | | cols - rows_needed [INFO] [stdout] 1473 | | } else { [INFO] [stdout] 1474 | | rows_needed - cols [INFO] [stdout] 1475 | | }; [INFO] [stdout] | |_____________________^ help: replace with `abs_diff`: `cols.abs_diff(rows_needed)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_abs_diff [INFO] [stdout] = note: `#[warn(clippy::manual_abs_diff)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:1694:24 [INFO] [stdout] | [INFO] [stdout] 1694 | if (!self.list_mode || (self.list_mode && self.list_info_mode > 0)) && display_name.len() > NAME_WIDTH { [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] 1694 - if (!self.list_mode || (self.list_mode && self.list_info_mode > 0)) && display_name.len() > NAME_WIDTH { [INFO] [stdout] 1694 + if !(display_name.len() <= NAME_WIDTH || self.list_mode && self.list_info_mode <= 0) { [INFO] [stdout] | [INFO] [stdout] 1694 - if (!self.list_mode || (self.list_mode && self.list_info_mode > 0)) && display_name.len() > NAME_WIDTH { [INFO] [stdout] 1694 + if (self.list_info_mode > 0 || !self.list_mode) && display_name.len() > NAME_WIDTH { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:1694:24 [INFO] [stdout] | [INFO] [stdout] 1694 | if (!self.list_mode || (self.list_mode && self.list_info_mode > 0)) && display_name.len() > NAME_WIDTH { [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] 1694 - if (!self.list_mode || (self.list_mode && self.list_info_mode > 0)) && display_name.len() > NAME_WIDTH { [INFO] [stdout] 1694 + if !(self.list_mode && self.list_info_mode <= 0) && display_name.len() > NAME_WIDTH { [INFO] [stdout] | [INFO] [stdout] 1694 - if (!self.list_mode || (self.list_mode && self.list_info_mode > 0)) && display_name.len() > NAME_WIDTH { [INFO] [stdout] 1694 + if !self.list_mode || self.list_info_mode > 0 && display_name.len() > NAME_WIDTH { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/main.rs:1661:30 [INFO] [stdout] | [INFO] [stdout] 1661 | let total_rows = (self.entries.len() + self.num_cols - 1) / self.num_cols; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `self.entries.len().div_ceil(self.num_cols)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/main.rs:503:30 [INFO] [stdout] | [INFO] [stdout] 503 | .map_err(|e| io::Error::new(io::ErrorKind::Other, e))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 503 - .map_err(|e| io::Error::new(io::ErrorKind::Other, e))?; [INFO] [stdout] 503 + .map_err(|e| io::Error::other(e))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:509:38 [INFO] [stdout] | [INFO] [stdout] 509 | fn record_visit(&mut self, path: &PathBuf, max_storage: usize) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 509 - fn record_visit(&mut self, path: &PathBuf, max_storage: usize) { [INFO] [stdout] 509 + fn record_visit(&mut self, path: &Path, max_storage: usize) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/main.rs:519:12 [INFO] [stdout] | [INFO] [stdout] 519 | if self.entries.len() % 100 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `self.entries.len().is_multiple_of(100)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/main.rs:633:17 [INFO] [stdout] | [INFO] [stdout] 633 | io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 633 - io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] 633 + io::Error::other(e) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/main.rs:796:1 [INFO] [stdout] | [INFO] [stdout] 796 | / impl Default for Config { [INFO] [stdout] 797 | | fn default() -> Self { [INFO] [stdout] 798 | | Config { [INFO] [stdout] 799 | | keybindings: Keybindings::default(), [INFO] [stdout] ... | [INFO] [stdout] 804 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 591 + #[derive(Default)] [INFO] [stdout] 592 | struct Config { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/main.rs:814:17 [INFO] [stdout] | [INFO] [stdout] 814 | io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 814 - io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] 814 + io::Error::other(e) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/main.rs:869:17 [INFO] [stdout] | [INFO] [stdout] 869 | io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 869 - io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] 869 + io::Error::other(e) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/main.rs:1062:17 [INFO] [stdout] | [INFO] [stdout] 1062 | io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 1062 - io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] 1062 + io::Error::other(e) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:2139:32 [INFO] [stdout] | [INFO] [stdout] 2139 | if let Err(_) = print_from_file(&selected, &conf) { [INFO] [stdout] | -------^^^^^^------------------------------------ help: try: `if print_from_file(&selected, &conf).is_err()` [INFO] [stdout] | [INFO] [stdout] = note: this will change drop order of the result, as well as all temporaries [INFO] [stdout] = note: add `#[allow(clippy::redundant_pattern_matching)]` if this is important [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/main.rs:1151:45 [INFO] [stdout] | [INFO] [stdout] 1151 | let ch_width = if ch.is_ascii() { 1 } else { 1 }; // Simplified: treat all chars as width 1 [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/main.rs:1151:56 [INFO] [stdout] | [INFO] [stdout] 1151 | let ch_width = if ch.is_ascii() { 1 } else { 1 }; // Simplified: treat all chars as width 1 [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: matching on `Some` with `ok()` is redundant [INFO] [stdout] --> src/main.rs:1194:13 [INFO] [stdout] | [INFO] [stdout] 1194 | if let Some(home) = env::var("HOME").ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_result_ok [INFO] [stdout] = note: `#[warn(clippy::match_result_ok)]` on by default [INFO] [stdout] help: consider matching on `Ok(home)` and removing the call to `ok` instead [INFO] [stdout] | [INFO] [stdout] 1194 - if let Some(home) = env::var("HOME").ok() { [INFO] [stdout] 1194 + if let Ok(home) = env::var("HOME") { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/main.rs:1468:35 [INFO] [stdout] | [INFO] [stdout] 1468 | let rows_needed = (num_entries + cols - 1) / cols; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `num_entries.div_ceil(cols)` [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: manual absolute difference pattern without using `abs_diff` [INFO] [stdout] --> src/main.rs:1471:33 [INFO] [stdout] | [INFO] [stdout] 1471 | let score = if cols > rows_needed { [INFO] [stdout] | _________________________________^ [INFO] [stdout] 1472 | | cols - rows_needed [INFO] [stdout] 1473 | | } else { [INFO] [stdout] 1474 | | rows_needed - cols [INFO] [stdout] 1475 | | }; [INFO] [stdout] | |_____________________^ help: replace with `abs_diff`: `cols.abs_diff(rows_needed)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_abs_diff [INFO] [stdout] = note: `#[warn(clippy::manual_abs_diff)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/main.rs:2260:31 [INFO] [stdout] | [INFO] [stdout] 2260 | Print(format!("{}", selected.file_name().and_then(|n| n.to_str()).unwrap_or(""))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `selected.file_name().and_then(|n| n.to_str()).unwrap_or("").to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:1694:24 [INFO] [stdout] | [INFO] [stdout] 1694 | if (!self.list_mode || (self.list_mode && self.list_info_mode > 0)) && display_name.len() > NAME_WIDTH { [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] 1694 - if (!self.list_mode || (self.list_mode && self.list_info_mode > 0)) && display_name.len() > NAME_WIDTH { [INFO] [stdout] 1694 + if !(display_name.len() <= NAME_WIDTH || self.list_mode && self.list_info_mode <= 0) { [INFO] [stdout] | [INFO] [stdout] 1694 - if (!self.list_mode || (self.list_mode && self.list_info_mode > 0)) && display_name.len() > NAME_WIDTH { [INFO] [stdout] 1694 + if (self.list_info_mode > 0 || !self.list_mode) && display_name.len() > NAME_WIDTH { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:1694:24 [INFO] [stdout] | [INFO] [stdout] 1694 | if (!self.list_mode || (self.list_mode && self.list_info_mode > 0)) && display_name.len() > NAME_WIDTH { [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] 1694 - if (!self.list_mode || (self.list_mode && self.list_info_mode > 0)) && display_name.len() > NAME_WIDTH { [INFO] [stdout] 1694 + if !(self.list_mode && self.list_info_mode <= 0) && display_name.len() > NAME_WIDTH { [INFO] [stdout] | [INFO] [stdout] 1694 - if (!self.list_mode || (self.list_mode && self.list_info_mode > 0)) && display_name.len() > NAME_WIDTH { [INFO] [stdout] 1694 + if !self.list_mode || self.list_info_mode > 0 && display_name.len() > NAME_WIDTH { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/main.rs:2370:13 [INFO] [stdout] | [INFO] [stdout] 2370 | / format!( [INFO] [stdout] 2371 | | " Frecency Jump │ Type to filter │ Tab/↑/↓ Navigate results │ Enter Jump │ Esc Cancel" [INFO] [stdout] 2372 | | ) [INFO] [stdout] | |_____________^ help: consider using `.to_string()`: `" Frecency Jump │ Type to filter │ Tab/↑/↓ Navigate results │ Enter Jump │ Esc Cancel".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/main.rs:1661:30 [INFO] [stdout] | [INFO] [stdout] 1661 | let total_rows = (self.entries.len() + self.num_cols - 1) / self.num_cols; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `self.entries.len().div_ceil(self.num_cols)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/main.rs:2578:33 [INFO] [stdout] | [INFO] [stdout] 2578 | if self.selected > 0 && self.selected % self.num_cols != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!self.selected.is_multiple_of(self.num_cols)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/main.rs:2585:54 [INFO] [stdout] | [INFO] [stdout] 2585 | if self.selected + 1 < self.entries.len() && (self.selected + 1) % self.num_cols != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!(self.selected + 1).is_multiple_of(self.num_cols)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/main.rs:3150:29 [INFO] [stdout] | [INFO] [stdout] 3150 | / ... if !input.is_empty() { [INFO] [stdout] 3151 | | ... input.pop(); [INFO] [stdout] 3152 | | ... print!("\x08 \x08"); [INFO] [stdout] 3153 | | ... io::stdout().flush()?; [INFO] [stdout] 3154 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 3149 ~ KeyCode::Backspace [INFO] [stdout] 3150 ~ if !input.is_empty() => { [INFO] [stdout] 3151 | input.pop(); [INFO] [stdout] 3152 | print!("\x08 \x08"); [INFO] [stdout] 3153 | io::stdout().flush()?; [INFO] [stdout] 3154 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:3242:23 [INFO] [stdout] | [INFO] [stdout] 3242 | .open(&rc_path)?; [INFO] [stdout] | ^^^^^^^^ help: change this to: `rc_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: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:2139:32 [INFO] [stdout] | [INFO] [stdout] 2139 | if let Err(_) = print_from_file(&selected, &conf) { [INFO] [stdout] | -------^^^^^^------------------------------------ help: try: `if print_from_file(&selected, &conf).is_err()` [INFO] [stdout] | [INFO] [stdout] = note: this will change drop order of the result, as well as all temporaries [INFO] [stdout] = note: add `#[allow(clippy::redundant_pattern_matching)]` if this is important [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:3402:9 [INFO] [stdout] | [INFO] [stdout] 3402 | / if wrapper_installed { [INFO] [stdout] 3403 | | if Config::path().is_some() { [INFO] [stdout] 3404 | | // Reload config, update cache flag, and save [INFO] [stdout] 3405 | | let (mut updated_config, _) = Config::load(); [INFO] [stdout] ... | [INFO] [stdout] 3409 | | } [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] 3402 ~ if wrapper_installed [INFO] [stdout] 3403 ~ && Config::path().is_some() { [INFO] [stdout] 3404 | // Reload config, update cache flag, and save [INFO] [stdout] ... [INFO] [stdout] 3407 | let _ = updated_config.save(); [INFO] [stdout] 3408 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/main.rs:2260:31 [INFO] [stdout] | [INFO] [stdout] 2260 | Print(format!("{}", selected.file_name().and_then(|n| n.to_str()).unwrap_or(""))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `selected.file_name().and_then(|n| n.to_str()).unwrap_or("").to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/main.rs:2370:13 [INFO] [stdout] | [INFO] [stdout] 2370 | / format!( [INFO] [stdout] 2371 | | " Frecency Jump │ Type to filter │ Tab/↑/↓ Navigate results │ Enter Jump │ Esc Cancel" [INFO] [stdout] 2372 | | ) [INFO] [stdout] | |_____________^ help: consider using `.to_string()`: `" Frecency Jump │ Type to filter │ Tab/↑/↓ Navigate results │ Enter Jump │ Esc Cancel".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/main.rs:3659:36 [INFO] [stdout] | [INFO] [stdout] 3659 | ... if browser.fuzzy_prev_count > 1 || browser.fuzzy_prev_count == 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `browser.fuzzy_prev_count >= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] = note: `#[warn(clippy::double_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/main.rs:2578:33 [INFO] [stdout] | [INFO] [stdout] 2578 | if self.selected > 0 && self.selected % self.num_cols != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!self.selected.is_multiple_of(self.num_cols)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/main.rs:2585:54 [INFO] [stdout] | [INFO] [stdout] 2585 | if self.selected + 1 < self.entries.len() && (self.selected + 1) % self.num_cols != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!(self.selected + 1).is_multiple_of(self.num_cols)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/main.rs:3150:29 [INFO] [stdout] | [INFO] [stdout] 3150 | / ... if !input.is_empty() { [INFO] [stdout] 3151 | | ... input.pop(); [INFO] [stdout] 3152 | | ... print!("\x08 \x08"); [INFO] [stdout] 3153 | | ... io::stdout().flush()?; [INFO] [stdout] 3154 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 3149 ~ KeyCode::Backspace [INFO] [stdout] 3150 ~ if !input.is_empty() => { [INFO] [stdout] 3151 | input.pop(); [INFO] [stdout] 3152 | print!("\x08 \x08"); [INFO] [stdout] 3153 | io::stdout().flush()?; [INFO] [stdout] 3154 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:3242:23 [INFO] [stdout] | [INFO] [stdout] 3242 | .open(&rc_path)?; [INFO] [stdout] | ^^^^^^^^ help: change this to: `rc_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: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:3402:9 [INFO] [stdout] | [INFO] [stdout] 3402 | / if wrapper_installed { [INFO] [stdout] 3403 | | if Config::path().is_some() { [INFO] [stdout] 3404 | | // Reload config, update cache flag, and save [INFO] [stdout] 3405 | | let (mut updated_config, _) = Config::load(); [INFO] [stdout] ... | [INFO] [stdout] 3409 | | } [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] 3402 ~ if wrapper_installed [INFO] [stdout] 3403 ~ && Config::path().is_some() { [INFO] [stdout] 3404 | // Reload config, update cache flag, and save [INFO] [stdout] ... [INFO] [stdout] 3407 | let _ = updated_config.save(); [INFO] [stdout] 3408 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this binary expression can be simplified [INFO] [stdout] --> src/main.rs:3659:36 [INFO] [stdout] | [INFO] [stdout] 3659 | ... if browser.fuzzy_prev_count > 1 || browser.fuzzy_prev_count == 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `browser.fuzzy_prev_count >= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_comparisons [INFO] [stdout] = note: `#[warn(clippy::double_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 25s [INFO] running `Command { std: "docker" "inspect" "66b40a07c6dc468b732ef357e452237a29003e4cfcbc2e170245afc2bdfa3d4b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "66b40a07c6dc468b732ef357e452237a29003e4cfcbc2e170245afc2bdfa3d4b", kill_on_drop: false }` [INFO] [stdout] 66b40a07c6dc468b732ef357e452237a29003e4cfcbc2e170245afc2bdfa3d4b