[INFO] fetching crate dnacomb 0.5.0... [INFO] linting dnacomb-0.5.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate dnacomb 0.5.0 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate dnacomb 0.5.0 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate dnacomb 0.5.0 [INFO] tweaked toml for crates.io crate dnacomb 0.5.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate dnacomb 0.5.0 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 crates.io crate dnacomb 0.5.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded env_logger v0.11.6 [INFO] [stderr] Downloaded itertools-num v0.1.3 [INFO] [stderr] Downloaded custom_derive v0.1.7 [INFO] [stderr] Downloaded rustc_version v0.1.7 [INFO] [stderr] Downloaded derive-new v0.6.0 [INFO] [stderr] Downloaded editdistancek v1.0.2 [INFO] [stderr] Downloaded either v1.14.0 [INFO] [stderr] Downloaded newtype_derive v0.1.6 [INFO] [stderr] Downloaded terminal_size v0.4.1 [INFO] [stderr] Downloaded multimap v0.10.0 [INFO] [stderr] Downloaded bio-types v1.0.4 [INFO] [stderr] Downloaded semver v0.1.20 [INFO] [stderr] Downloaded ordered-float v5.0.0 [INFO] [stderr] Downloaded anyhow v1.0.96 [INFO] [stderr] Downloaded matrixmultiply v0.3.9 [INFO] [stderr] Downloaded indexmap v2.7.1 [INFO] [stderr] Downloaded wide v0.7.32 [INFO] [stderr] Downloaded zerocopy-derive v0.8.21 [INFO] [stderr] Downloaded libm v0.2.11 [INFO] [stderr] Downloaded serde v1.0.218 [INFO] [stderr] Downloaded serde_json v1.0.139 [INFO] [stderr] Downloaded bytemuck v1.21.0 [INFO] [stderr] Downloaded clap_builder v4.5.31 [INFO] [stderr] Downloaded zerocopy v0.8.21 [INFO] [stderr] Downloaded bio v2.2.0 [INFO] [stderr] Downloaded simba v0.9.0 [INFO] [stderr] Downloaded triple_accel v0.4.0 [INFO] [stderr] Downloaded clap v4.5.31 [INFO] [stderr] Downloaded flate2 v1.1.0 [INFO] [stderr] Downloaded ryu v1.0.19 [INFO] [stderr] Downloaded serde_derive v1.0.218 [INFO] [stderr] Downloaded rand_core v0.9.2 [INFO] [stderr] Downloaded nalgebra v0.33.2 [INFO] [stderr] Downloaded petgraph v0.7.1 [INFO] [stderr] Downloaded libc v0.2.170 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 6a6082acfcf327d97e8e91363a28d75de633788f471584bca4b2354b1865e2c4 [INFO] running `Command { std: "docker" "start" "-a" "6a6082acfcf327d97e8e91363a28d75de633788f471584bca4b2354b1865e2c4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6a6082acfcf327d97e8e91363a28d75de633788f471584bca4b2354b1865e2c4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6a6082acfcf327d97e8e91363a28d75de633788f471584bca4b2354b1865e2c4", kill_on_drop: false }` [INFO] [stdout] 6a6082acfcf327d97e8e91363a28d75de633788f471584bca4b2354b1865e2c4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] c17bd0a7d7cc6af35af8471eaa1b92d0cced41d982fbcdd971ae32c78c9b0bfb [INFO] running `Command { std: "docker" "start" "-a" "c17bd0a7d7cc6af35af8471eaa1b92d0cced41d982fbcdd971ae32c78c9b0bfb", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.93 [INFO] [stderr] Compiling unicode-ident v1.0.17 [INFO] [stderr] Compiling libm v0.2.11 [INFO] [stderr] Compiling libc v0.2.170 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Compiling serde v1.0.218 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling matrixmultiply v0.3.9 [INFO] [stderr] Checking either v1.14.0 [INFO] [stderr] Compiling zerocopy v0.8.21 [INFO] [stderr] Checking bytemuck v1.21.0 [INFO] [stderr] Compiling getrandom v0.3.1 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Checking anstyle-parse v0.2.6 [INFO] [stderr] Checking ryu v1.0.19 [INFO] [stderr] Compiling rustversion v1.0.19 [INFO] [stderr] Checking bitflags v2.8.0 [INFO] [stderr] Checking itoa v1.0.14 [INFO] [stderr] Checking anstyle-query v1.1.2 [INFO] [stderr] Checking safe_arch v0.7.4 [INFO] [stderr] Checking colorchoice v1.0.3 [INFO] [stderr] Compiling semver v0.1.20 [INFO] [stderr] Checking anstyle v1.0.10 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Compiling serde_json v1.0.139 [INFO] [stderr] Compiling feature-probe v0.1.1 [INFO] [stderr] Compiling thiserror v2.0.11 [INFO] [stderr] Checking anstream v0.6.18 [INFO] [stderr] Checking clap_lex v0.7.4 [INFO] [stderr] Compiling anyhow v1.0.96 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking hashbrown v0.15.2 [INFO] [stderr] Compiling bv v0.11.1 [INFO] [stderr] Compiling rustc_version v0.1.7 [INFO] [stderr] Checking csv-core v0.1.12 [INFO] [stderr] Checking bit-vec v0.8.0 [INFO] [stderr] Checking wide v0.7.32 [INFO] [stderr] Checking log v0.4.26 [INFO] [stderr] Compiling newtype_derive v0.1.6 [INFO] [stderr] Checking adler2 v2.0.0 [INFO] [stderr] Checking fixedbitset v0.5.7 [INFO] [stderr] Checking miniz_oxide v0.8.5 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Checking crossbeam-queue v0.3.12 [INFO] [stderr] Checking bit-set v0.8.0 [INFO] [stderr] Checking crossbeam-channel v0.5.15 [INFO] [stderr] Checking crc32fast v1.4.2 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking half v2.6.0 [INFO] [stderr] Checking ciborium-io v0.2.2 [INFO] [stderr] Checking bytecount v0.6.8 [INFO] [stderr] Compiling quote v1.0.38 [INFO] [stderr] Checking editdistancek v1.0.2 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking strum v0.26.3 [INFO] [stderr] Checking plotters-backend v0.3.7 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling syn v2.0.98 [INFO] [stderr] Checking custom_derive v0.1.7 [INFO] [stderr] Checking triple_accel v0.4.0 [INFO] [stderr] Checking flate2 v1.1.0 [INFO] [stderr] Checking terminal_size v0.4.1 [INFO] [stderr] Checking crossbeam v0.8.4 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Checking cast v0.3.0 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking indexmap v2.7.1 [INFO] [stderr] Checking clap_builder v4.5.31 [INFO] [stderr] Checking is-terminal v0.4.16 [INFO] [stderr] Checking plotters-svg v0.3.7 [INFO] [stderr] Checking once_cell v1.20.3 [INFO] [stderr] Checking anes v0.1.6 [INFO] [stderr] Checking oorandom v11.1.5 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Checking itertools-num v0.1.3 [INFO] [stderr] Checking ordered-float v5.0.0 [INFO] [stderr] Checking plotters v0.3.7 [INFO] [stderr] Checking petgraph v0.7.1 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking rand_core v0.9.2 [INFO] [stderr] Checking ndarray v0.16.1 [INFO] [stderr] Checking simba v0.9.0 [INFO] [stderr] Checking criterion-plot v0.5.0 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking env_filter v0.1.3 [INFO] [stderr] Checking env_logger v0.11.6 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling serde_derive v1.0.218 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling clap_derive v4.5.28 [INFO] [stderr] Compiling enum-map-derive v0.17.0 [INFO] [stderr] Compiling thiserror-impl v2.0.11 [INFO] [stderr] Compiling derive-new v0.6.0 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Checking enum-map v2.7.3 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking clap v4.5.31 [INFO] [stderr] Checking bio-types v1.0.4 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking rand v0.9.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking rand_distr v0.4.3 [INFO] [stderr] Checking nalgebra v0.33.2 [INFO] [stderr] Checking csv v1.3.1 [INFO] [stderr] Checking multimap v0.10.0 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking criterion v0.5.1 [INFO] [stderr] Checking statrs v0.18.0 [INFO] [stderr] Checking bio v2.2.0 [INFO] [stderr] Checking dnacomb v0.5.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filters.rs:103:5 [INFO] [stdout] | [INFO] [stdout] 103 | / if let Some(r) = r { [INFO] [stdout] 104 | | if r.seq().is_empty() { [INFO] [stdout] 105 | | return Some(FilterReason::EmptyRead); [INFO] [stdout] 106 | | } [INFO] [stdout] 107 | | } [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] 103 ~ if let Some(r) = r [INFO] [stdout] 104 ~ && r.seq().is_empty() { [INFO] [stdout] 105 | return Some(FilterReason::EmptyRead); [INFO] [stdout] 106 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filters.rs:119:5 [INFO] [stdout] | [INFO] [stdout] 119 | / if let Some(r) = r { [INFO] [stdout] 120 | | if r.seq().len() < min { [INFO] [stdout] 121 | | return Some(FilterReason::ShortRead); [INFO] [stdout] 122 | | } [INFO] [stdout] 123 | | } [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] 119 ~ if let Some(r) = r [INFO] [stdout] 120 ~ && r.seq().len() < min { [INFO] [stdout] 121 | return Some(FilterReason::ShortRead); [INFO] [stdout] 122 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filters.rs:135:5 [INFO] [stdout] | [INFO] [stdout] 135 | / if let Some(r) = r { [INFO] [stdout] 136 | | if r.seq().len() > max { [INFO] [stdout] 137 | | return Some(FilterReason::LongRead); [INFO] [stdout] 138 | | } [INFO] [stdout] 139 | | } [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] 135 ~ if let Some(r) = r [INFO] [stdout] 136 ~ && r.seq().len() > max { [INFO] [stdout] 137 | return Some(FilterReason::LongRead); [INFO] [stdout] 138 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filters.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | / if let Some(r) = r { [INFO] [stdout] 156 | | if mean_quality(r.qual()) < q { [INFO] [stdout] 157 | | return Some(FilterReason::LowMeanQuality); [INFO] [stdout] 158 | | } [INFO] [stdout] 159 | | } [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] 155 ~ if let Some(r) = r [INFO] [stdout] 156 ~ && mean_quality(r.qual()) < q { [INFO] [stdout] 157 | return Some(FilterReason::LowMeanQuality); [INFO] [stdout] 158 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filters.rs:176:5 [INFO] [stdout] | [INFO] [stdout] 176 | / if let Some(r) = r { [INFO] [stdout] 177 | | if r.score < tol.minimum_r_score { [INFO] [stdout] 178 | | return Some(FilterReason::BadAlignment); [INFO] [stdout] 179 | | } [INFO] [stdout] 180 | | } [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] 176 ~ if let Some(r) = r [INFO] [stdout] 177 ~ && r.score < tol.minimum_r_score { [INFO] [stdout] 178 | return Some(FilterReason::BadAlignment); [INFO] [stdout] 179 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lib_spec.rs:659:13 [INFO] [stdout] | [INFO] [stdout] 659 | / if let Some(i) = &ids { [INFO] [stdout] 660 | | if i.len() != exp_len { [INFO] [stdout] 661 | | return Err(LibraryError::Library { [INFO] [stdout] 662 | | desc: "Library must have as many IDs as the number of elements".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 665 | | } [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] 659 ~ if let Some(i) = &ids [INFO] [stdout] 660 ~ && i.len() != exp_len { [INFO] [stdout] 661 | return Err(LibraryError::Library { [INFO] [stdout] 662 | desc: "Library must have as many IDs as the number of elements".to_string(), [INFO] [stdout] 663 | }); [INFO] [stdout] 664 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lib_spec.rs:815:9 [INFO] [stdout] | [INFO] [stdout] 815 | / if let Some(exact) = self.exact_matches.get(region) { [INFO] [stdout] 816 | | if let Some(hit) = exact.get(seq) { [INFO] [stdout] 817 | | return Ok(Some(LibraryMatch { [INFO] [stdout] 818 | | matches: vec![hit.clone()], [INFO] [stdout] ... | [INFO] [stdout] 822 | | } [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] 815 ~ if let Some(exact) = self.exact_matches.get(region) [INFO] [stdout] 816 ~ && let Some(hit) = exact.get(seq) { [INFO] [stdout] 817 | return Ok(Some(LibraryMatch { [INFO] [stdout] ... [INFO] [stdout] 820 | })); [INFO] [stdout] 821 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/logging.rs:157:12 [INFO] [stdout] | [INFO] [stdout] 157 | if self.current % self.log_interval == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `self.current.is_multiple_of(self.log_interval)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `false` [INFO] [stdout] --> src/counting.rs:1817:13 [INFO] [stdout] | [INFO] [stdout] 1817 | assert!(false, "match_flank_patterns returned Err(...)") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: replace this with `panic!()` or `unreachable!()` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] = note: `#[warn(clippy::assertions_on_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> tests/test_lib_spec.rs:11:13 [INFO] [stdout] | [INFO] [stdout] 11 | assert!(!ls.is_err()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `ls.is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filters.rs:103:5 [INFO] [stdout] | [INFO] [stdout] 103 | / if let Some(r) = r { [INFO] [stdout] 104 | | if r.seq().is_empty() { [INFO] [stdout] 105 | | return Some(FilterReason::EmptyRead); [INFO] [stdout] 106 | | } [INFO] [stdout] 107 | | } [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] 103 ~ if let Some(r) = r [INFO] [stdout] 104 ~ && r.seq().is_empty() { [INFO] [stdout] 105 | return Some(FilterReason::EmptyRead); [INFO] [stdout] 106 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filters.rs:119:5 [INFO] [stdout] | [INFO] [stdout] 119 | / if let Some(r) = r { [INFO] [stdout] 120 | | if r.seq().len() < min { [INFO] [stdout] 121 | | return Some(FilterReason::ShortRead); [INFO] [stdout] 122 | | } [INFO] [stdout] 123 | | } [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] 119 ~ if let Some(r) = r [INFO] [stdout] 120 ~ && r.seq().len() < min { [INFO] [stdout] 121 | return Some(FilterReason::ShortRead); [INFO] [stdout] 122 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filters.rs:135:5 [INFO] [stdout] | [INFO] [stdout] 135 | / if let Some(r) = r { [INFO] [stdout] 136 | | if r.seq().len() > max { [INFO] [stdout] 137 | | return Some(FilterReason::LongRead); [INFO] [stdout] 138 | | } [INFO] [stdout] 139 | | } [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] 135 ~ if let Some(r) = r [INFO] [stdout] 136 ~ && r.seq().len() > max { [INFO] [stdout] 137 | return Some(FilterReason::LongRead); [INFO] [stdout] 138 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filters.rs:155:5 [INFO] [stdout] | [INFO] [stdout] 155 | / if let Some(r) = r { [INFO] [stdout] 156 | | if mean_quality(r.qual()) < q { [INFO] [stdout] 157 | | return Some(FilterReason::LowMeanQuality); [INFO] [stdout] 158 | | } [INFO] [stdout] 159 | | } [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] 155 ~ if let Some(r) = r [INFO] [stdout] 156 ~ && mean_quality(r.qual()) < q { [INFO] [stdout] 157 | return Some(FilterReason::LowMeanQuality); [INFO] [stdout] 158 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filters.rs:176:5 [INFO] [stdout] | [INFO] [stdout] 176 | / if let Some(r) = r { [INFO] [stdout] 177 | | if r.score < tol.minimum_r_score { [INFO] [stdout] 178 | | return Some(FilterReason::BadAlignment); [INFO] [stdout] 179 | | } [INFO] [stdout] 180 | | } [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] 176 ~ if let Some(r) = r [INFO] [stdout] 177 ~ && r.score < tol.minimum_r_score { [INFO] [stdout] 178 | return Some(FilterReason::BadAlignment); [INFO] [stdout] 179 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `AlignmentTolerance` which implements the `Copy` trait [INFO] [stdout] --> src/filters.rs:753:51 [INFO] [stdout] | [INFO] [stdout] 753 | cfg: FilterConfig::new(None, Some(t.clone()), None, None, false), [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `t` [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 `AlignmentTolerance` which implements the `Copy` trait [INFO] [stdout] --> src/filters.rs:760:51 [INFO] [stdout] | [INFO] [stdout] 760 | cfg: FilterConfig::new(None, Some(t.clone()), None, None, false), [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `AlignmentTolerance` which implements the `Copy` trait [INFO] [stdout] --> src/filters.rs:767:51 [INFO] [stdout] | [INFO] [stdout] 767 | cfg: FilterConfig::new(None, Some(t.clone()), None, None, false), [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `AlignmentTolerance` which implements the `Copy` trait [INFO] [stdout] --> src/filters.rs:774:51 [INFO] [stdout] | [INFO] [stdout] 774 | cfg: FilterConfig::new(None, Some(t.clone()), None, None, false), [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `AlignmentTolerance` which implements the `Copy` trait [INFO] [stdout] --> src/filters.rs:781:51 [INFO] [stdout] | [INFO] [stdout] 781 | cfg: FilterConfig::new(None, Some(t.clone()), None, None, false), [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `AlignmentTolerance` which implements the `Copy` trait [INFO] [stdout] --> src/filters.rs:788:51 [INFO] [stdout] | [INFO] [stdout] 788 | cfg: FilterConfig::new(None, Some(t.clone()), None, None, false), [INFO] [stdout] | ^^^^^^^^^ help: try removing the `clone` call: `t` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&key).is_none()` [INFO] [stdout] --> src/filters.rs:822:35 [INFO] [stdout] | [INFO] [stdout] 822 | fr.counts.get(&key).is_none(), [INFO] [stdout] | ----------^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!fr.counts.contains_key(&key)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lib_spec.rs:659:13 [INFO] [stdout] | [INFO] [stdout] 659 | / if let Some(i) = &ids { [INFO] [stdout] 660 | | if i.len() != exp_len { [INFO] [stdout] 661 | | return Err(LibraryError::Library { [INFO] [stdout] 662 | | desc: "Library must have as many IDs as the number of elements".to_string(), [INFO] [stdout] ... | [INFO] [stdout] 665 | | } [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] 659 ~ if let Some(i) = &ids [INFO] [stdout] 660 ~ && i.len() != exp_len { [INFO] [stdout] 661 | return Err(LibraryError::Library { [INFO] [stdout] 662 | desc: "Library must have as many IDs as the number of elements".to_string(), [INFO] [stdout] 663 | }); [INFO] [stdout] 664 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/lib_spec.rs:815:9 [INFO] [stdout] | [INFO] [stdout] 815 | / if let Some(exact) = self.exact_matches.get(region) { [INFO] [stdout] 816 | | if let Some(hit) = exact.get(seq) { [INFO] [stdout] 817 | | return Ok(Some(LibraryMatch { [INFO] [stdout] 818 | | matches: vec![hit.clone()], [INFO] [stdout] ... | [INFO] [stdout] 822 | | } [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] 815 ~ if let Some(exact) = self.exact_matches.get(region) [INFO] [stdout] 816 ~ && let Some(hit) = exact.get(seq) { [INFO] [stdout] 817 | return Ok(Some(LibraryMatch { [INFO] [stdout] ... [INFO] [stdout] 820 | })); [INFO] [stdout] 821 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/logging.rs:157:12 [INFO] [stdout] | [INFO] [stdout] 157 | if self.current % self.log_interval == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `self.current.is_multiple_of(self.log_interval)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:304:5 [INFO] [stdout] | [INFO] [stdout] 304 | / if let Some(l) = &lib_spec { [INFO] [stdout] 305 | | if matches!(args.mode, CountMode::Inframe) && l.variable_length_regions() > 0 { [INFO] [stdout] 306 | | error!("Can't use inframe matching with variable length regions. Exiting"); [INFO] [stdout] 307 | | exit(1) [INFO] [stdout] 308 | | } [INFO] [stdout] 309 | | } [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] 304 ~ if let Some(l) = &lib_spec [INFO] [stdout] 305 ~ && matches!(args.mode, CountMode::Inframe) && l.variable_length_regions() > 0 { [INFO] [stdout] 306 | error!("Can't use inframe matching with variable length regions. Exiting"); [INFO] [stdout] 307 | exit(1) [INFO] [stdout] 308 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 48.11s [INFO] running `Command { std: "docker" "inspect" "c17bd0a7d7cc6af35af8471eaa1b92d0cced41d982fbcdd971ae32c78c9b0bfb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c17bd0a7d7cc6af35af8471eaa1b92d0cced41d982fbcdd971ae32c78c9b0bfb", kill_on_drop: false }` [INFO] [stdout] c17bd0a7d7cc6af35af8471eaa1b92d0cced41d982fbcdd971ae32c78c9b0bfb