[INFO] cloning repository https://github.com/19h/cert-dump [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/19h/cert-dump" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F19h%2Fcert-dump", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F19h%2Fcert-dump'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0c4baea9a558fbbd428d77f365322501eb54ccc0 [INFO] linting 19h/cert-dump against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F19h%2Fcert-dump" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/19h/cert-dump [INFO] finished tweaking git repo https://github.com/19h/cert-dump [INFO] tweaked toml for git repo https://github.com/19h/cert-dump written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/19h/cert-dump 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/19h/cert-dump 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] Downloading crates ... [INFO] [stderr] Downloaded asn1-rs-impl v0.2.0 [INFO] [stderr] Downloaded deranged v0.5.5 [INFO] [stderr] Downloaded oid-registry v0.7.1 [INFO] [stderr] Downloaded clap_lex v0.7.6 [INFO] [stderr] Downloaded asn1-rs-derive v0.5.1 [INFO] [stderr] Downloaded clap_derive v4.5.49 [INFO] [stderr] Downloaded clap v4.5.50 [INFO] [stderr] Downloaded asn1-rs v0.6.2 [INFO] [stderr] Downloaded cc v1.2.43 [INFO] [stderr] Downloaded x509-parser v0.16.0 [INFO] [stderr] Downloaded hashlink v0.9.1 [INFO] [stderr] Downloaded unicode-ident v1.0.20 [INFO] [stderr] Downloaded der-parser v9.0.0 [INFO] [stderr] Downloaded clap_builder v4.5.50 [INFO] [stderr] Downloaded rusqlite v0.31.0 [INFO] [stderr] Downloaded libsqlite3-sys v0.28.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5e500b2a6eff5e83ee9c8db904a989714620643111a3451fbbc181d38c6efcba [INFO] running `Command { std: "docker" "start" "-a" "5e500b2a6eff5e83ee9c8db904a989714620643111a3451fbbc181d38c6efcba", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5e500b2a6eff5e83ee9c8db904a989714620643111a3451fbbc181d38c6efcba", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5e500b2a6eff5e83ee9c8db904a989714620643111a3451fbbc181d38c6efcba", kill_on_drop: false }` [INFO] [stdout] 5e500b2a6eff5e83ee9c8db904a989714620643111a3451fbbc181d38c6efcba [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6bae9aa1574979b6c471b4a5f39282401a0a28067134adb250554cd947606325 [INFO] running `Command { std: "docker" "start" "-a" "6bae9aa1574979b6c471b4a5f39282401a0a28067134adb250554cd947606325", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.103 [INFO] [stderr] Compiling quote v1.0.41 [INFO] [stderr] Compiling unicode-ident v1.0.20 [INFO] [stderr] Checking memchr v2.7.6 [INFO] [stderr] Checking minimal-lexical v0.2.1 [INFO] [stderr] Compiling time-core v0.1.6 [INFO] [stderr] Compiling zerocopy v0.8.27 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling generic-array v0.14.9 [INFO] [stderr] Checking deranged v0.5.5 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling find-msvc-tools v0.1.4 [INFO] [stderr] Checking once_cell v1.21.3 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling libc v0.2.177 [INFO] [stderr] Compiling time-macros v0.2.24 [INFO] [stderr] Checking anstyle v1.0.13 [INFO] [stderr] Compiling cc v1.2.43 [INFO] [stderr] Compiling oid-registry v0.7.1 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Checking is_terminal_polyfill v1.70.2 [INFO] [stderr] Checking clap_lex v0.7.6 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Checking fallible-iterator v0.3.0 [INFO] [stderr] Checking bitflags v2.10.0 [INFO] [stderr] Checking anstream v0.6.21 [INFO] [stderr] Checking fallible-streaming-iterator v0.1.9 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Checking data-encoding v2.9.0 [INFO] [stderr] Checking walkdir v2.5.0 [INFO] [stderr] Checking clap_builder v4.5.50 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Compiling syn v2.0.108 [INFO] [stderr] Checking crossbeam-channel v0.5.15 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking time v0.3.44 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking chrono v0.4.42 [INFO] [stderr] Compiling libsqlite3-sys v0.28.0 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking num_cpus v1.17.0 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking rusticata-macros v4.1.0 [INFO] [stderr] Checking hashlink v0.9.1 [INFO] [stderr] Checking serde_json v1.0.145 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling asn1-rs-impl v0.2.0 [INFO] [stderr] Compiling clap_derive v4.5.49 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling asn1-rs-derive v0.5.1 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking asn1-rs v0.6.2 [INFO] [stderr] Checking clap v4.5.50 [INFO] [stderr] Checking der-parser v9.0.0 [INFO] [stderr] Checking x509-parser v0.16.0 [INFO] [stderr] Checking rusqlite v0.31.0 [INFO] [stderr] Checking cert-dump v3.0.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `FirstSeen` [INFO] [stdout] --> src/json_output.rs:4:45 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::dirscan::{CertWithDuplicateInfo, FirstSeen}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FirstSeen` [INFO] [stdout] --> src/json_output.rs:4:45 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::dirscan::{CertWithDuplicateInfo, FirstSeen}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `extra_debug` is never read [INFO] [stdout] --> src/parser.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct ParsedCert { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub extra_debug: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ParsedCert` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `tlv_len` is never read [INFO] [stdout] --> src/scanner.rs:10:20 [INFO] [stdout] | [INFO] [stdout] 10 | DerCandidate { tlv_len: usize }, [INFO] [stdout] | ------------ ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `CertSource` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `mark_duplicates` is never read [INFO] [stdout] --> src/dirscan.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct ScanConfig { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 22 | pub mark_duplicates: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ScanConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `file_size` is never read [INFO] [stdout] --> src/dirscan.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct ScanResult { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 52 | pub path: PathBuf, [INFO] [stdout] 53 | pub file_size: u64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ScanResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/filter.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl CertFilter { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 27 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `sha256`, `subject`, and `serial` are never read [INFO] [stdout] --> src/tree.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct CertNode { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 8 | pub index: u64, [INFO] [stdout] 9 | pub sha256: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 10 | pub subject: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 11 | pub issuer: String, [INFO] [stdout] 12 | pub serial: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CertNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `is_self_signed` is never read [INFO] [stdout] --> src/tree.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 110 | pub struct TreeRoot { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 111 | pub root_index: u64, [INFO] [stdout] 112 | pub is_self_signed: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TreeRoot` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/formatter.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / if let Some(files) = output_files { [INFO] [stdout] 76 | | if !files.is_empty() { [INFO] [stdout] 77 | | writeln!( [INFO] [stdout] 78 | | out, [INFO] [stdout] ... | [INFO] [stdout] 106 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 75 ~ if let Some(files) = output_files [INFO] [stdout] 76 ~ && !files.is_empty() { [INFO] [stdout] 77 | writeln!( [INFO] [stdout] ... [INFO] [stdout] 104 | } [INFO] [stdout] 105 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/parser.rs:119:5 [INFO] [stdout] | [INFO] [stdout] 119 | / Ok(DateTime::from_timestamp(unix_ts, 0) [INFO] [stdout] 120 | | .context("Invalid timestamp")?) [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 119 ~ DateTime::from_timestamp(unix_ts, 0) [INFO] [stdout] 120 ~ .context("Invalid timestamp") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/parser.rs:268:5 [INFO] [stdout] | [INFO] [stdout] 268 | / if let Ok((_, seq)) = der_parser::parse_der(data) { [INFO] [stdout] 269 | | if let der_parser::der::DerObjectContent::Sequence(ref items) = seq.content { [INFO] [stdout] 270 | | if let Some(first) = items.first() { [INFO] [stdout] 271 | | if let der_parser::der::DerObjectContent::Integer(n_bytes) = &first.content { [INFO] [stdout] ... | [INFO] [stdout] 287 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 268 ~ if let Ok((_, seq)) = der_parser::parse_der(data) [INFO] [stdout] 269 ~ && let der_parser::der::DerObjectContent::Sequence(ref items) = seq.content { [INFO] [stdout] 270 | if let Some(first) = items.first() { [INFO] [stdout] ... [INFO] [stdout] 285 | } [INFO] [stdout] 286 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/parser.rs:269:9 [INFO] [stdout] | [INFO] [stdout] 269 | / if let der_parser::der::DerObjectContent::Sequence(ref items) = seq.content { [INFO] [stdout] 270 | | if let Some(first) = items.first() { [INFO] [stdout] 271 | | if let der_parser::der::DerObjectContent::Integer(n_bytes) = &first.content { [INFO] [stdout] ... | [INFO] [stdout] 286 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 269 ~ if let der_parser::der::DerObjectContent::Sequence(ref items) = seq.content [INFO] [stdout] 270 ~ && let Some(first) = items.first() { [INFO] [stdout] 271 | if let der_parser::der::DerObjectContent::Integer(n_bytes) = &first.content { [INFO] [stdout] ... [INFO] [stdout] 284 | } [INFO] [stdout] 285 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/parser.rs:270:13 [INFO] [stdout] | [INFO] [stdout] 270 | / if let Some(first) = items.first() { [INFO] [stdout] 271 | | if let der_parser::der::DerObjectContent::Integer(n_bytes) = &first.content { [INFO] [stdout] 272 | | // Count bits in modulus [INFO] [stdout] 273 | | let bit_len = n_bytes.len() * 8; [INFO] [stdout] ... | [INFO] [stdout] 285 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 270 ~ if let Some(first) = items.first() [INFO] [stdout] 271 ~ && let der_parser::der::DerObjectContent::Integer(n_bytes) = &first.content { [INFO] [stdout] 272 | // Count bits in modulus [INFO] [stdout] ... [INFO] [stdout] 283 | return Some(actual_bits as u32); [INFO] [stdout] 284 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `skip_while(

).next()` on an `Iterator` [INFO] [stdout] --> src/parser.rs:276:41 [INFO] [stdout] | [INFO] [stdout] 276 | let first_nonzero = n_bytes.iter().skip_while(|&&b| b == 0).next(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: this is more succinctly expressed by calling `.find(!

)` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#skip_while_next [INFO] [stdout] = note: `#[warn(clippy::skip_while_next)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> src/dirscan.rs:69:28 [INFO] [stdout] | [INFO] [stdout] 69 | fn serialize_path(path: &PathBuf, serializer: S) -> Result [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] 69 - fn serialize_path(path: &PathBuf, serializer: S) -> Result [INFO] [stdout] 69 + fn serialize_path(path: &Path, serializer: S) -> Result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `extra_debug` is never read [INFO] [stdout] --> src/parser.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct ParsedCert { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub extra_debug: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ParsedCert` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `tlv_len` is never read [INFO] [stdout] --> src/scanner.rs:10:20 [INFO] [stdout] | [INFO] [stdout] 10 | DerCandidate { tlv_len: usize }, [INFO] [stdout] | ------------ ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `CertSource` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `mark_duplicates` is never read [INFO] [stdout] --> src/dirscan.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct ScanConfig { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 22 | pub mark_duplicates: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ScanConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `file_size` is never read [INFO] [stdout] --> src/dirscan.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct ScanResult { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 52 | pub path: PathBuf, [INFO] [stdout] 53 | pub file_size: u64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ScanResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/filter.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl CertFilter { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 27 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `sha256`, `subject`, and `serial` are never read [INFO] [stdout] --> src/tree.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct CertNode { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 8 | pub index: u64, [INFO] [stdout] 9 | pub sha256: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 10 | pub subject: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 11 | pub issuer: String, [INFO] [stdout] 12 | pub serial: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CertNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `is_self_signed` is never read [INFO] [stdout] --> src/tree.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 110 | pub struct TreeRoot { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 111 | pub root_index: u64, [INFO] [stdout] 112 | pub is_self_signed: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TreeRoot` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/formatter.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / if let Some(files) = output_files { [INFO] [stdout] 76 | | if !files.is_empty() { [INFO] [stdout] 77 | | writeln!( [INFO] [stdout] 78 | | out, [INFO] [stdout] ... | [INFO] [stdout] 106 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 75 ~ if let Some(files) = output_files [INFO] [stdout] 76 ~ && !files.is_empty() { [INFO] [stdout] 77 | writeln!( [INFO] [stdout] ... [INFO] [stdout] 104 | } [INFO] [stdout] 105 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/dirscan.rs:336:25 [INFO] [stdout] | [INFO] [stdout] 336 | / if config.verbose { [INFO] [stdout] 337 | | if let Some(ref first) = cert_info.duplicate_of { [INFO] [stdout] 338 | | eprintln!( [INFO] [stdout] 339 | | "Skipping duplicate: SHA-256 {} (first seen in {} at offset 0x{:X})", [INFO] [stdout] ... | [INFO] [stdout] 345 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 336 ~ if config.verbose [INFO] [stdout] 337 ~ && let Some(ref first) = cert_info.duplicate_of { [INFO] [stdout] 338 | eprintln!( [INFO] [stdout] ... [INFO] [stdout] 343 | ); [INFO] [stdout] 344 ~ } [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/json_output.rs:52:28 [INFO] [stdout] | [INFO] [stdout] 52 | fn serialize_path(path: &PathBuf, serializer: S) -> Result [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] 52 - fn serialize_path(path: &PathBuf, serializer: S) -> Result [INFO] [stdout] 52 + fn serialize_path(path: &Path, serializer: S) -> Result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/parser.rs:119:5 [INFO] [stdout] | [INFO] [stdout] 119 | / Ok(DateTime::from_timestamp(unix_ts, 0) [INFO] [stdout] 120 | | .context("Invalid timestamp")?) [INFO] [stdout] | |_______________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 119 ~ DateTime::from_timestamp(unix_ts, 0) [INFO] [stdout] 120 ~ .context("Invalid timestamp") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/parser.rs:268:5 [INFO] [stdout] | [INFO] [stdout] 268 | / if let Ok((_, seq)) = der_parser::parse_der(data) { [INFO] [stdout] 269 | | if let der_parser::der::DerObjectContent::Sequence(ref items) = seq.content { [INFO] [stdout] 270 | | if let Some(first) = items.first() { [INFO] [stdout] 271 | | if let der_parser::der::DerObjectContent::Integer(n_bytes) = &first.content { [INFO] [stdout] ... | [INFO] [stdout] 287 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 268 ~ if let Ok((_, seq)) = der_parser::parse_der(data) [INFO] [stdout] 269 ~ && let der_parser::der::DerObjectContent::Sequence(ref items) = seq.content { [INFO] [stdout] 270 | if let Some(first) = items.first() { [INFO] [stdout] ... [INFO] [stdout] 285 | } [INFO] [stdout] 286 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/parser.rs:269:9 [INFO] [stdout] | [INFO] [stdout] 269 | / if let der_parser::der::DerObjectContent::Sequence(ref items) = seq.content { [INFO] [stdout] 270 | | if let Some(first) = items.first() { [INFO] [stdout] 271 | | if let der_parser::der::DerObjectContent::Integer(n_bytes) = &first.content { [INFO] [stdout] ... | [INFO] [stdout] 286 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 269 ~ if let der_parser::der::DerObjectContent::Sequence(ref items) = seq.content [INFO] [stdout] 270 ~ && let Some(first) = items.first() { [INFO] [stdout] 271 | if let der_parser::der::DerObjectContent::Integer(n_bytes) = &first.content { [INFO] [stdout] ... [INFO] [stdout] 284 | } [INFO] [stdout] 285 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/parser.rs:270:13 [INFO] [stdout] | [INFO] [stdout] 270 | / if let Some(first) = items.first() { [INFO] [stdout] 271 | | if let der_parser::der::DerObjectContent::Integer(n_bytes) = &first.content { [INFO] [stdout] 272 | | // Count bits in modulus [INFO] [stdout] 273 | | let bit_len = n_bytes.len() * 8; [INFO] [stdout] ... | [INFO] [stdout] 285 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 270 ~ if let Some(first) = items.first() [INFO] [stdout] 271 ~ && let der_parser::der::DerObjectContent::Integer(n_bytes) = &first.content { [INFO] [stdout] 272 | // Count bits in modulus [INFO] [stdout] ... [INFO] [stdout] 283 | return Some(actual_bits as u32); [INFO] [stdout] 284 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `skip_while(

).next()` on an `Iterator` [INFO] [stdout] --> src/parser.rs:276:41 [INFO] [stdout] | [INFO] [stdout] 276 | let first_nonzero = n_bytes.iter().skip_while(|&&b| b == 0).next(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: this is more succinctly expressed by calling `.find(!

)` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#skip_while_next [INFO] [stdout] = note: `#[warn(clippy::skip_while_next)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> src/dirscan.rs:69:28 [INFO] [stdout] | [INFO] [stdout] 69 | fn serialize_path(path: &PathBuf, serializer: S) -> Result [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] 69 - fn serialize_path(path: &PathBuf, serializer: S) -> Result [INFO] [stdout] 69 + fn serialize_path(path: &Path, serializer: S) -> Result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | / if !self.sha256.is_empty() { [INFO] [stdout] 61 | | if !self.sha256.iter().any(|filter| { [INFO] [stdout] 62 | | sha256.eq_ignore_ascii_case(filter) || sha256.contains(&filter.to_lowercase()) [INFO] [stdout] 63 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 66 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 60 ~ if !self.sha256.is_empty() [INFO] [stdout] 61 ~ && !self.sha256.iter().any(|filter| { [INFO] [stdout] 62 | sha256.eq_ignore_ascii_case(filter) || sha256.contains(&filter.to_lowercase()) [INFO] [stdout] 63 | }) { [INFO] [stdout] 64 | return false; [INFO] [stdout] 65 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | / if !self.organizations.is_empty() { [INFO] [stdout] 70 | | if !self.organizations.iter().any(|org| { [INFO] [stdout] 71 | | fuzzy_match(&cert.subject, org) || fuzzy_match(&cert.issuer, org) [INFO] [stdout] 72 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 75 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 69 ~ if !self.organizations.is_empty() [INFO] [stdout] 70 ~ && !self.organizations.iter().any(|org| { [INFO] [stdout] 71 | fuzzy_match(&cert.subject, org) || fuzzy_match(&cert.issuer, org) [INFO] [stdout] 72 | }) { [INFO] [stdout] 73 | return false; [INFO] [stdout] 74 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | / if !self.organizational_units.is_empty() { [INFO] [stdout] 79 | | if !self.organizational_units.iter().any(|ou| { [INFO] [stdout] 80 | | fuzzy_match(&cert.subject, ou) || fuzzy_match(&cert.issuer, ou) [INFO] [stdout] 81 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 84 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 78 ~ if !self.organizational_units.is_empty() [INFO] [stdout] 79 ~ && !self.organizational_units.iter().any(|ou| { [INFO] [stdout] 80 | fuzzy_match(&cert.subject, ou) || fuzzy_match(&cert.issuer, ou) [INFO] [stdout] 81 | }) { [INFO] [stdout] 82 | return false; [INFO] [stdout] 83 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 87 | / if !self.common_names.is_empty() { [INFO] [stdout] 88 | | if !self.common_names.iter().any(|cn| { [INFO] [stdout] 89 | | fuzzy_match(&cert.subject, cn) || fuzzy_match(&cert.issuer, cn) [INFO] [stdout] 90 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 93 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 87 ~ if !self.common_names.is_empty() [INFO] [stdout] 88 ~ && !self.common_names.iter().any(|cn| { [INFO] [stdout] 89 | fuzzy_match(&cert.subject, cn) || fuzzy_match(&cert.issuer, cn) [INFO] [stdout] 90 | }) { [INFO] [stdout] 91 | return false; [INFO] [stdout] 92 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | / if !self.countries.is_empty() { [INFO] [stdout] 97 | | if !self.countries.iter().any(|c| { [INFO] [stdout] 98 | | fuzzy_match(&cert.subject, c) || fuzzy_match(&cert.issuer, c) [INFO] [stdout] 99 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 102 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 96 ~ if !self.countries.is_empty() [INFO] [stdout] 97 ~ && !self.countries.iter().any(|c| { [INFO] [stdout] 98 | fuzzy_match(&cert.subject, c) || fuzzy_match(&cert.issuer, c) [INFO] [stdout] 99 | }) { [INFO] [stdout] 100 | return false; [INFO] [stdout] 101 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | / if !self.localities.is_empty() { [INFO] [stdout] 106 | | if !self.localities.iter().any(|l| { [INFO] [stdout] 107 | | fuzzy_match(&cert.subject, l) || fuzzy_match(&cert.issuer, l) [INFO] [stdout] 108 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 111 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 105 ~ if !self.localities.is_empty() [INFO] [stdout] 106 ~ && !self.localities.iter().any(|l| { [INFO] [stdout] 107 | fuzzy_match(&cert.subject, l) || fuzzy_match(&cert.issuer, l) [INFO] [stdout] 108 | }) { [INFO] [stdout] 109 | return false; [INFO] [stdout] 110 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | / if !self.states.is_empty() { [INFO] [stdout] 115 | | if !self.states.iter().any(|st| { [INFO] [stdout] 116 | | fuzzy_match(&cert.subject, st) || fuzzy_match(&cert.issuer, st) [INFO] [stdout] 117 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 120 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 114 ~ if !self.states.is_empty() [INFO] [stdout] 115 ~ && !self.states.iter().any(|st| { [INFO] [stdout] 116 | fuzzy_match(&cert.subject, st) || fuzzy_match(&cert.issuer, st) [INFO] [stdout] 117 | }) { [INFO] [stdout] 118 | return false; [INFO] [stdout] 119 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | / if !self.serials.is_empty() { [INFO] [stdout] 124 | | if !self.serials.iter().any(|serial| { [INFO] [stdout] 125 | | cert.serial_hex.to_lowercase().contains(&serial.to_lowercase()) [INFO] [stdout] 126 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 129 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 123 ~ if !self.serials.is_empty() [INFO] [stdout] 124 ~ && !self.serials.iter().any(|serial| { [INFO] [stdout] 125 | cert.serial_hex.to_lowercase().contains(&serial.to_lowercase()) [INFO] [stdout] 126 | }) { [INFO] [stdout] 127 | return false; [INFO] [stdout] 128 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | / if !self.subjects.is_empty() { [INFO] [stdout] 133 | | if !self.subjects.iter().any(|subj| { [INFO] [stdout] 134 | | fuzzy_match(&cert.subject, subj) [INFO] [stdout] 135 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 138 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 132 ~ if !self.subjects.is_empty() [INFO] [stdout] 133 ~ && !self.subjects.iter().any(|subj| { [INFO] [stdout] 134 | fuzzy_match(&cert.subject, subj) [INFO] [stdout] 135 | }) { [INFO] [stdout] 136 | return false; [INFO] [stdout] 137 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:141:9 [INFO] [stdout] | [INFO] [stdout] 141 | / if !self.issuers.is_empty() { [INFO] [stdout] 142 | | if !self.issuers.iter().any(|iss| { [INFO] [stdout] 143 | | fuzzy_match(&cert.issuer, iss) [INFO] [stdout] 144 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 147 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 141 ~ if !self.issuers.is_empty() [INFO] [stdout] 142 ~ && !self.issuers.iter().any(|iss| { [INFO] [stdout] 143 | fuzzy_match(&cert.issuer, iss) [INFO] [stdout] 144 | }) { [INFO] [stdout] 145 | return false; [INFO] [stdout] 146 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/dirscan.rs:336:25 [INFO] [stdout] | [INFO] [stdout] 336 | / if config.verbose { [INFO] [stdout] 337 | | if let Some(ref first) = cert_info.duplicate_of { [INFO] [stdout] 338 | | eprintln!( [INFO] [stdout] 339 | | "Skipping duplicate: SHA-256 {} (first seen in {} at offset 0x{:X})", [INFO] [stdout] ... | [INFO] [stdout] 345 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 336 ~ if config.verbose [INFO] [stdout] 337 ~ && let Some(ref first) = cert_info.duplicate_of { [INFO] [stdout] 338 | eprintln!( [INFO] [stdout] ... [INFO] [stdout] 343 | ); [INFO] [stdout] 344 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 150 | / if !self.key_algorithms.is_empty() { [INFO] [stdout] 151 | | if !self.key_algorithms.iter().any(|algo| { [INFO] [stdout] 152 | | matches_algorithm(&cert.pubkey_algo, algo) [INFO] [stdout] 153 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 156 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 150 ~ if !self.key_algorithms.is_empty() [INFO] [stdout] 151 ~ && !self.key_algorithms.iter().any(|algo| { [INFO] [stdout] 152 | matches_algorithm(&cert.pubkey_algo, algo) [INFO] [stdout] 153 | }) { [INFO] [stdout] 154 | return false; [INFO] [stdout] 155 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | / if !self.signature_algorithms.is_empty() { [INFO] [stdout] 160 | | if !self.signature_algorithms.iter().any(|algo| { [INFO] [stdout] 161 | | matches_algorithm(&cert.signature_algo, algo) [INFO] [stdout] 162 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 165 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 159 ~ if !self.signature_algorithms.is_empty() [INFO] [stdout] 160 ~ && !self.signature_algorithms.iter().any(|algo| { [INFO] [stdout] 161 | matches_algorithm(&cert.signature_algo, algo) [INFO] [stdout] 162 | }) { [INFO] [stdout] 163 | return false; [INFO] [stdout] 164 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | / if let Some(ref filter_date) = self.not_before { [INFO] [stdout] 191 | | if cert.not_before < *filter_date { [INFO] [stdout] 192 | | return false; [INFO] [stdout] 193 | | } [INFO] [stdout] 194 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 190 ~ if let Some(ref filter_date) = self.not_before [INFO] [stdout] 191 ~ && cert.not_before < *filter_date { [INFO] [stdout] 192 | return false; [INFO] [stdout] 193 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:197:9 [INFO] [stdout] | [INFO] [stdout] 197 | / if let Some(ref filter_date) = self.not_after { [INFO] [stdout] 198 | | if cert.not_after > *filter_date { [INFO] [stdout] 199 | | return false; [INFO] [stdout] 200 | | } [INFO] [stdout] 201 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 197 ~ if let Some(ref filter_date) = self.not_after [INFO] [stdout] 198 ~ && cert.not_after > *filter_date { [INFO] [stdout] 199 | return false; [INFO] [stdout] 200 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/tree.rs:44:18 [INFO] [stdout] | [INFO] [stdout] 44 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/tree.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | / if !node.is_self_signed { [INFO] [stdout] 75 | | if let Some(parent_indices) = subject_map.get(&node.issuer) { [INFO] [stdout] 76 | | for &parent_idx in parent_indices { [INFO] [stdout] 77 | | if parent_idx != index { [INFO] [stdout] ... | [INFO] [stdout] 87 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 74 ~ if !node.is_self_signed [INFO] [stdout] 75 ~ && let Some(parent_indices) = subject_map.get(&node.issuer) { [INFO] [stdout] 76 | for &parent_idx in parent_indices { [INFO] [stdout] ... [INFO] [stdout] 85 | } [INFO] [stdout] 86 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/tree.rs:78:25 [INFO] [stdout] | [INFO] [stdout] 78 | / if let Some(parent_node) = nodes.get_mut(&parent_idx) { [INFO] [stdout] 79 | | if !parent_node.children.contains(&index) { [INFO] [stdout] 80 | | parent_node.children.push(index); [INFO] [stdout] 81 | | } [INFO] [stdout] 82 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 78 ~ if let Some(parent_node) = nodes.get_mut(&parent_idx) [INFO] [stdout] 79 ~ && !parent_node.children.contains(&index) { [INFO] [stdout] 80 | parent_node.children.push(index); [INFO] [stdout] 81 ~ } [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/json_output.rs:52:28 [INFO] [stdout] | [INFO] [stdout] 52 | fn serialize_path(path: &PathBuf, serializer: S) -> Result [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] 52 - fn serialize_path(path: &PathBuf, serializer: S) -> Result [INFO] [stdout] 52 + fn serialize_path(path: &Path, serializer: S) -> Result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/tree.rs:179:30 [INFO] [stdout] | [INFO] [stdout] 179 | ... .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | / if !self.sha256.is_empty() { [INFO] [stdout] 61 | | if !self.sha256.iter().any(|filter| { [INFO] [stdout] 62 | | sha256.eq_ignore_ascii_case(filter) || sha256.contains(&filter.to_lowercase()) [INFO] [stdout] 63 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 66 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 60 ~ if !self.sha256.is_empty() [INFO] [stdout] 61 ~ && !self.sha256.iter().any(|filter| { [INFO] [stdout] 62 | sha256.eq_ignore_ascii_case(filter) || sha256.contains(&filter.to_lowercase()) [INFO] [stdout] 63 | }) { [INFO] [stdout] 64 | return false; [INFO] [stdout] 65 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | / if !self.organizations.is_empty() { [INFO] [stdout] 70 | | if !self.organizations.iter().any(|org| { [INFO] [stdout] 71 | | fuzzy_match(&cert.subject, org) || fuzzy_match(&cert.issuer, org) [INFO] [stdout] 72 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 75 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 69 ~ if !self.organizations.is_empty() [INFO] [stdout] 70 ~ && !self.organizations.iter().any(|org| { [INFO] [stdout] 71 | fuzzy_match(&cert.subject, org) || fuzzy_match(&cert.issuer, org) [INFO] [stdout] 72 | }) { [INFO] [stdout] 73 | return false; [INFO] [stdout] 74 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | / if !self.organizational_units.is_empty() { [INFO] [stdout] 79 | | if !self.organizational_units.iter().any(|ou| { [INFO] [stdout] 80 | | fuzzy_match(&cert.subject, ou) || fuzzy_match(&cert.issuer, ou) [INFO] [stdout] 81 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 84 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 78 ~ if !self.organizational_units.is_empty() [INFO] [stdout] 79 ~ && !self.organizational_units.iter().any(|ou| { [INFO] [stdout] 80 | fuzzy_match(&cert.subject, ou) || fuzzy_match(&cert.issuer, ou) [INFO] [stdout] 81 | }) { [INFO] [stdout] 82 | return false; [INFO] [stdout] 83 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 87 | / if !self.common_names.is_empty() { [INFO] [stdout] 88 | | if !self.common_names.iter().any(|cn| { [INFO] [stdout] 89 | | fuzzy_match(&cert.subject, cn) || fuzzy_match(&cert.issuer, cn) [INFO] [stdout] 90 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 93 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 87 ~ if !self.common_names.is_empty() [INFO] [stdout] 88 ~ && !self.common_names.iter().any(|cn| { [INFO] [stdout] 89 | fuzzy_match(&cert.subject, cn) || fuzzy_match(&cert.issuer, cn) [INFO] [stdout] 90 | }) { [INFO] [stdout] 91 | return false; [INFO] [stdout] 92 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | / if !self.countries.is_empty() { [INFO] [stdout] 97 | | if !self.countries.iter().any(|c| { [INFO] [stdout] 98 | | fuzzy_match(&cert.subject, c) || fuzzy_match(&cert.issuer, c) [INFO] [stdout] 99 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 102 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 96 ~ if !self.countries.is_empty() [INFO] [stdout] 97 ~ && !self.countries.iter().any(|c| { [INFO] [stdout] 98 | fuzzy_match(&cert.subject, c) || fuzzy_match(&cert.issuer, c) [INFO] [stdout] 99 | }) { [INFO] [stdout] 100 | return false; [INFO] [stdout] 101 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | / if !self.localities.is_empty() { [INFO] [stdout] 106 | | if !self.localities.iter().any(|l| { [INFO] [stdout] 107 | | fuzzy_match(&cert.subject, l) || fuzzy_match(&cert.issuer, l) [INFO] [stdout] 108 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 111 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 105 ~ if !self.localities.is_empty() [INFO] [stdout] 106 ~ && !self.localities.iter().any(|l| { [INFO] [stdout] 107 | fuzzy_match(&cert.subject, l) || fuzzy_match(&cert.issuer, l) [INFO] [stdout] 108 | }) { [INFO] [stdout] 109 | return false; [INFO] [stdout] 110 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | / if !self.states.is_empty() { [INFO] [stdout] 115 | | if !self.states.iter().any(|st| { [INFO] [stdout] 116 | | fuzzy_match(&cert.subject, st) || fuzzy_match(&cert.issuer, st) [INFO] [stdout] 117 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 120 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 114 ~ if !self.states.is_empty() [INFO] [stdout] 115 ~ && !self.states.iter().any(|st| { [INFO] [stdout] 116 | fuzzy_match(&cert.subject, st) || fuzzy_match(&cert.issuer, st) [INFO] [stdout] 117 | }) { [INFO] [stdout] 118 | return false; [INFO] [stdout] 119 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:123:9 [INFO] [stdout] | [INFO] [stdout] 123 | / if !self.serials.is_empty() { [INFO] [stdout] 124 | | if !self.serials.iter().any(|serial| { [INFO] [stdout] 125 | | cert.serial_hex.to_lowercase().contains(&serial.to_lowercase()) [INFO] [stdout] 126 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 129 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 123 ~ if !self.serials.is_empty() [INFO] [stdout] 124 ~ && !self.serials.iter().any(|serial| { [INFO] [stdout] 125 | cert.serial_hex.to_lowercase().contains(&serial.to_lowercase()) [INFO] [stdout] 126 | }) { [INFO] [stdout] 127 | return false; [INFO] [stdout] 128 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | / if !self.subjects.is_empty() { [INFO] [stdout] 133 | | if !self.subjects.iter().any(|subj| { [INFO] [stdout] 134 | | fuzzy_match(&cert.subject, subj) [INFO] [stdout] 135 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 138 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 132 ~ if !self.subjects.is_empty() [INFO] [stdout] 133 ~ && !self.subjects.iter().any(|subj| { [INFO] [stdout] 134 | fuzzy_match(&cert.subject, subj) [INFO] [stdout] 135 | }) { [INFO] [stdout] 136 | return false; [INFO] [stdout] 137 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:141:9 [INFO] [stdout] | [INFO] [stdout] 141 | / if !self.issuers.is_empty() { [INFO] [stdout] 142 | | if !self.issuers.iter().any(|iss| { [INFO] [stdout] 143 | | fuzzy_match(&cert.issuer, iss) [INFO] [stdout] 144 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 147 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 141 ~ if !self.issuers.is_empty() [INFO] [stdout] 142 ~ && !self.issuers.iter().any(|iss| { [INFO] [stdout] 143 | fuzzy_match(&cert.issuer, iss) [INFO] [stdout] 144 | }) { [INFO] [stdout] 145 | return false; [INFO] [stdout] 146 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 150 | / if !self.key_algorithms.is_empty() { [INFO] [stdout] 151 | | if !self.key_algorithms.iter().any(|algo| { [INFO] [stdout] 152 | | matches_algorithm(&cert.pubkey_algo, algo) [INFO] [stdout] 153 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 156 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 150 ~ if !self.key_algorithms.is_empty() [INFO] [stdout] 151 ~ && !self.key_algorithms.iter().any(|algo| { [INFO] [stdout] 152 | matches_algorithm(&cert.pubkey_algo, algo) [INFO] [stdout] 153 | }) { [INFO] [stdout] 154 | return false; [INFO] [stdout] 155 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | / if !self.signature_algorithms.is_empty() { [INFO] [stdout] 160 | | if !self.signature_algorithms.iter().any(|algo| { [INFO] [stdout] 161 | | matches_algorithm(&cert.signature_algo, algo) [INFO] [stdout] 162 | | }) { [INFO] [stdout] ... | [INFO] [stdout] 165 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 159 ~ if !self.signature_algorithms.is_empty() [INFO] [stdout] 160 ~ && !self.signature_algorithms.iter().any(|algo| { [INFO] [stdout] 161 | matches_algorithm(&cert.signature_algo, algo) [INFO] [stdout] 162 | }) { [INFO] [stdout] 163 | return false; [INFO] [stdout] 164 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | / if let Some(ref filter_date) = self.not_before { [INFO] [stdout] 191 | | if cert.not_before < *filter_date { [INFO] [stdout] 192 | | return false; [INFO] [stdout] 193 | | } [INFO] [stdout] 194 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 190 ~ if let Some(ref filter_date) = self.not_before [INFO] [stdout] 191 ~ && cert.not_before < *filter_date { [INFO] [stdout] 192 | return false; [INFO] [stdout] 193 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter.rs:197:9 [INFO] [stdout] | [INFO] [stdout] 197 | / if let Some(ref filter_date) = self.not_after { [INFO] [stdout] 198 | | if cert.not_after > *filter_date { [INFO] [stdout] 199 | | return false; [INFO] [stdout] 200 | | } [INFO] [stdout] 201 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 197 ~ if let Some(ref filter_date) = self.not_after [INFO] [stdout] 198 ~ && cert.not_after > *filter_date { [INFO] [stdout] 199 | return false; [INFO] [stdout] 200 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/tree.rs:44:18 [INFO] [stdout] | [INFO] [stdout] 44 | .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/tree.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | / if !node.is_self_signed { [INFO] [stdout] 75 | | if let Some(parent_indices) = subject_map.get(&node.issuer) { [INFO] [stdout] 76 | | for &parent_idx in parent_indices { [INFO] [stdout] 77 | | if parent_idx != index { [INFO] [stdout] ... | [INFO] [stdout] 87 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 74 ~ if !node.is_self_signed [INFO] [stdout] 75 ~ && let Some(parent_indices) = subject_map.get(&node.issuer) { [INFO] [stdout] 76 | for &parent_idx in parent_indices { [INFO] [stdout] ... [INFO] [stdout] 85 | } [INFO] [stdout] 86 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/tree.rs:78:25 [INFO] [stdout] | [INFO] [stdout] 78 | / if let Some(parent_node) = nodes.get_mut(&parent_idx) { [INFO] [stdout] 79 | | if !parent_node.children.contains(&index) { [INFO] [stdout] 80 | | parent_node.children.push(index); [INFO] [stdout] 81 | | } [INFO] [stdout] 82 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 78 ~ if let Some(parent_node) = nodes.get_mut(&parent_idx) [INFO] [stdout] 79 ~ && !parent_node.children.contains(&index) { [INFO] [stdout] 80 | parent_node.children.push(index); [INFO] [stdout] 81 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/tree.rs:179:30 [INFO] [stdout] | [INFO] [stdout] 179 | ... .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:258:50 [INFO] [stdout] | [INFO] [stdout] 258 | output_files = Some(extract_certificates(&cli, &results)?); [INFO] [stdout] | ^^^^ help: change this to: `cli` [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/main.rs:381:65 [INFO] [stdout] | [INFO] [stdout] 381 | output_files = Some(extract_certificates_from_directory(&cli, &all_results)?); [INFO] [stdout] | ^^^^ help: change this to: `cli` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:458:5 [INFO] [stdout] | [INFO] [stdout] 458 | / if let Some(files) = output_files { [INFO] [stdout] 459 | | if !files.is_empty() { [INFO] [stdout] 460 | | println!(); [INFO] [stdout] 461 | | println!( [INFO] [stdout] ... | [INFO] [stdout] 485 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 458 ~ if let Some(files) = output_files [INFO] [stdout] 459 ~ && !files.is_empty() { [INFO] [stdout] 460 | println!(); [INFO] [stdout] ... [INFO] [stdout] 483 | } [INFO] [stdout] 484 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:511:5 [INFO] [stdout] | [INFO] [stdout] 511 | / if cert_info.is_duplicate && cli.mark_duplicates { [INFO] [stdout] 512 | | if let Some(ref first) = cert_info.duplicate_of { [INFO] [stdout] 513 | | print!( [INFO] [stdout] 514 | | " {}{} [duplicate of #{}]{}", [INFO] [stdout] ... | [INFO] [stdout] 521 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 511 ~ if cert_info.is_duplicate && cli.mark_duplicates [INFO] [stdout] 512 ~ && let Some(ref first) = cert_info.duplicate_of { [INFO] [stdout] 513 | print!( [INFO] [stdout] ... [INFO] [stdout] 519 | ); [INFO] [stdout] 520 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:570:5 [INFO] [stdout] | [INFO] [stdout] 570 | / if cert_info.is_duplicate { [INFO] [stdout] 571 | | if cli.mark_duplicates { [INFO] [stdout] 572 | | if let Some(ref first) = cert_info.duplicate_of { [INFO] [stdout] 573 | | println!(); [INFO] [stdout] ... | [INFO] [stdout] 590 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 570 ~ if cert_info.is_duplicate [INFO] [stdout] 571 ~ && cli.mark_duplicates { [INFO] [stdout] 572 | if let Some(ref first) = cert_info.duplicate_of { [INFO] [stdout] ... [INFO] [stdout] 588 | } [INFO] [stdout] 589 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:571:9 [INFO] [stdout] | [INFO] [stdout] 571 | / if cli.mark_duplicates { [INFO] [stdout] 572 | | if let Some(ref first) = cert_info.duplicate_of { [INFO] [stdout] 573 | | println!(); [INFO] [stdout] 574 | | println!( [INFO] [stdout] ... | [INFO] [stdout] 589 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 571 ~ if cli.mark_duplicates [INFO] [stdout] 572 ~ && let Some(ref first) = cert_info.duplicate_of { [INFO] [stdout] 573 | println!(); [INFO] [stdout] ... [INFO] [stdout] 587 | ); [INFO] [stdout] 588 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:691:21 [INFO] [stdout] | [INFO] [stdout] 691 | let write_der = cli.der || (!cli.der && !cli.pem); [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] 691 - let write_der = cli.der || (!cli.der && !cli.pem); [INFO] [stdout] 691 + let write_der = !(!cli.der && cli.pem); [INFO] [stdout] | [INFO] [stdout] 691 - let write_der = cli.der || (!cli.der && !cli.pem); [INFO] [stdout] 691 + let write_der = cli.der || !cli.pem; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:692:21 [INFO] [stdout] | [INFO] [stdout] 692 | let write_pem = cli.pem || (!cli.der && !cli.pem); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 692 - let write_pem = cli.pem || (!cli.der && !cli.pem); [INFO] [stdout] 692 + let write_pem = !(!cli.pem && cli.der); [INFO] [stdout] | [INFO] [stdout] 692 - let write_pem = cli.pem || (!cli.der && !cli.pem); [INFO] [stdout] 692 + let write_pem = cli.pem || !cli.der; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:745:21 [INFO] [stdout] | [INFO] [stdout] 745 | let write_der = cli.der || (!cli.der && !cli.pem); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 745 - let write_der = cli.der || (!cli.der && !cli.pem); [INFO] [stdout] 745 + let write_der = !(!cli.der && cli.pem); [INFO] [stdout] | [INFO] [stdout] 745 - let write_der = cli.der || (!cli.der && !cli.pem); [INFO] [stdout] 745 + let write_der = cli.der || !cli.pem; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:746:21 [INFO] [stdout] | [INFO] [stdout] 746 | let write_pem = cli.pem || (!cli.der && !cli.pem); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 746 - let write_pem = cli.pem || (!cli.der && !cli.pem); [INFO] [stdout] 746 + let write_pem = !(!cli.pem && cli.der); [INFO] [stdout] | [INFO] [stdout] 746 - let write_pem = cli.pem || (!cli.der && !cli.pem); [INFO] [stdout] 746 + let write_pem = cli.pem || !cli.der; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:258:50 [INFO] [stdout] | [INFO] [stdout] 258 | output_files = Some(extract_certificates(&cli, &results)?); [INFO] [stdout] | ^^^^ help: change this to: `cli` [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/main.rs:381:65 [INFO] [stdout] | [INFO] [stdout] 381 | output_files = Some(extract_certificates_from_directory(&cli, &all_results)?); [INFO] [stdout] | ^^^^ help: change this to: `cli` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:458:5 [INFO] [stdout] | [INFO] [stdout] 458 | / if let Some(files) = output_files { [INFO] [stdout] 459 | | if !files.is_empty() { [INFO] [stdout] 460 | | println!(); [INFO] [stdout] 461 | | println!( [INFO] [stdout] ... | [INFO] [stdout] 485 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 458 ~ if let Some(files) = output_files [INFO] [stdout] 459 ~ && !files.is_empty() { [INFO] [stdout] 460 | println!(); [INFO] [stdout] ... [INFO] [stdout] 483 | } [INFO] [stdout] 484 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:511:5 [INFO] [stdout] | [INFO] [stdout] 511 | / if cert_info.is_duplicate && cli.mark_duplicates { [INFO] [stdout] 512 | | if let Some(ref first) = cert_info.duplicate_of { [INFO] [stdout] 513 | | print!( [INFO] [stdout] 514 | | " {}{} [duplicate of #{}]{}", [INFO] [stdout] ... | [INFO] [stdout] 521 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 511 ~ if cert_info.is_duplicate && cli.mark_duplicates [INFO] [stdout] 512 ~ && let Some(ref first) = cert_info.duplicate_of { [INFO] [stdout] 513 | print!( [INFO] [stdout] ... [INFO] [stdout] 519 | ); [INFO] [stdout] 520 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:570:5 [INFO] [stdout] | [INFO] [stdout] 570 | / if cert_info.is_duplicate { [INFO] [stdout] 571 | | if cli.mark_duplicates { [INFO] [stdout] 572 | | if let Some(ref first) = cert_info.duplicate_of { [INFO] [stdout] 573 | | println!(); [INFO] [stdout] ... | [INFO] [stdout] 590 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 570 ~ if cert_info.is_duplicate [INFO] [stdout] 571 ~ && cli.mark_duplicates { [INFO] [stdout] 572 | if let Some(ref first) = cert_info.duplicate_of { [INFO] [stdout] ... [INFO] [stdout] 588 | } [INFO] [stdout] 589 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:571:9 [INFO] [stdout] | [INFO] [stdout] 571 | / if cli.mark_duplicates { [INFO] [stdout] 572 | | if let Some(ref first) = cert_info.duplicate_of { [INFO] [stdout] 573 | | println!(); [INFO] [stdout] 574 | | println!( [INFO] [stdout] ... | [INFO] [stdout] 589 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 571 ~ if cli.mark_duplicates [INFO] [stdout] 572 ~ && let Some(ref first) = cert_info.duplicate_of { [INFO] [stdout] 573 | println!(); [INFO] [stdout] ... [INFO] [stdout] 587 | ); [INFO] [stdout] 588 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:691:21 [INFO] [stdout] | [INFO] [stdout] 691 | let write_der = cli.der || (!cli.der && !cli.pem); [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] 691 - let write_der = cli.der || (!cli.der && !cli.pem); [INFO] [stdout] 691 + let write_der = !(!cli.der && cli.pem); [INFO] [stdout] | [INFO] [stdout] 691 - let write_der = cli.der || (!cli.der && !cli.pem); [INFO] [stdout] 691 + let write_der = cli.der || !cli.pem; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:692:21 [INFO] [stdout] | [INFO] [stdout] 692 | let write_pem = cli.pem || (!cli.der && !cli.pem); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 692 - let write_pem = cli.pem || (!cli.der && !cli.pem); [INFO] [stdout] 692 + let write_pem = !(!cli.pem && cli.der); [INFO] [stdout] | [INFO] [stdout] 692 - let write_pem = cli.pem || (!cli.der && !cli.pem); [INFO] [stdout] 692 + let write_pem = cli.pem || !cli.der; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:745:21 [INFO] [stdout] | [INFO] [stdout] 745 | let write_der = cli.der || (!cli.der && !cli.pem); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 745 - let write_der = cli.der || (!cli.der && !cli.pem); [INFO] [stdout] 745 + let write_der = !(!cli.der && cli.pem); [INFO] [stdout] | [INFO] [stdout] 745 - let write_der = cli.der || (!cli.der && !cli.pem); [INFO] [stdout] 745 + let write_der = cli.der || !cli.pem; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:746:21 [INFO] [stdout] | [INFO] [stdout] 746 | let write_pem = cli.pem || (!cli.der && !cli.pem); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 746 - let write_pem = cli.pem || (!cli.der && !cli.pem); [INFO] [stdout] 746 + let write_pem = !(!cli.pem && cli.der); [INFO] [stdout] | [INFO] [stdout] 746 - let write_pem = cli.pem || (!cli.der && !cli.pem); [INFO] [stdout] 746 + let write_pem = cli.pem || !cli.der; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 33.31s [INFO] running `Command { std: "docker" "inspect" "6bae9aa1574979b6c471b4a5f39282401a0a28067134adb250554cd947606325", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6bae9aa1574979b6c471b4a5f39282401a0a28067134adb250554cd947606325", kill_on_drop: false }` [INFO] [stdout] 6bae9aa1574979b6c471b4a5f39282401a0a28067134adb250554cd947606325