[INFO] cloning repository https://github.com/merci-libre/rm-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/merci-libre/rm-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmerci-libre%2Frm-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmerci-libre%2Frm-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a3c47995c064d471a7204a6ef70efffe56007125 [INFO] linting merci-libre/rm-rust against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmerci-libre%2Frm-rust" "/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/merci-libre/rm-rust [INFO] finished tweaking git repo https://github.com/merci-libre/rm-rust [INFO] tweaked toml for git repo https://github.com/merci-libre/rm-rust written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/merci-libre/rm-rust 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/merci-libre/rm-rust 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] 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] 914d5258e49456f02514653dfcfebae6d4664a83c254938caa44aaea659927e8 [INFO] running `Command { std: "docker" "start" "-a" "914d5258e49456f02514653dfcfebae6d4664a83c254938caa44aaea659927e8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "914d5258e49456f02514653dfcfebae6d4664a83c254938caa44aaea659927e8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "914d5258e49456f02514653dfcfebae6d4664a83c254938caa44aaea659927e8", kill_on_drop: false }` [INFO] [stdout] 914d5258e49456f02514653dfcfebae6d4664a83c254938caa44aaea659927e8 [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] 480cd44e5be56b5afc1fee6782db44e1309c700885c28c4c6e1480ef1e8b29e1 [INFO] running `Command { std: "docker" "start" "-a" "480cd44e5be56b5afc1fee6782db44e1309c700885c28c4c6e1480ef1e8b29e1", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Checking clap_builder v4.5.37 [INFO] [stderr] Compiling clap_derive v4.5.32 [INFO] [stderr] Checking clap v4.5.37 [INFO] [stderr] Checking rm-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: value assigned to `continue_after_root` is never read [INFO] [stdout] --> src/main.rs:19:41 [INFO] [stdout] | [INFO] [stdout] 19 | let mut continue_after_root: bool = false; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::usize; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `usize::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/main.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | / match args.force { [INFO] [stdout] 24 | | true => mode = 0, [INFO] [stdout] 25 | | false => (), [INFO] [stdout] 26 | | } [INFO] [stdout] | |_____^ help: try: `if args.force == true { mode = 0 }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/main.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | / match args.x { [INFO] [stdout] 29 | | true => mode = 1, [INFO] [stdout] 30 | | false => (), [INFO] [stdout] 31 | | } [INFO] [stdout] | |_____^ help: try: `if args.x == true { mode = 1 }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/main.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / match args.i { [INFO] [stdout] 34 | | true => mode = 2, [INFO] [stdout] 35 | | false => (), [INFO] [stdout] 36 | | } [INFO] [stdout] | |_____^ help: try: `if args.i == true { mode = 2 }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/main.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | / match args.no_preserve_root { [INFO] [stdout] 51 | | true => mode = 5, [INFO] [stdout] 52 | | false => (), [INFO] [stdout] 53 | | } [INFO] [stdout] | |_____^ help: try: `if args.no_preserve_root == true { mode = 5 }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `count` is used as a loop counter [INFO] [stdout] --> src/main.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | for i in args.file.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (count, i) in args.file.clone().into_iter().enumerate()` [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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:109:41 [INFO] [stdout] | [INFO] [stdout] 109 | fn user_prompt(path: PathBuf, filename: &String, mode: u8, len: usize, is_dir: bool) -> bool { [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] 109 - fn user_prompt(path: PathBuf, filename: &String, mode: u8, len: usize, is_dir: bool) -> bool { [INFO] [stdout] 109 + fn user_prompt(path: PathBuf, filename: &str, mode: u8, len: usize, is_dir: bool) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: some ranges overlap [INFO] [stdout] --> src/main.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | 1 => file.to_string(), [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] note: overlaps with this [INFO] [stdout] --> src/main.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | 1..100 => format!("{} files", len).to_string(), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_overlapping_arm [INFO] [stdout] = note: `#[warn(clippy::match_overlapping_arm)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:245:57 [INFO] [stdout] | [INFO] [stdout] 245 | if filename == ("/") && (mode == 0 || mode == 3) && !(mode == 5) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(mode != 5)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:326:5 [INFO] [stdout] | [INFO] [stdout] 326 | return mode; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 326 - return mode; [INFO] [stdout] 326 + mode [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/main.rs:224:5 [INFO] [stdout] | [INFO] [stdout] 224 | / let _exists = match exists(filename.clone()) { [INFO] [stdout] 225 | | Ok(false) => { [INFO] [stdout] 226 | | eprintln!( [INFO] [stdout] 227 | | "[Error] {}/{filename} is either missing, or does not exist.", [INFO] [stdout] ... | [INFO] [stdout] 238 | | Ok(true) => (), [INFO] [stdout] 239 | | }; [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 224 - let _exists = match exists(filename.clone()) { [INFO] [stdout] 224 + match exists(filename.clone()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `continue_after_root` is never read [INFO] [stdout] --> src/main.rs:19:41 [INFO] [stdout] | [INFO] [stdout] 19 | let mut continue_after_root: bool = false; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/main.rs:278:60 [INFO] [stdout] | [INFO] [stdout] 278 | if is_dir && !(mode == 3 || mode == 4 || mode == 6) && recursive == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `!recursive` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/main.rs:302:13 [INFO] [stdout] | [INFO] [stdout] 302 | / if user_prompt(path, &filename, mode, file_count, is_dir) { [INFO] [stdout] 303 | | if is_dir { [INFO] [stdout] 304 | | remove(filename, 1); [INFO] [stdout] 305 | | } else { [INFO] [stdout] ... | [INFO] [stdout] 308 | | } [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] 300 ~ 2 [INFO] [stdout] 301 | // always check before removing files [INFO] [stdout] 302 ~ if user_prompt(path, &filename, mode, file_count, is_dir) => { [INFO] [stdout] 303 | if is_dir { [INFO] [stdout] ... [INFO] [stdout] 307 | } [INFO] [stdout] 308 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::usize; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `usize::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/main.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | / match args.force { [INFO] [stdout] 24 | | true => mode = 0, [INFO] [stdout] 25 | | false => (), [INFO] [stdout] 26 | | } [INFO] [stdout] | |_____^ help: try: `if args.force == true { mode = 0 }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/main.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | / match args.x { [INFO] [stdout] 29 | | true => mode = 1, [INFO] [stdout] 30 | | false => (), [INFO] [stdout] 31 | | } [INFO] [stdout] | |_____^ help: try: `if args.x == true { mode = 1 }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/main.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / match args.i { [INFO] [stdout] 34 | | true => mode = 2, [INFO] [stdout] 35 | | false => (), [INFO] [stdout] 36 | | } [INFO] [stdout] | |_____^ help: try: `if args.i == true { mode = 2 }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/main.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | / match args.no_preserve_root { [INFO] [stdout] 51 | | true => mode = 5, [INFO] [stdout] 52 | | false => (), [INFO] [stdout] 53 | | } [INFO] [stdout] | |_____^ help: try: `if args.no_preserve_root == true { mode = 5 }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `count` is used as a loop counter [INFO] [stdout] --> src/main.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | for i in args.file.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (count, i) in args.file.clone().into_iter().enumerate()` [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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:109:41 [INFO] [stdout] | [INFO] [stdout] 109 | fn user_prompt(path: PathBuf, filename: &String, mode: u8, len: usize, is_dir: bool) -> bool { [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] 109 - fn user_prompt(path: PathBuf, filename: &String, mode: u8, len: usize, is_dir: bool) -> bool { [INFO] [stdout] 109 + fn user_prompt(path: PathBuf, filename: &str, mode: u8, len: usize, is_dir: bool) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: some ranges overlap [INFO] [stdout] --> src/main.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | 1 => file.to_string(), [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] note: overlaps with this [INFO] [stdout] --> src/main.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | 1..100 => format!("{} files", len).to_string(), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_overlapping_arm [INFO] [stdout] = note: `#[warn(clippy::match_overlapping_arm)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:245:57 [INFO] [stdout] | [INFO] [stdout] 245 | if filename == ("/") && (mode == 0 || mode == 3) && !(mode == 5) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(mode != 5)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:326:5 [INFO] [stdout] | [INFO] [stdout] 326 | return mode; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 326 - return mode; [INFO] [stdout] 326 + mode [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/main.rs:224:5 [INFO] [stdout] | [INFO] [stdout] 224 | / let _exists = match exists(filename.clone()) { [INFO] [stdout] 225 | | Ok(false) => { [INFO] [stdout] 226 | | eprintln!( [INFO] [stdout] 227 | | "[Error] {}/{filename} is either missing, or does not exist.", [INFO] [stdout] ... | [INFO] [stdout] 238 | | Ok(true) => (), [INFO] [stdout] 239 | | }; [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 224 - let _exists = match exists(filename.clone()) { [INFO] [stdout] 224 + match exists(filename.clone()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/main.rs:278:60 [INFO] [stdout] | [INFO] [stdout] 278 | if is_dir && !(mode == 3 || mode == 4 || mode == 6) && recursive == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `!recursive` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/main.rs:302:13 [INFO] [stdout] | [INFO] [stdout] 302 | / if user_prompt(path, &filename, mode, file_count, is_dir) { [INFO] [stdout] 303 | | if is_dir { [INFO] [stdout] 304 | | remove(filename, 1); [INFO] [stdout] 305 | | } else { [INFO] [stdout] ... | [INFO] [stdout] 308 | | } [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] 300 ~ 2 [INFO] [stdout] 301 | // always check before removing files [INFO] [stdout] 302 ~ if user_prompt(path, &filename, mode, file_count, is_dir) => { [INFO] [stdout] 303 | if is_dir { [INFO] [stdout] ... [INFO] [stdout] 307 | } [INFO] [stdout] 308 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.37s [INFO] running `Command { std: "docker" "inspect" "480cd44e5be56b5afc1fee6782db44e1309c700885c28c4c6e1480ef1e8b29e1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "480cd44e5be56b5afc1fee6782db44e1309c700885c28c4c6e1480ef1e8b29e1", kill_on_drop: false }` [INFO] [stdout] 480cd44e5be56b5afc1fee6782db44e1309c700885c28c4c6e1480ef1e8b29e1