[INFO] cloning repository https://github.com/Freilichtbuehne/ir-toolkit [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Freilichtbuehne/ir-toolkit" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFreilichtbuehne%2Fir-toolkit", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFreilichtbuehne%2Fir-toolkit'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fcf127441acd09c8001fb2a44dfd79d447996ff0 [INFO] linting Freilichtbuehne/ir-toolkit against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFreilichtbuehne%2Fir-toolkit" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-6-tc1/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/Freilichtbuehne/ir-toolkit [INFO] finished tweaking git repo https://github.com/Freilichtbuehne/ir-toolkit [INFO] tweaked toml for git repo https://github.com/Freilichtbuehne/ir-toolkit written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Freilichtbuehne/ir-toolkit 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/Freilichtbuehne/ir-toolkit 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] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded derive_arbitrary v1.3.2 [INFO] [stderr] Downloaded chrono-tz-build v0.3.0 [INFO] [stderr] Downloaded sanitize-filename v0.5.0 [INFO] [stderr] Downloaded cc v1.0.101 [INFO] [stderr] Downloaded ntest_timeout v0.9.3 [INFO] [stderr] Downloaded ntest v0.9.3 [INFO] [stderr] Downloaded ntp v0.5.0 [INFO] [stderr] Downloaded ntest_test_cases v0.9.3 [INFO] [stderr] Downloaded colored v1.9.4 [INFO] [stderr] Downloaded windows-interface v0.56.0 [INFO] [stderr] Downloaded windows-implement v0.56.0 [INFO] [stderr] Downloaded byte-unit v5.1.4 [INFO] [stderr] Downloaded yara v0.28.0 [INFO] [stderr] Downloaded clap v4.5.7 [INFO] [stderr] Downloaded parse-zoneinfo v0.3.1 [INFO] [stderr] Downloaded zip v2.1.6 [INFO] [stderr] Downloaded windows-core v0.56.0 [INFO] [stderr] Downloaded clap_builder v4.5.7 [INFO] [stderr] Downloaded process-wrap v8.0.2 [INFO] [stderr] Downloaded bindgen v0.68.1 [INFO] [stderr] Downloaded fern v0.6.2 [INFO] [stderr] Downloaded chrono-tz v0.9.0 [INFO] [stderr] Downloaded tokio v1.38.1 [INFO] [stderr] Downloaded yara-sys v0.28.0 [INFO] [stderr] Downloaded openssl-src v300.3.1+3.3.1 [INFO] [stderr] Downloaded windows v0.56.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] d9466ea27d1974ae26e18e2df2f6f45b6f8a6874c5b4b0b05b52873d4ef2e048 [INFO] running `Command { std: "docker" "start" "-a" "d9466ea27d1974ae26e18e2df2f6f45b6f8a6874c5b4b0b05b52873d4ef2e048", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d9466ea27d1974ae26e18e2df2f6f45b6f8a6874c5b4b0b05b52873d4ef2e048", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d9466ea27d1974ae26e18e2df2f6f45b6f8a6874c5b4b0b05b52873d4ef2e048", kill_on_drop: false }` [INFO] [stdout] d9466ea27d1974ae26e18e2df2f6f45b6f8a6874c5b4b0b05b52873d4ef2e048 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] f1d9d94c52302e75849ab39748a621a266ae336d3975a24eef2ef1b2a1ed2d05 [INFO] running `Command { std: "docker" "start" "-a" "f1d9d94c52302e75849ab39748a621a266ae336d3975a24eef2ef1b2a1ed2d05", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Checking log v0.4.21 [INFO] [stderr] Compiling openssl v0.10.64 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking glob v0.3.1 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling serde v1.0.203 [INFO] [stderr] Checking whoami v1.5.1 [INFO] [stderr] Checking indexmap v2.2.6 [INFO] [stderr] Compiling rust_decimal v1.35.0 [INFO] [stderr] Checking sanitize-filename v0.5.0 [INFO] [stderr] Compiling siphasher v0.3.11 [INFO] [stderr] Checking arrayvec v0.7.4 [INFO] [stderr] Checking unsafe-libyaml v0.2.11 [INFO] [stderr] Checking utf8-width v0.1.7 [INFO] [stderr] Checking generic-array v0.14.7 [INFO] [stderr] Compiling syn v2.0.68 [INFO] [stderr] Compiling portable-atomic v1.6.0 [INFO] [stderr] Compiling phf_shared v0.11.2 [INFO] [stderr] Checking unicode-width v0.1.13 [INFO] [stderr] Compiling serde_json v1.0.118 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling thiserror v1.0.61 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Checking phf v0.11.2 [INFO] [stderr] Compiling phf_generator v0.11.2 [INFO] [stderr] Compiling libloading v0.8.4 [INFO] [stderr] Compiling phf_codegen v0.11.2 [INFO] [stderr] Compiling error-chain v0.12.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking inout v0.1.3 [INFO] [stderr] Checking crc-catalog v2.4.0 [INFO] [stderr] Compiling bindgen v0.68.1 [INFO] [stderr] Checking miniz_oxide v0.7.4 [INFO] [stderr] Checking bumpalo v3.16.0 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Compiling bitflags v2.6.0 [INFO] [stderr] Checking chrono v0.4.38 [INFO] [stderr] Checking crc v3.2.1 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking futures-sink v0.3.30 [INFO] [stderr] Checking custom_derive v0.1.7 [INFO] [stderr] Checking simd-adler32 v0.3.7 [INFO] [stderr] Compiling clang-sys v1.8.1 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Compiling zip v2.1.6 [INFO] [stderr] Compiling jobserver v0.1.31 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking lockfree-object-pool v0.1.6 [INFO] [stderr] Checking futures-core v0.3.30 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking pbkdf2 v0.12.2 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Checking futures-channel v0.3.30 [INFO] [stderr] Checking flate2 v1.0.30 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking zopfli v0.8.1 [INFO] [stderr] Compiling cc v1.0.101 [INFO] [stderr] Checking lzma-rs v0.3.0 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking socket2 v0.5.7 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking byte-unit v5.1.4 [INFO] [stderr] Checking console v0.15.8 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking time v0.1.45 [INFO] [stderr] Checking conv v0.3.3 [INFO] [stderr] Checking parking_lot v0.12.2 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking indicatif v0.17.8 [INFO] [stderr] Checking log v0.3.9 [INFO] [stderr] Checking csv-core v0.1.11 [INFO] [stderr] Checking constant_time_eq v0.3.0 [INFO] [stderr] Checking futures-io v0.3.30 [INFO] [stderr] Checking deflate64 v0.1.9 [INFO] [stderr] Compiling fs_extra v1.3.0 [INFO] [stderr] Compiling nix v0.28.0 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking filetime v0.2.23 [INFO] [stderr] Checking is-terminal v0.4.12 [INFO] [stderr] Checking anstyle-parse v0.2.4 [INFO] [stderr] Checking is_terminal_polyfill v1.70.0 [INFO] [stderr] Checking anstyle v1.0.7 [INFO] [stderr] Checking colored v1.9.4 [INFO] [stderr] Checking anstyle-query v1.1.0 [INFO] [stderr] Checking colorchoice v1.0.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking ntp v0.5.0 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Checking clap_lex v0.7.1 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking fern v0.6.2 [INFO] [stderr] Checking anstream v0.6.14 [INFO] [stderr] Compiling toml_datetime v0.6.6 [INFO] [stderr] Checking clap_builder v4.5.7 [INFO] [stderr] Compiling openssl-sys v0.9.102 [INFO] [stderr] Compiling zstd-sys v2.0.11+zstd.1.5.6 [INFO] [stderr] Compiling bzip2-sys v0.1.11+1.0.8 [INFO] [stderr] Compiling toml_edit v0.21.1 [INFO] [stderr] Compiling cexpr v0.6.0 [INFO] [stderr] Checking bzip2 v0.4.4 [INFO] [stderr] Compiling regex v1.10.6 [INFO] [stderr] Checking clap v4.5.7 [INFO] [stderr] Compiling parse-zoneinfo v0.3.1 [INFO] [stderr] Compiling proc-macro-crate v3.1.0 [INFO] [stderr] Compiling chrono-tz-build v0.3.0 [INFO] [stderr] Compiling chrono-tz v0.9.0 [INFO] [stderr] Compiling tokio-macros v2.3.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling serde_derive v1.0.203 [INFO] [stderr] Compiling thiserror-impl v1.0.61 [INFO] [stderr] Compiling zeroize_derive v1.4.2 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Checking zeroize v1.8.1 [INFO] [stderr] Compiling zstd-safe v7.1.0 [INFO] [stderr] Checking tokio v1.38.1 [INFO] [stderr] Compiling ntest_test_cases v0.9.3 [INFO] [stderr] Compiling ntest_timeout v0.9.3 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Checking ntest v0.9.3 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking zstd v0.13.1 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking utils v0.1.0 (/opt/rustwide/workdir/src/utils) [INFO] [stderr] Checking process-wrap v8.0.2 [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/utils/src/misc.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | options.case_sensitive = case_sensitive; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `glob::MatchOptions { case_sensitive: case_sensitive, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/utils/src/misc.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | let mut options = MatchOptions::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] [stderr] Compiling yara-sys v0.28.0 [INFO] [stdout] warning: use of `write!(stdout(), ...).unwrap()` [INFO] [stdout] --> src/utils/src/misc.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | write!(std::io::stdout(), "{}", message).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `print!("{}", message)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] = note: `#[warn(clippy::explicit_write)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking privileges v0.1.0 (/opt/rustwide/workdir/src/privileges) [INFO] [stdout] warning: use of `write!(stdout(), ...).unwrap()` [INFO] [stdout] --> src/utils/src/misc.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | write!(std::io::stdout(), "{}", message).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `print!("{}", message)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Cleanup` [INFO] [stdout] --> src/utils/src/tests.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / pub fn new() -> Cleanup { [INFO] [stdout] 14 | | Cleanup { paths: Vec::new() } [INFO] [stdout] 15 | | } [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 Cleanup { [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: this import is redundant [INFO] [stdout] --> src/privileges/src/lib.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | use libc; [INFO] [stdout] | ^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/privileges/src/lib.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | use libc; [INFO] [stdout] | ^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` 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/utils/src/misc.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | options.case_sensitive = case_sensitive; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `glob::MatchOptions { case_sensitive: case_sensitive, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/utils/src/misc.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | let mut options = MatchOptions::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: use of `write!(stdout(), ...).unwrap()` [INFO] [stdout] --> src/utils/src/misc.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | write!(std::io::stdout(), "{}", message).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `print!("{}", message)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] = note: `#[warn(clippy::explicit_write)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `write!(stdout(), ...).unwrap()` [INFO] [stdout] --> src/utils/src/misc.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | write!(std::io::stdout(), "{}", message).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `print!("{}", message)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking system v0.1.0 (/opt/rustwide/workdir/src/system) [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Cleanup` [INFO] [stdout] --> src/utils/src/tests.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / pub fn new() -> Cleanup { [INFO] [stdout] 14 | | Cleanup { paths: Vec::new() } [INFO] [stdout] 15 | | } [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 Cleanup { [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: this import is redundant [INFO] [stdout] --> src/system/src/lib.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | use dirs; [INFO] [stdout] | ^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/system/src/lib.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | use whoami; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/system/src/lib.rs:33:13 [INFO] [stdout] | [INFO] [stdout] 33 | base_path: base_path, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `base_path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/system/src/lib.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | custom_files_directory: custom_files_directory, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `custom_files_directory` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/system/src/lib.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | use dirs; [INFO] [stdout] | ^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/system/src/lib.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | use whoami; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/system/src/lib.rs:33:13 [INFO] [stdout] | [INFO] [stdout] 33 | base_path: base_path, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `base_path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/system/src/lib.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | custom_files_directory: custom_files_directory, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `custom_files_directory` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `SystemVariables` [INFO] [stdout] --> src/system/src/lib.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | / pub fn new() -> Self { [INFO] [stdout] 25 | | let base_path = get_base_path(); [INFO] [stdout] 26 | | let custom_files_directory = base_path.join(CUSTOM_FILES_DIR); [INFO] [stdout] ... | [INFO] [stdout] 40 | | } [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] 23 + impl Default for SystemVariables { [INFO] [stdout] 24 + fn default() -> Self { [INFO] [stdout] 25 + Self::new() [INFO] [stdout] 26 + } [INFO] [stdout] 27 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `SystemVariables` [INFO] [stdout] --> src/system/src/lib.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | / pub fn new() -> Self { [INFO] [stdout] 25 | | let base_path = get_base_path(); [INFO] [stdout] 26 | | let custom_files_directory = base_path.join(CUSTOM_FILES_DIR); [INFO] [stdout] ... | [INFO] [stdout] 40 | | } [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] 23 + impl Default for SystemVariables { [INFO] [stdout] 24 + fn default() -> Self { [INFO] [stdout] 25 + Self::new() [INFO] [stdout] 26 + } [INFO] [stdout] 27 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/system/src/lib.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | write!(f, "System Variables:\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 78 - write!(f, "System Variables:\n")?; [INFO] [stdout] 78 + writeln!(f, "System Variables:")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/system/src/lib.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | write!(f, "{}: {}\n", key, value)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 80 - write!(f, "{}: {}\n", key, value)?; [INFO] [stdout] 80 + writeln!(f, "{}: {}", key, value)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/system/src/lib.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | return parent_dir; [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] 121 - return parent_dir; [INFO] [stdout] 121 + parent_dir [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/system/src/lib.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | return parent_dir; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 132 - return parent_dir; [INFO] [stdout] 132 + parent_dir [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/system/src/lib.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | return parent_dir; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 145 - return parent_dir; [INFO] [stdout] 145 + parent_dir [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/system/src/lib.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | return parent_dir; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 156 - return parent_dir; [INFO] [stdout] 156 + parent_dir [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/system/src/lib.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | write!(f, "System Variables:\n")?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 78 - write!(f, "System Variables:\n")?; [INFO] [stdout] 78 + writeln!(f, "System Variables:")?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/system/src/lib.rs:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | write!(f, "{}: {}\n", key, value)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 80 - write!(f, "{}: {}\n", key, value)?; [INFO] [stdout] 80 + writeln!(f, "{}: {}", key, value)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/system/src/lib.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | return parent_dir; [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] 121 - return parent_dir; [INFO] [stdout] 121 + parent_dir [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/system/src/lib.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | return parent_dir; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 132 - return parent_dir; [INFO] [stdout] 132 + parent_dir [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/system/src/lib.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | return parent_dir; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 145 - return parent_dir; [INFO] [stdout] 145 + parent_dir [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/system/src/lib.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | return parent_dir; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 156 - return parent_dir; [INFO] [stdout] 156 + parent_dir [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking report v0.1.0 (/opt/rustwide/workdir/src/report) [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/report/src/lib.rs:79:9 [INFO] [stdout] | [INFO] [stdout] 79 | / return Ok(Report { [INFO] [stdout] 80 | | dir: report_dir, [INFO] [stdout] 81 | | loot_dir, [INFO] [stdout] 82 | | action_log_dir, [INFO] [stdout] ... | [INFO] [stdout] 86 | | archive_enabled, [INFO] [stdout] 87 | | }); [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] 79 ~ Ok(Report { [INFO] [stdout] 80 + dir: report_dir, [INFO] [stdout] 81 + loot_dir, [INFO] [stdout] 82 + action_log_dir, [INFO] [stdout] 83 + zip_path, [INFO] [stdout] 84 + metadata_path, [INFO] [stdout] 85 + encryption_path, [INFO] [stdout] 86 + archive_enabled, [INFO] [stdout] 87 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/report/src/lib.rs:118:30 [INFO] [stdout] | [INFO] [stdout] 118 | match fs::remove_dir(&dir) { [INFO] [stdout] | ^^^^ help: change this to: `dir` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/report/src/lib.rs:137:29 [INFO] [stdout] | [INFO] [stdout] 137 | remove_dir_if_empty(&loot_dir); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `loot_dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/report/src/lib.rs:141:29 [INFO] [stdout] | [INFO] [stdout] 141 | remove_dir_if_empty(&action_log_dir); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `action_log_dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/report/src/lib.rs:152:43 [INFO] [stdout] | [INFO] [stdout] 152 | fn create_test_system_variables(name: &String, cleanup: &mut Cleanup) -> SystemVariables { [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] 152 - fn create_test_system_variables(name: &String, cleanup: &mut Cleanup) -> SystemVariables { [INFO] [stdout] 152 + fn create_test_system_variables(name: &str, cleanup: &mut Cleanup) -> SystemVariables { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/report/src/lib.rs:79:9 [INFO] [stdout] | [INFO] [stdout] 79 | / return Ok(Report { [INFO] [stdout] 80 | | dir: report_dir, [INFO] [stdout] 81 | | loot_dir, [INFO] [stdout] 82 | | action_log_dir, [INFO] [stdout] ... | [INFO] [stdout] 86 | | archive_enabled, [INFO] [stdout] 87 | | }); [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] 79 ~ Ok(Report { [INFO] [stdout] 80 + dir: report_dir, [INFO] [stdout] 81 + loot_dir, [INFO] [stdout] 82 + action_log_dir, [INFO] [stdout] 83 + zip_path, [INFO] [stdout] 84 + metadata_path, [INFO] [stdout] 85 + encryption_path, [INFO] [stdout] 86 + archive_enabled, [INFO] [stdout] 87 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/report/src/lib.rs:118:30 [INFO] [stdout] | [INFO] [stdout] 118 | match fs::remove_dir(&dir) { [INFO] [stdout] | ^^^^ help: change this to: `dir` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/report/src/lib.rs:137:29 [INFO] [stdout] | [INFO] [stdout] 137 | remove_dir_if_empty(&loot_dir); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `loot_dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/report/src/lib.rs:141:29 [INFO] [stdout] | [INFO] [stdout] 141 | remove_dir_if_empty(&action_log_dir); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `action_log_dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking csv v1.3.0 [INFO] [stderr] Checking config v0.1.0 (/opt/rustwide/workdir/src/config) [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/config/src/config.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | assert_eq!(config.time.ntp_enabled, true); [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] 41 - assert_eq!(config.time.ntp_enabled, true); [INFO] [stdout] 41 + assert!(config.time.ntp_enabled); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/config/src/config.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | assert_eq!(config.elevate, true); [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] 47 - assert_eq!(config.elevate, true); [INFO] [stdout] 47 + assert!(config.elevate); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/config/src/workflow.rs:250:1 [INFO] [stdout] | [INFO] [stdout] 250 | impl Into for ActionAttributes { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 250 ~ impl From for BinaryAttributes { [INFO] [stdout] 251 ~ fn from(val: ActionAttributes) -> Self { [INFO] [stdout] 252 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/config/src/workflow.rs:258:1 [INFO] [stdout] | [INFO] [stdout] 258 | impl Into for ActionAttributes { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 258 ~ impl From for CommandAttributes { [INFO] [stdout] 259 ~ fn from(val: ActionAttributes) -> Self { [INFO] [stdout] 260 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/config/src/workflow.rs:266:1 [INFO] [stdout] | [INFO] [stdout] 266 | impl Into for ActionAttributes { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 266 ~ impl From for StoreAttributes { [INFO] [stdout] 267 ~ fn from(val: ActionAttributes) -> Self { [INFO] [stdout] 268 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/config/src/workflow.rs:274:1 [INFO] [stdout] | [INFO] [stdout] 274 | impl Into for ActionAttributes { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 274 ~ impl From for TerminalAttributes { [INFO] [stdout] 275 ~ fn from(val: ActionAttributes) -> Self { [INFO] [stdout] 276 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/config/src/workflow.rs:282:1 [INFO] [stdout] | [INFO] [stdout] 282 | impl Into for ActionAttributes { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 282 ~ impl From for YaraAttributes { [INFO] [stdout] 283 ~ fn from(val: ActionAttributes) -> Self { [INFO] [stdout] 284 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/config/src/workflow.rs:306:1 [INFO] [stdout] | [INFO] [stdout] 306 | / impl Default for Reporting { [INFO] [stdout] 307 | | fn default() -> Self { [INFO] [stdout] 308 | | Self { [INFO] [stdout] 309 | | zip_archive: ReportingZipArchive::default(), [INFO] [stdout] ... | [INFO] [stdout] 313 | | } [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] 302 + #[derive(Default)] [INFO] [stdout] 303 | pub struct Reporting { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/config/src/workflow.rs:250:1 [INFO] [stdout] | [INFO] [stdout] 250 | impl Into for ActionAttributes { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 250 ~ impl From for BinaryAttributes { [INFO] [stdout] 251 ~ fn from(val: ActionAttributes) -> Self { [INFO] [stdout] 252 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/config/src/workflow.rs:258:1 [INFO] [stdout] | [INFO] [stdout] 258 | impl Into for ActionAttributes { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 258 ~ impl From for CommandAttributes { [INFO] [stdout] 259 ~ fn from(val: ActionAttributes) -> Self { [INFO] [stdout] 260 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/config/src/workflow.rs:266:1 [INFO] [stdout] | [INFO] [stdout] 266 | impl Into for ActionAttributes { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 266 ~ impl From for StoreAttributes { [INFO] [stdout] 267 ~ fn from(val: ActionAttributes) -> Self { [INFO] [stdout] 268 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/config/src/workflow.rs:274:1 [INFO] [stdout] | [INFO] [stdout] 274 | impl Into for ActionAttributes { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 274 ~ impl From for TerminalAttributes { [INFO] [stdout] 275 ~ fn from(val: ActionAttributes) -> Self { [INFO] [stdout] 276 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/config/src/workflow.rs:282:1 [INFO] [stdout] | [INFO] [stdout] 282 | impl Into for ActionAttributes { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 282 ~ impl From for YaraAttributes { [INFO] [stdout] 283 ~ fn from(val: ActionAttributes) -> Self { [INFO] [stdout] 284 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> src/config/src/workflow.rs:418:32 [INFO] [stdout] | [INFO] [stdout] 418 | let bytes = Byte::from_u64(value.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/config/src/workflow.rs:422:1 [INFO] [stdout] | [INFO] [stdout] 422 | / impl Default for ReportingCompression { [INFO] [stdout] 423 | | fn default() -> Self { [INFO] [stdout] 424 | | Self { [INFO] [stdout] 425 | | enabled: false, [INFO] [stdout] ... | [INFO] [stdout] 429 | | } [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] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 398 + #[derive(Default)] [INFO] [stdout] 399 | pub struct ReportingCompression { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/config/src/workflow.rs:437:1 [INFO] [stdout] | [INFO] [stdout] 437 | / impl Default for ReportingMetadata { [INFO] [stdout] 438 | | fn default() -> Self { [INFO] [stdout] 439 | | Self { [INFO] [stdout] 440 | | mac_times: false, [INFO] [stdout] ... | [INFO] [stdout] 445 | | } [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] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 432 + #[derive(Default)] [INFO] [stdout] 433 | pub struct ReportingMetadata { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/config/src/workflow.rs:306:1 [INFO] [stdout] | [INFO] [stdout] 306 | / impl Default for Reporting { [INFO] [stdout] 307 | | fn default() -> Self { [INFO] [stdout] 308 | | Self { [INFO] [stdout] 309 | | zip_archive: ReportingZipArchive::default(), [INFO] [stdout] ... | [INFO] [stdout] 313 | | } [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] 302 + #[derive(Default)] [INFO] [stdout] 303 | pub struct Reporting { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/config/src/workflow.rs:508:43 [INFO] [stdout] | [INFO] [stdout] 508 | if let Some(goto_value) = map.get(&Value::String("goto".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("goto".to_string())` [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: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> src/config/src/workflow.rs:418:32 [INFO] [stdout] | [INFO] [stdout] 418 | let bytes = Byte::from_u64(value.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*value` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/config/src/workflow.rs:422:1 [INFO] [stdout] | [INFO] [stdout] 422 | / impl Default for ReportingCompression { [INFO] [stdout] 423 | | fn default() -> Self { [INFO] [stdout] 424 | | Self { [INFO] [stdout] 425 | | enabled: false, [INFO] [stdout] ... | [INFO] [stdout] 429 | | } [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] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 398 + #[derive(Default)] [INFO] [stdout] 399 | pub struct ReportingCompression { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/config/src/workflow.rs:668:33 [INFO] [stdout] | [INFO] [stdout] 668 | / ... if !ba.log_to_file { [INFO] [stdout] 669 | | ... conflicts.push(format!("Action {:?} is set to run in parallel, but log_to_file is disabled. Setting log_to_file to true... [INFO] [stdout] 670 | | ... ba.log_to_file = true; [INFO] [stdout] 671 | | ... } [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] 667 ~ ActionAttributes::Binary(ref mut ba) [INFO] [stdout] 668 ~ if !ba.log_to_file => { [INFO] [stdout] 669 | conflicts.push(format!("Action {:?} is set to run in parallel, but log_to_file is disabled. Setting log_to_file to true...", action.name)); [INFO] [stdout] 670 | ba.log_to_file = true; [INFO] [stdout] 671 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/config/src/workflow.rs:674:33 [INFO] [stdout] | [INFO] [stdout] 674 | / ... if !ca.log_to_file { [INFO] [stdout] 675 | | ... conflicts.push(format!("Action {:?} is set to run in parallel and log_to_file is disabled. Setting log_to_file to true.... [INFO] [stdout] 676 | | ... ca.log_to_file = true; [INFO] [stdout] 677 | | ... } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 673 ~ ActionAttributes::Command(ref mut ca) [INFO] [stdout] 674 ~ if !ca.log_to_file => { [INFO] [stdout] 675 | conflicts.push(format!("Action {:?} is set to run in parallel and log_to_file is disabled. Setting log_to_file to true...", action.name)); [INFO] [stdout] 676 | ca.log_to_file = true; [INFO] [stdout] 677 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/config/src/workflow.rs:680:33 [INFO] [stdout] | [INFO] [stdout] 680 | / ... if !ta.separate_window { [INFO] [stdout] 681 | | ... conflicts.push(format!("Action {:?} is set to run in parallel but uses integrated terminal at the same time. Setting pa... [INFO] [stdout] 682 | | ... item.parallel = false; [INFO] [stdout] 683 | | ... } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 679 ~ ActionAttributes::Terminal(ref mut ta) [INFO] [stdout] 680 ~ if !ta.separate_window => { [INFO] [stdout] 681 | conflicts.push(format!("Action {:?} is set to run in parallel but uses integrated terminal at the same time. Setting parallel to false...", action.name)); [INFO] [stdout] 682 | item.parallel = false; [INFO] [stdout] 683 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/config/src/workflow.rs:437:1 [INFO] [stdout] | [INFO] [stdout] 437 | / impl Default for ReportingMetadata { [INFO] [stdout] 438 | | fn default() -> Self { [INFO] [stdout] 439 | | Self { [INFO] [stdout] 440 | | mac_times: false, [INFO] [stdout] ... | [INFO] [stdout] 445 | | } [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] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 432 + #[derive(Default)] [INFO] [stdout] 433 | pub struct ReportingMetadata { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/config/src/workflow.rs:508:43 [INFO] [stdout] | [INFO] [stdout] 508 | if let Some(goto_value) = map.get(&Value::String("goto".to_string())) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Value::String("goto".to_string())` [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` can be collapsed into the outer `match` [INFO] [stdout] --> src/config/src/workflow.rs:668:33 [INFO] [stdout] | [INFO] [stdout] 668 | / ... if !ba.log_to_file { [INFO] [stdout] 669 | | ... conflicts.push(format!("Action {:?} is set to run in parallel, but log_to_file is disabled. Setting log_to_file to true... [INFO] [stdout] 670 | | ... ba.log_to_file = true; [INFO] [stdout] 671 | | ... } [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] 667 ~ ActionAttributes::Binary(ref mut ba) [INFO] [stdout] 668 ~ if !ba.log_to_file => { [INFO] [stdout] 669 | conflicts.push(format!("Action {:?} is set to run in parallel, but log_to_file is disabled. Setting log_to_file to true...", action.name)); [INFO] [stdout] 670 | ba.log_to_file = true; [INFO] [stdout] 671 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/config/src/workflow.rs:674:33 [INFO] [stdout] | [INFO] [stdout] 674 | / ... if !ca.log_to_file { [INFO] [stdout] 675 | | ... conflicts.push(format!("Action {:?} is set to run in parallel and log_to_file is disabled. Setting log_to_file to true.... [INFO] [stdout] 676 | | ... ca.log_to_file = true; [INFO] [stdout] 677 | | ... } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 673 ~ ActionAttributes::Command(ref mut ca) [INFO] [stdout] 674 ~ if !ca.log_to_file => { [INFO] [stdout] 675 | conflicts.push(format!("Action {:?} is set to run in parallel and log_to_file is disabled. Setting log_to_file to true...", action.name)); [INFO] [stdout] 676 | ca.log_to_file = true; [INFO] [stdout] 677 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/config/src/workflow.rs:680:33 [INFO] [stdout] | [INFO] [stdout] 680 | / ... if !ta.separate_window { [INFO] [stdout] 681 | | ... conflicts.push(format!("Action {:?} is set to run in parallel but uses integrated terminal at the same time. Setting pa... [INFO] [stdout] 682 | | ... item.parallel = false; [INFO] [stdout] 683 | | ... } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 679 ~ ActionAttributes::Terminal(ref mut ta) [INFO] [stdout] 680 ~ if !ta.separate_window => { [INFO] [stdout] 681 | conflicts.push(format!("Action {:?} is set to run in parallel but uses integrated terminal at the same time. Setting parallel to false...", action.name)); [INFO] [stdout] 682 | item.parallel = false; [INFO] [stdout] 683 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking crypto v0.1.0 (/opt/rustwide/workdir/src/crypto) [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/config/src/workflow.rs:789:9 [INFO] [stdout] | [INFO] [stdout] 789 | assert_eq!(lc.enabled.unwrap(), true); [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] 789 - assert_eq!(lc.enabled.unwrap(), true); [INFO] [stdout] 789 + assert!(lc.enabled.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking time v0.1.0 (/opt/rustwide/workdir/src/time) [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/config/src/workflow.rs:791:9 [INFO] [stdout] | [INFO] [stdout] 791 | assert_eq!(lc.is_elevated.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] 791 - assert_eq!(lc.is_elevated.unwrap(), false); [INFO] [stdout] 791 + assert!(!lc.is_elevated.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/time/src/lib.rs:57:17 [INFO] [stdout] | [INFO] [stdout] 57 | frac = frac % 1_000_000_000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `frac %= 1_000_000_000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking logging v0.1.0 (/opt/rustwide/workdir/src/logging) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/crypto/src/crypto_tests.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | algorithm: algorithm, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `algorithm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/crypto/src/crypto_tests.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | algorithm: algorithm, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `algorithm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/time/src/lib.rs:57:17 [INFO] [stdout] | [INFO] [stdout] 57 | frac = frac % 1_000_000_000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `frac %= 1_000_000_000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/crypto/src/lib.rs:137:51 [INFO] [stdout] | [INFO] [stdout] 137 | let mut private_key_file = match File::create(&private_key_path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `private_key_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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/crypto/src/lib.rs:204:6 [INFO] [stdout] | [INFO] [stdout] 204 | ) -> Result<(Vec, Vec, Vec), Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/crypto/src/lib.rs:137:51 [INFO] [stdout] | [INFO] [stdout] 137 | let mut private_key_file = match File::create(&private_key_path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `private_key_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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/crypto/src/lib.rs:204:6 [INFO] [stdout] | [INFO] [stdout] 204 | ) -> Result<(Vec, Vec, Vec), Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking storage v0.1.0 (/opt/rustwide/workdir/src/storage) [INFO] [stderr] Checking keygen v0.1.0 (/opt/rustwide/workdir/src/keygen) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/storage/src/lib.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | csv_writer: csv_writer, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `csv_writer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/storage/src/lib.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | report: report, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `report` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/storage/src/lib.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | comment: comment, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `comment` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/storage/src/lib.rs:454:13 [INFO] [stdout] | [INFO] [stdout] 454 | algorithm: algorithm, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `algorithm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/storage/src/lib.rs:455:13 [INFO] [stdout] | [INFO] [stdout] 455 | encrypted_key: encrypted_key, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `encrypted_key` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/storage/src/lib.rs:456:13 [INFO] [stdout] | [INFO] [stdout] 456 | iv: iv, [INFO] [stdout] | ^^^^^^ help: replace it with: `iv` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/storage/src/lib.rs:457:13 [INFO] [stdout] | [INFO] [stdout] 457 | tag: tag, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `tag` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/storage/src/lib.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | csv_writer: csv_writer, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `csv_writer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/storage/src/lib.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | report: report, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `report` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/storage/src/lib.rs:146:13 [INFO] [stdout] | [INFO] [stdout] 146 | comment: comment, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `comment` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/storage/src/lib.rs:454:13 [INFO] [stdout] | [INFO] [stdout] 454 | algorithm: algorithm, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `algorithm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/storage/src/lib.rs:455:13 [INFO] [stdout] | [INFO] [stdout] 455 | encrypted_key: encrypted_key, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `encrypted_key` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/storage/src/lib.rs:456:13 [INFO] [stdout] | [INFO] [stdout] 456 | iv: iv, [INFO] [stdout] | ^^^^^^ help: replace it with: `iv` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/storage/src/lib.rs:457:13 [INFO] [stdout] | [INFO] [stdout] 457 | tag: tag, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `tag` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/keygen/src/main.rs:59:21 [INFO] [stdout] | [INFO] [stdout] 59 | let size: u32 = matches.get_one::("size").unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*matches.get_one::("size").unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage/src/lib.rs:144:47 [INFO] [stdout] | [INFO] [stdout] 144 | path_checksum: file_name_checksum(&abs_file_path.to_str().unwrap()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `abs_file_path.to_str().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/storage/src/lib.rs:241:28 [INFO] [stdout] | [INFO] [stdout] 241 | match fs::copy(&file_path, &loot_file_path) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage/src/lib.rs:418:40 [INFO] [stdout] | [INFO] [stdout] 418 | match self.add_file_to_zip(&file, zip_file_name.to_str().unwrap().to_string()) { [INFO] [stdout] | ^^^^^ help: change this to: `file` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Algorithm` which implements the `Copy` trait [INFO] [stdout] --> src/storage/src/lib.rs:446:74 [INFO] [stdout] | [INFO] [stdout] 446 | encrypt_evidence(&self.report.zip_path, pub_key.clone(), algorithm.clone())? [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `algorithm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/keygen/src/main.rs:59:21 [INFO] [stdout] | [INFO] [stdout] 59 | let size: u32 = matches.get_one::("size").unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*matches.get_one::("size").unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage/src/lib.rs:144:47 [INFO] [stdout] | [INFO] [stdout] 144 | path_checksum: file_name_checksum(&abs_file_path.to_str().unwrap()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `abs_file_path.to_str().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/storage/src/lib.rs:241:28 [INFO] [stdout] | [INFO] [stdout] 241 | match fs::copy(&file_path, &loot_file_path) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/storage/src/lib.rs:418:40 [INFO] [stdout] | [INFO] [stdout] 418 | match self.add_file_to_zip(&file, zip_file_name.to_str().unwrap().to_string()) { [INFO] [stdout] | ^^^^^ help: change this to: `file` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Algorithm` which implements the `Copy` trait [INFO] [stdout] --> src/storage/src/lib.rs:446:74 [INFO] [stdout] | [INFO] [stdout] 446 | encrypt_evidence(&self.report.zip_path, pub_key.clone(), algorithm.clone())? [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `algorithm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking unpacker v0.1.0 (/opt/rustwide/workdir/src/unpacker) [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/unpacker/src/main.rs:237:19 [INFO] [stdout] | [INFO] [stdout] 237 | .join(&file_name_checksum); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `file_name_checksum` [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: unneeded `return` statement [INFO] [stdout] --> src/unpacker/src/main.rs:273:17 [INFO] [stdout] | [INFO] [stdout] 273 | return Ok(false); [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] 273 - return Ok(false); [INFO] [stdout] 273 + Ok(false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/unpacker/src/main.rs:276:17 [INFO] [stdout] | [INFO] [stdout] 276 | return Ok(true); [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 276 - return Ok(true); [INFO] [stdout] 276 + Ok(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/unpacker/src/main.rs:285:13 [INFO] [stdout] | [INFO] [stdout] 285 | / return Err(format!( [INFO] [stdout] 286 | | "Failed to calculate checksum for file {:?}: {}", [INFO] [stdout] 287 | | file_path.display(), [INFO] [stdout] 288 | | e [INFO] [stdout] 289 | | )); [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 285 ~ Err(format!( [INFO] [stdout] 286 + "Failed to calculate checksum for file {:?}: {}", [INFO] [stdout] 287 + file_path.display(), [INFO] [stdout] 288 + e [INFO] [stdout] 289 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/unpacker/src/main.rs:300:69 [INFO] [stdout] | [INFO] [stdout] 300 | let relative_path = file_path.strip_prefix("\\\\?\\").unwrap_or(&file_path); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this manual char comparison can be written more succinctly [INFO] [stdout] --> src/unpacker/src/main.rs:306:53 [INFO] [stdout] | [INFO] [stdout] 306 | let components: Vec<&str> = relative_path.split(|c| c == '\\' || c == '/').collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using an array of `char`: `['\\', '/']` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_pattern_char_comparison [INFO] [stdout] = note: `#[warn(clippy::manual_pattern_char_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/unpacker/src/main.rs:375:16 [INFO] [stdout] | [INFO] [stdout] 375 | fs::rename(&file_path, &new_path).map_err(|e| { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_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] [INFO] [stdout] [INFO] [stderr] Checking yara v0.28.0 [INFO] [stderr] Checking actions v0.1.0 (/opt/rustwide/workdir/src/actions) [INFO] [stdout] warning: called `unwrap` on `out_file` after checking its variant with `is_some` [INFO] [stdout] --> src/actions/src/binary.rs:54:28 [INFO] [stdout] | [INFO] [stdout] 53 | if out_file.is_some() && bin.log_to_file { [INFO] [stdout] | ------------------ the check is happening here [INFO] [stdout] 54 | let out_file = out_file.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/actions/src/binary.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | return action_result; [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] 120 - return action_result; [INFO] [stdout] 120 + action_result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/actions/src/binary.rs:111:9 [INFO] [stdout] | [INFO] [stdout] 111 | action_result.execution_time = options.start_time.elapsed(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `ActionResult { execution_time: options.start_time.elapsed(), parallel: options.parallel, finished: true, success: output.success(), exit_code: output.code(), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/actions/src/binary.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 110 | let mut action_result = ActionResult::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: called `unwrap` on `out_file` after checking its variant with `is_some` [INFO] [stdout] --> src/actions/src/binary.rs:54:28 [INFO] [stdout] | [INFO] [stdout] 53 | if out_file.is_some() && bin.log_to_file { [INFO] [stdout] | ------------------ the check is happening here [INFO] [stdout] 54 | let out_file = out_file.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/actions/src/binary.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | return action_result; [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] 120 - return action_result; [INFO] [stdout] 120 + action_result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/actions/src/binary.rs:111:9 [INFO] [stdout] | [INFO] [stdout] 111 | action_result.execution_time = options.start_time.elapsed(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `ActionResult { execution_time: options.start_time.elapsed(), parallel: options.parallel, finished: true, success: output.success(), exit_code: output.code(), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/actions/src/binary.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 110 | let mut action_result = ActionResult::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: called `unwrap` on `out_file` after checking its variant with `is_some` [INFO] [stdout] --> src/actions/src/command.rs:50:28 [INFO] [stdout] | [INFO] [stdout] 49 | if out_file.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = out_file` [INFO] [stdout] 50 | let out_file = out_file.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/actions/src/command.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | return action_result; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 118 - return action_result; [INFO] [stdout] 118 + action_result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/actions/src/command.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | action_result.execution_time = options.start_time.elapsed(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `ActionResult { execution_time: options.start_time.elapsed(), parallel: options.parallel, finished: true, success: output.success(), exit_code: output.code(), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/actions/src/command.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | let mut action_result = ActionResult::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/actions/src/binary.rs:208:9 [INFO] [stdout] | [INFO] [stdout] 208 | assert_eq!(result.success, 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] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 208 - assert_eq!(result.success, false); [INFO] [stdout] 208 + assert!(!result.success); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/binary.rs:211:9 [INFO] [stdout] | [INFO] [stdout] 211 | assert_eq!(result.error_message.is_none(), 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] 211 - assert_eq!(result.error_message.is_none(), false); [INFO] [stdout] 211 + assert!(!result.error_message.is_none()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_ne!` with a literal bool [INFO] [stdout] --> src/actions/src/command.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | assert_ne!(options.parallel && !command.log_to_file, true); [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] 63 - assert_ne!(options.parallel && !command.log_to_file, true); [INFO] [stdout] 63 + assert!(!(options.parallel && !command.log_to_file)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `out_file` after checking its variant with `is_some` [INFO] [stdout] --> src/actions/src/command.rs:50:28 [INFO] [stdout] | [INFO] [stdout] 49 | if out_file.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = out_file` [INFO] [stdout] 50 | let out_file = out_file.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/actions/src/command.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | return action_result; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 118 - return action_result; [INFO] [stdout] 118 + action_result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/actions/src/command.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | action_result.execution_time = options.start_time.elapsed(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `ActionResult { execution_time: options.start_time.elapsed(), parallel: options.parallel, finished: true, success: output.success(), exit_code: output.code(), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/actions/src/command.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | let mut action_result = ActionResult::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_ne!` with a literal bool [INFO] [stdout] --> src/actions/src/command.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | assert_ne!(options.parallel && !command.log_to_file, true); [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] 63 - assert_ne!(options.parallel && !command.log_to_file, true); [INFO] [stdout] 63 + assert!(!(options.parallel && !command.log_to_file)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/command.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | / assert_eq!( [INFO] [stdout] 153 | | result.success, true, [INFO] [stdout] 154 | | "Command failed: {:?}", [INFO] [stdout] 155 | | result.error_message [INFO] [stdout] 156 | | ); [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] 152 ~ assert!( [INFO] [stdout] 153 ~ result.success, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/command.rs:187:9 [INFO] [stdout] | [INFO] [stdout] 187 | / assert_eq!( [INFO] [stdout] 188 | | result.success, true, [INFO] [stdout] 189 | | "Command failed: {:?}", [INFO] [stdout] 190 | | result.error_message [INFO] [stdout] 191 | | ); [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] 187 ~ assert!( [INFO] [stdout] 188 ~ result.success, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/command.rs:194:9 [INFO] [stdout] | [INFO] [stdout] 194 | assert_eq!(out_file.exists(), true); [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] 194 - assert_eq!(out_file.exists(), true); [INFO] [stdout] 194 + assert!(out_file.exists()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/command.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | assert_eq!(content.contains("Hello"), true); [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] 198 - assert_eq!(content.contains("Hello"), true); [INFO] [stdout] 198 + assert!(content.contains("Hello")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/command.rs:222:9 [INFO] [stdout] | [INFO] [stdout] 222 | assert_eq!(result.success, 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] 222 - assert_eq!(result.success, false); [INFO] [stdout] 222 + assert!(!result.success); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/command.rs:224:9 [INFO] [stdout] | [INFO] [stdout] 224 | assert_eq!(result.error_message.is_some(), true); [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] 224 - assert_eq!(result.error_message.is_some(), true); [INFO] [stdout] 224 + assert!(result.error_message.is_some()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/command.rs:244:9 [INFO] [stdout] | [INFO] [stdout] 244 | assert_eq!(result.success, 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] 244 - assert_eq!(result.success, false); [INFO] [stdout] 244 + assert!(!result.success); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/actions/src/terminal.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | / return if cfg!(windows) { [INFO] [stdout] 193 | | // check if powershell is available [INFO] [stdout] 194 | | match std::process::Command::new("powershell").arg("-?").output() { [INFO] [stdout] 195 | | Ok(output) if output.status.success() => "powershell".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 214 | | "sh".to_string() [INFO] [stdout] 215 | | }; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 192 ~ if cfg!(windows) { [INFO] [stdout] 193 + // check if powershell is available [INFO] [stdout] 194 + match std::process::Command::new("powershell").arg("-?").output() { [INFO] [stdout] 195 + Ok(output) if output.status.success() => "powershell".to_string(), [INFO] [stdout] 196 + _ => "cmd".to_string(), [INFO] [stdout] 197 + } [INFO] [stdout] 198 + } else if cfg!(target_os = "macos") { [INFO] [stdout] 199 + // on macOS Catalina, the default shell is now zsh [INFO] [stdout] 200 + // on older versions, it's bash [INFO] [stdout] 201 + match std::env::var("SHELL") { [INFO] [stdout] 202 + Ok(shell) if shell.contains("zsh") => shell, [INFO] [stdout] 203 + Ok(shell) if shell.contains("bash") => shell, [INFO] [stdout] 204 + _ => "sh".to_string(), [INFO] [stdout] 205 + } [INFO] [stdout] 206 + } else if cfg!(unix) { [INFO] [stdout] 207 + // if on unix, check the SHELL environment variable [INFO] [stdout] 208 + match std::env::var("SHELL") { [INFO] [stdout] 209 + Ok(shell) => shell, [INFO] [stdout] 210 + Err(_) => "bash".to_string(), [INFO] [stdout] 211 + } [INFO] [stdout] 212 + } else { [INFO] [stdout] 213 + warn!("Unknown OS, defaulting to sh"); [INFO] [stdout] 214 + "sh".to_string() [INFO] [stdout] 215 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/actions/src/terminal.rs:186:29 [INFO] [stdout] | [INFO] [stdout] 186 | pub fn get_shell(shell: &String) -> String { [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] 186 ~ pub fn get_shell(shell: &str) -> String { [INFO] [stdout] 187 | // check if a shell is specified [INFO] [stdout] 188 | if !shell.is_empty() { [INFO] [stdout] 189 ~ return shell.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/command.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | assert_eq!(error_message.contains(invalid_cwd), true); [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] 248 - assert_eq!(error_message.contains(invalid_cwd), true); [INFO] [stdout] 248 + assert!(error_message.contains(invalid_cwd)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/command.rs:283:9 [INFO] [stdout] | [INFO] [stdout] 283 | assert_eq!(result.success, false, "Expected a timeout",); [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] 283 - assert_eq!(result.success, false, "Expected a timeout",); [INFO] [stdout] 283 + assert!(!result.success, "Expected a timeout",); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/store.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | assert_eq!(result.success, true); [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] 119 - assert_eq!(result.success, true); [INFO] [stdout] 119 + assert!(result.success); [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/actions/src/yara.rs:100:27 [INFO] [stdout] | [INFO] [stdout] 100 | custom_files_dir: &PathBuf, [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] help: change this to [INFO] [stdout] | [INFO] [stdout] 100 - custom_files_dir: &PathBuf, [INFO] [stdout] 100 + custom_files_dir: &Path, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/store.rs:136:13 [INFO] [stdout] | [INFO] [stdout] 136 | assert_eq!(found, true, "File {:?} not found in metadata", file); [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] 136 - assert_eq!(found, true, "File {:?} not found in metadata", file); [INFO] [stdout] 136 + assert!(found, "File {:?} not found in metadata", file); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/actions/src/yara.rs:215:33 [INFO] [stdout] | [INFO] [stdout] 207 | / ... let results = scan_files_with_rules( [INFO] [stdout] 208 | | ... &rules, [INFO] [stdout] 209 | | ... files_chunk, [INFO] [stdout] 210 | | ... scan.scan_timeout, [INFO] [stdout] ... | [INFO] [stdout] 213 | | ... &total_errors, [INFO] [stdout] 214 | | ... ); [INFO] [stdout] | |________________________- unnecessary `let` binding [INFO] [stdout] 215 | ... results [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 207 ~ [INFO] [stdout] 208 ~ scan_files_with_rules( [INFO] [stdout] 209 + &rules, [INFO] [stdout] 210 + files_chunk, [INFO] [stdout] 211 + scan.scan_timeout, [INFO] [stdout] 212 + &files_pb, [INFO] [stdout] 213 + &total_hits, [INFO] [stdout] 214 + &total_errors, [INFO] [stdout] 215 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/actions/src/terminal.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | / return if cfg!(windows) { [INFO] [stdout] 193 | | // check if powershell is available [INFO] [stdout] 194 | | match std::process::Command::new("powershell").arg("-?").output() { [INFO] [stdout] 195 | | Ok(output) if output.status.success() => "powershell".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 214 | | "sh".to_string() [INFO] [stdout] 215 | | }; [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 192 ~ if cfg!(windows) { [INFO] [stdout] 193 + // check if powershell is available [INFO] [stdout] 194 + match std::process::Command::new("powershell").arg("-?").output() { [INFO] [stdout] 195 + Ok(output) if output.status.success() => "powershell".to_string(), [INFO] [stdout] 196 + _ => "cmd".to_string(), [INFO] [stdout] 197 + } [INFO] [stdout] 198 + } else if cfg!(target_os = "macos") { [INFO] [stdout] 199 + // on macOS Catalina, the default shell is now zsh [INFO] [stdout] 200 + // on older versions, it's bash [INFO] [stdout] 201 + match std::env::var("SHELL") { [INFO] [stdout] 202 + Ok(shell) if shell.contains("zsh") => shell, [INFO] [stdout] 203 + Ok(shell) if shell.contains("bash") => shell, [INFO] [stdout] 204 + _ => "sh".to_string(), [INFO] [stdout] 205 + } [INFO] [stdout] 206 + } else if cfg!(unix) { [INFO] [stdout] 207 + // if on unix, check the SHELL environment variable [INFO] [stdout] 208 + match std::env::var("SHELL") { [INFO] [stdout] 209 + Ok(shell) => shell, [INFO] [stdout] 210 + Err(_) => "bash".to_string(), [INFO] [stdout] 211 + } [INFO] [stdout] 212 + } else { [INFO] [stdout] 213 + warn!("Unknown OS, defaulting to sh"); [INFO] [stdout] 214 + "sh".to_string() [INFO] [stdout] 215 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/actions/src/terminal.rs:186:29 [INFO] [stdout] | [INFO] [stdout] 186 | pub fn get_shell(shell: &String) -> String { [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] 186 ~ pub fn get_shell(shell: &str) -> String { [INFO] [stdout] 187 | // check if a shell is specified [INFO] [stdout] 188 | if !shell.is_empty() { [INFO] [stdout] 189 ~ return shell.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/terminal.rs:275:9 [INFO] [stdout] | [INFO] [stdout] 275 | assert_eq!(success, true); [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] 275 - assert_eq!(success, true); [INFO] [stdout] 275 + assert!(success); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/terminal.rs:288:9 [INFO] [stdout] | [INFO] [stdout] 288 | assert_eq!(shell.is_empty(), 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] 288 - assert_eq!(shell.is_empty(), false); [INFO] [stdout] 288 + assert!(!shell.is_empty()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/terminal.rs:307:9 [INFO] [stdout] | [INFO] [stdout] 307 | assert_eq!(output.status.success(), true); [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] 307 - assert_eq!(output.status.success(), true); [INFO] [stdout] 307 + assert!(output.status.success()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/terminal.rs:312:9 [INFO] [stdout] | [INFO] [stdout] 312 | assert_eq!(stdout.contains("hello world"), true); [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] 312 - assert_eq!(stdout.contains("hello world"), true); [INFO] [stdout] 312 + assert!(stdout.contains("hello world")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/terminal.rs:329:9 [INFO] [stdout] | [INFO] [stdout] 329 | assert_eq!(shell.is_empty(), 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] 329 - assert_eq!(shell.is_empty(), false); [INFO] [stdout] 329 + assert!(!shell.is_empty()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/terminal.rs:348:9 [INFO] [stdout] | [INFO] [stdout] 348 | assert_eq!(output.status.success(), true); [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] 348 - assert_eq!(output.status.success(), true); [INFO] [stdout] 348 + assert!(output.status.success()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/terminal.rs:351:9 [INFO] [stdout] | [INFO] [stdout] 351 | assert_eq!(file_path.exists(), true); [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!(file_path.exists(), true); [INFO] [stdout] 351 + assert!(file_path.exists()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/actions/src/terminal.rs:355:9 [INFO] [stdout] | [INFO] [stdout] 355 | assert_eq!(transcript.is_empty(), 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] 355 - assert_eq!(transcript.is_empty(), false); [INFO] [stdout] 355 + assert!(!transcript.is_empty()); [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/actions/src/yara.rs:100:27 [INFO] [stdout] | [INFO] [stdout] 100 | custom_files_dir: &PathBuf, [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] help: change this to [INFO] [stdout] | [INFO] [stdout] 100 - custom_files_dir: &PathBuf, [INFO] [stdout] 100 + custom_files_dir: &Path, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/actions/src/yara.rs:215:33 [INFO] [stdout] | [INFO] [stdout] 207 | / ... let results = scan_files_with_rules( [INFO] [stdout] 208 | | ... &rules, [INFO] [stdout] 209 | | ... files_chunk, [INFO] [stdout] 210 | | ... scan.scan_timeout, [INFO] [stdout] ... | [INFO] [stdout] 213 | | ... &total_errors, [INFO] [stdout] 214 | | ... ); [INFO] [stdout] | |________________________- unnecessary `let` binding [INFO] [stdout] 215 | ... results [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 207 ~ [INFO] [stdout] 208 ~ scan_files_with_rules( [INFO] [stdout] 209 + &rules, [INFO] [stdout] 210 + files_chunk, [INFO] [stdout] 211 + scan.scan_timeout, [INFO] [stdout] 212 + &files_pb, [INFO] [stdout] 213 + &total_hits, [INFO] [stdout] 214 + &total_errors, [INFO] [stdout] 215 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking workflow v0.1.0 (/opt/rustwide/workdir/src/workflow) [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/actions/src/store.rs:104:21 [INFO] [stdout] | [INFO] [stdout] 104 | for file in vec!["test.txt", "test2.txt", "test.csv", "test2.csv"] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["test.txt", "test2.txt", "test.csv", "test2.csv"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/actions/src/store.rs:130:21 [INFO] [stdout] | [INFO] [stdout] 130 | for file in vec!["test.txt", "test2.txt"] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["test.txt", "test2.txt"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/workflow/src/handler.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | system_variables: system_variables, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `system_variables` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/workflow/src/handler.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | system_variables: system_variables, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `system_variables` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/workflow/src/runner.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | runner: runner, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `runner` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/workflow/src/runner.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | runner: runner, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `runner` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the function `check_launch_conditions` doesn't need a mutable reference [INFO] [stdout] --> src/workflow/src/handler.rs:45:17 [INFO] [stdout] | [INFO] [stdout] 45 | &mut self.system_variables, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 45 - &mut self.system_variables, [INFO] [stdout] 45 + &self.system_variables, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/workflow/src/handler.rs:99:20 [INFO] [stdout] | [INFO] [stdout] 99 | if let Err(_) = workflow.run(&report, &self.system_variables, &mut fp) { [INFO] [stdout] | -------^^^^^^--------------------------------------------------------- help: try: `if workflow.run(&report, &self.system_variables, &mut fp).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: unneeded `return` statement [INFO] [stdout] --> src/workflow/src/handler.rs:125:17 [INFO] [stdout] | [INFO] [stdout] 125 | return Vec::new(); [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] 125 - return Vec::new(); [INFO] [stdout] 125 + Vec::new() [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/workflow/src/handler.rs:111:42 [INFO] [stdout] | [INFO] [stdout] 111 | pub fn get_workflow_files(base_path: &PathBuf) -> Vec { [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] 111 - pub fn get_workflow_files(base_path: &PathBuf) -> Vec { [INFO] [stdout] 111 + pub fn get_workflow_files(base_path: &Path) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/workflow/src/launch_conditions.rs:52:17 [INFO] [stdout] | [INFO] [stdout] 52 | let checks: Vec<(&str, Box bool>)> = vec![ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/workflow/src/launch_conditions.rs:56:25 [INFO] [stdout] | [INFO] [stdout] 56 | Box::new(|| condition.enabled.map_or(true, |enabled| enabled)), [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_none_or` instead [INFO] [stdout] | [INFO] [stdout] 56 - Box::new(|| condition.enabled.map_or(true, |enabled| enabled)), [INFO] [stdout] 56 + Box::new(|| condition.enabled.is_none_or(|enabled| enabled)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/workflow/src/launch_conditions.rs:61:17 [INFO] [stdout] | [INFO] [stdout] 61 | / condition [INFO] [stdout] 62 | | .arch [INFO] [stdout] 63 | | .as_ref() [INFO] [stdout] 64 | | .map_or(true, |arch| arch.contains(&variables.arch)) [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] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 64 - .map_or(true, |arch| arch.contains(&variables.arch)) [INFO] [stdout] 64 + .is_none_or(|arch| arch.contains(&variables.arch)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/workflow/src/launch_conditions.rs:70:17 [INFO] [stdout] | [INFO] [stdout] 70 | / condition.is_elevated.map_or(true, |is_elevated| { [INFO] [stdout] 71 | | !is_elevated || (is_elevated && variables.is_elevated) [INFO] [stdout] 72 | | }) [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] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 70 - condition.is_elevated.map_or(true, |is_elevated| { [INFO] [stdout] 70 + condition.is_elevated.is_none_or(|is_elevated| { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/workflow/src/launch_conditions.rs:71:21 [INFO] [stdout] | [INFO] [stdout] 71 | !is_elevated || (is_elevated && variables.is_elevated) [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] 71 - !is_elevated || (is_elevated && variables.is_elevated) [INFO] [stdout] 71 + !(is_elevated && !variables.is_elevated) [INFO] [stdout] | [INFO] [stdout] 71 - !is_elevated || (is_elevated && variables.is_elevated) [INFO] [stdout] 71 + !is_elevated || variables.is_elevated [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/workflow/src/launch_conditions.rs:78:17 [INFO] [stdout] | [INFO] [stdout] 78 | / condition [INFO] [stdout] 79 | | .custom_command [INFO] [stdout] 80 | | .as_ref() [INFO] [stdout] 81 | | .map_or(true, |custom_command| { [INFO] [stdout] 82 | | check_custom_command(custom_command, variables) [INFO] [stdout] 83 | | }) [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] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 81 - .map_or(true, |custom_command| { [INFO] [stdout] 81 + .is_none_or(|custom_command| { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/workflow/src/runner.rs:42:26 [INFO] [stdout] | [INFO] [stdout] 42 | let mut futures: FuturesUnordered< [INFO] [stdout] | __________________________^ [INFO] [stdout] 43 | | Pin>>, [INFO] [stdout] 44 | | > = FuturesUnordered::new(); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the function `check_launch_conditions` doesn't need a mutable reference [INFO] [stdout] --> src/workflow/src/handler.rs:45:17 [INFO] [stdout] | [INFO] [stdout] 45 | &mut self.system_variables, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 45 - &mut self.system_variables, [INFO] [stdout] 45 + &self.system_variables, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/workflow/src/runner.rs:241:12 [INFO] [stdout] | [INFO] [stdout] 241 | if futures.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!futures.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/workflow/src/handler.rs:99:20 [INFO] [stdout] | [INFO] [stdout] 99 | if let Err(_) = workflow.run(&report, &self.system_variables, &mut fp) { [INFO] [stdout] | -------^^^^^^--------------------------------------------------------- help: try: `if workflow.run(&report, &self.system_variables, &mut fp).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: unneeded `return` statement [INFO] [stdout] --> src/workflow/src/handler.rs:125:17 [INFO] [stdout] | [INFO] [stdout] 125 | return Vec::new(); [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] 125 - return Vec::new(); [INFO] [stdout] 125 + Vec::new() [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/workflow/src/handler.rs:111:42 [INFO] [stdout] | [INFO] [stdout] 111 | pub fn get_workflow_files(base_path: &PathBuf) -> Vec { [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] 111 - pub fn get_workflow_files(base_path: &PathBuf) -> Vec { [INFO] [stdout] 111 + pub fn get_workflow_files(base_path: &Path) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/workflow/src/launch_conditions.rs:52:17 [INFO] [stdout] | [INFO] [stdout] 52 | let checks: Vec<(&str, Box bool>)> = vec![ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/workflow/src/launch_conditions.rs:56:25 [INFO] [stdout] | [INFO] [stdout] 56 | Box::new(|| condition.enabled.map_or(true, |enabled| enabled)), [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_none_or` instead [INFO] [stdout] | [INFO] [stdout] 56 - Box::new(|| condition.enabled.map_or(true, |enabled| enabled)), [INFO] [stdout] 56 + Box::new(|| condition.enabled.is_none_or(|enabled| enabled)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/workflow/src/launch_conditions.rs:61:17 [INFO] [stdout] | [INFO] [stdout] 61 | / condition [INFO] [stdout] 62 | | .arch [INFO] [stdout] 63 | | .as_ref() [INFO] [stdout] 64 | | .map_or(true, |arch| arch.contains(&variables.arch)) [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] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 64 - .map_or(true, |arch| arch.contains(&variables.arch)) [INFO] [stdout] 64 + .is_none_or(|arch| arch.contains(&variables.arch)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/workflow/src/launch_conditions.rs:70:17 [INFO] [stdout] | [INFO] [stdout] 70 | / condition.is_elevated.map_or(true, |is_elevated| { [INFO] [stdout] 71 | | !is_elevated || (is_elevated && variables.is_elevated) [INFO] [stdout] 72 | | }) [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] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 70 - condition.is_elevated.map_or(true, |is_elevated| { [INFO] [stdout] 70 + condition.is_elevated.is_none_or(|is_elevated| { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/workflow/src/launch_conditions.rs:71:21 [INFO] [stdout] | [INFO] [stdout] 71 | !is_elevated || (is_elevated && variables.is_elevated) [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] 71 - !is_elevated || (is_elevated && variables.is_elevated) [INFO] [stdout] 71 + !(is_elevated && !variables.is_elevated) [INFO] [stdout] | [INFO] [stdout] 71 - !is_elevated || (is_elevated && variables.is_elevated) [INFO] [stdout] 71 + !is_elevated || variables.is_elevated [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/workflow/src/launch_conditions.rs:78:17 [INFO] [stdout] | [INFO] [stdout] 78 | / condition [INFO] [stdout] 79 | | .custom_command [INFO] [stdout] 80 | | .as_ref() [INFO] [stdout] 81 | | .map_or(true, |custom_command| { [INFO] [stdout] 82 | | check_custom_command(custom_command, variables) [INFO] [stdout] 83 | | }) [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] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 81 - .map_or(true, |custom_command| { [INFO] [stdout] 81 + .is_none_or(|custom_command| { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/workflow/src/launch_conditions.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | assert_eq!(check_launch_conditions(&mut lc, &variables), true); [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] 151 - assert_eq!(check_launch_conditions(&mut lc, &variables), true); [INFO] [stdout] 151 + assert!(check_launch_conditions(&mut lc, &variables)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/workflow/src/launch_conditions.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | assert_eq!(lc.enabled.unwrap(), true); [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] 159 - assert_eq!(lc.enabled.unwrap(), true); [INFO] [stdout] 159 + assert!(lc.enabled.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/workflow/src/launch_conditions.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | assert_eq!(lc.is_elevated.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] 161 - assert_eq!(lc.is_elevated.unwrap(), false); [INFO] [stdout] 161 + assert!(!lc.is_elevated.unwrap()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/workflow/src/runner.rs:42:26 [INFO] [stdout] | [INFO] [stdout] 42 | let mut futures: FuturesUnordered< [INFO] [stdout] | __________________________^ [INFO] [stdout] 43 | | Pin>>, [INFO] [stdout] 44 | | > = FuturesUnordered::new(); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/workflow/src/runner.rs:241:12 [INFO] [stdout] | [INFO] [stdout] 241 | if futures.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!futures.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking collector v0.1.0 (/opt/rustwide/workdir/src/collector) [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/unpacker/src/unpacker_tests.rs:22:24 [INFO] [stdout] | [INFO] [stdout] 22 | if let Err(_) = file.write_all(workflow.as_bytes()) { [INFO] [stdout] | -------^^^^^^-------------------------------------- help: try: `if file.write_all(workflow.as_bytes()).is_err()` [INFO] [stdout] | [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: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/unpacker/src/unpacker_tests.rs:80:16 [INFO] [stdout] | [INFO] [stdout] 80 | if let Err(_) = workflow.run(&report, &system_variables, &mut fp) { [INFO] [stdout] | -------^^^^^^---------------------------------------------------- help: try: `if workflow.run(&report, &system_variables, &mut fp).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] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/unpacker/src/unpacker_tests.rs:212:13 [INFO] [stdout] | [INFO] [stdout] 212 | / assert_eq!( [INFO] [stdout] 213 | | storage_location.exists(), [INFO] [stdout] 214 | | true, [INFO] [stdout] 215 | | "File {:?} not found in output directory", [INFO] [stdout] 216 | | storage_location.to_str().unwrap() [INFO] [stdout] 217 | | ); [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] 212 ~ assert!( [INFO] [stdout] 213 ~ storage_location.exists(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/unpacker/src/unpacker_tests.rs:219:13 [INFO] [stdout] | [INFO] [stdout] 219 | / assert_eq!( [INFO] [stdout] 220 | | matched_files [INFO] [stdout] 221 | | .iter() [INFO] [stdout] 222 | | .any(|f| f.ends_with(&storage_location.file_name().unwrap())), [INFO] [stdout] ... | [INFO] [stdout] 225 | | file.to_str().unwrap() [INFO] [stdout] 226 | | ); [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] 219 ~ assert!( [INFO] [stdout] 220 | matched_files [INFO] [stdout] 221 | .iter() [INFO] [stdout] 222 ~ .any(|f| f.ends_with(&storage_location.file_name().unwrap())), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/unpacker/src/unpacker_tests.rs:222:42 [INFO] [stdout] | [INFO] [stdout] 222 | .any(|f| f.ends_with(&storage_location.file_name().unwrap())), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `storage_location.file_name().unwrap()` [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: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/unpacker/src/unpacker_tests.rs:424:13 [INFO] [stdout] | [INFO] [stdout] 424 | / assert_eq!( [INFO] [stdout] 425 | | storage_location.exists(), [INFO] [stdout] 426 | | true, [INFO] [stdout] 427 | | "File {:?} not found in output directory", [INFO] [stdout] 428 | | storage_location.to_str().unwrap() [INFO] [stdout] 429 | | ); [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] 424 ~ assert!( [INFO] [stdout] 425 ~ storage_location.exists(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/unpacker/src/unpacker_tests.rs:431:13 [INFO] [stdout] | [INFO] [stdout] 431 | / assert_eq!( [INFO] [stdout] 432 | | matched_files [INFO] [stdout] 433 | | .iter() [INFO] [stdout] 434 | | .any(|f| f.ends_with(&storage_location.file_name().unwrap())), [INFO] [stdout] ... | [INFO] [stdout] 437 | | file.to_str().unwrap() [INFO] [stdout] 438 | | ); [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] 431 ~ assert!( [INFO] [stdout] 432 | matched_files [INFO] [stdout] 433 | .iter() [INFO] [stdout] 434 ~ .any(|f| f.ends_with(&storage_location.file_name().unwrap())), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/unpacker/src/unpacker_tests.rs:434:42 [INFO] [stdout] | [INFO] [stdout] 434 | .any(|f| f.ends_with(&storage_location.file_name().unwrap())), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `storage_location.file_name().unwrap()` [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] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/unpacker/src/unpacker_tests.rs:461:9 [INFO] [stdout] | [INFO] [stdout] 461 | assert_eq!(is_valid_zip_archive(&zip_path), true); [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!(is_valid_zip_archive(&zip_path), true); [INFO] [stdout] 461 + assert!(is_valid_zip_archive(&zip_path)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/unpacker/src/main.rs:237:19 [INFO] [stdout] | [INFO] [stdout] 237 | .join(&file_name_checksum); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `file_name_checksum` [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/unpacker/src/main.rs:273:17 [INFO] [stdout] | [INFO] [stdout] 273 | return Ok(false); [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] 273 - return Ok(false); [INFO] [stdout] 273 + Ok(false) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/unpacker/src/main.rs:276:17 [INFO] [stdout] | [INFO] [stdout] 276 | return Ok(true); [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 276 - return Ok(true); [INFO] [stdout] 276 + Ok(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/unpacker/src/main.rs:285:13 [INFO] [stdout] | [INFO] [stdout] 285 | / return Err(format!( [INFO] [stdout] 286 | | "Failed to calculate checksum for file {:?}: {}", [INFO] [stdout] 287 | | file_path.display(), [INFO] [stdout] 288 | | e [INFO] [stdout] 289 | | )); [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] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 285 ~ Err(format!( [INFO] [stdout] 286 + "Failed to calculate checksum for file {:?}: {}", [INFO] [stdout] 287 + file_path.display(), [INFO] [stdout] 288 + e [INFO] [stdout] 289 ~ )) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/unpacker/src/main.rs:300:69 [INFO] [stdout] | [INFO] [stdout] 300 | let relative_path = file_path.strip_prefix("\\\\?\\").unwrap_or(&file_path); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this manual char comparison can be written more succinctly [INFO] [stdout] --> src/unpacker/src/main.rs:306:53 [INFO] [stdout] | [INFO] [stdout] 306 | let components: Vec<&str> = relative_path.split(|c| c == '\\' || c == '/').collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using an array of `char`: `['\\', '/']` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_pattern_char_comparison [INFO] [stdout] = note: `#[warn(clippy::manual_pattern_char_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/unpacker/src/main.rs:375:16 [INFO] [stdout] | [INFO] [stdout] 375 | fs::rename(&file_path, &new_path).map_err(|e| { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_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] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 01s [INFO] running `Command { std: "docker" "inspect" "f1d9d94c52302e75849ab39748a621a266ae336d3975a24eef2ef1b2a1ed2d05", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f1d9d94c52302e75849ab39748a621a266ae336d3975a24eef2ef1b2a1ed2d05", kill_on_drop: false }` [INFO] [stdout] f1d9d94c52302e75849ab39748a621a266ae336d3975a24eef2ef1b2a1ed2d05