[INFO] fetching crate fastars 0.1.0... [INFO] linting fastars-0.1.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate fastars 0.1.0 into /workspace/builds/worker-7-tc1/source [INFO] started tweaking crates.io crate fastars 0.1.0 [INFO] finished tweaking crates.io crate fastars 0.1.0 [INFO] tweaked toml for crates.io crate fastars 0.1.0 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate fastars 0.1.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 fastars 0.1.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] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded bloom v0.3.2 [INFO] [stderr] Downloaded flume v0.10.14 [INFO] [stderr] Downloaded buffer-redux v1.1.0 [INFO] [stderr] Downloaded liblzma v0.3.6 [INFO] [stderr] Downloaded libdeflater v0.12.0 [INFO] [stderr] Downloaded libdeflate-sys v0.12.0 [INFO] [stderr] Downloaded needletail v0.6.3 [INFO] [stderr] Downloaded liblzma-sys v0.3.13 [INFO] [stderr] Downloaded gzp v0.11.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7b02afd1cd90dec5cb0aa08bc7fd4f97ced493b269e9776bec7e5cd45d95abcd [INFO] running `Command { std: "docker" "start" "-a" "7b02afd1cd90dec5cb0aa08bc7fd4f97ced493b269e9776bec7e5cd45d95abcd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7b02afd1cd90dec5cb0aa08bc7fd4f97ced493b269e9776bec7e5cd45d95abcd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7b02afd1cd90dec5cb0aa08bc7fd4f97ced493b269e9776bec7e5cd45d95abcd", kill_on_drop: false }` [INFO] [stdout] 7b02afd1cd90dec5cb0aa08bc7fd4f97ced493b269e9776bec7e5cd45d95abcd [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a8efcff8fbd2267717f501ee2e745b0a36f509e4b2444c4d9bf3366b2534a282 [INFO] running `Command { std: "docker" "start" "-a" "a8efcff8fbd2267717f501ee2e745b0a36f509e4b2444c4d9bf3366b2534a282", kill_on_drop: false }` [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling bzip2-sys v0.1.13+1.0.8 [INFO] [stderr] Compiling liblzma-sys v0.3.13 [INFO] [stderr] Compiling libdeflate-sys v0.12.0 [INFO] [stderr] Compiling syn v2.0.115 [INFO] [stderr] Compiling libz-sys v1.1.23 [INFO] [stderr] Checking clap_builder v4.5.58 [INFO] [stderr] Checking serde_json v1.0.149 [INFO] [stderr] Checking core_affinity v0.8.3 [INFO] [stderr] Checking crossbeam-channel v0.5.15 [INFO] [stderr] Checking crossbeam-queue v0.3.12 [INFO] [stderr] Checking buffer-redux v1.1.0 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Checking bit-vec v0.4.4 [INFO] [stderr] Checking jiff v0.2.20 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Checking bytecount v0.6.9 [INFO] [stderr] Checking nanorand v0.7.0 [INFO] [stderr] Checking bloom v0.3.2 [INFO] [stderr] Checking rustc-hash v2.1.1 [INFO] [stderr] Checking criterion-plot v0.5.0 [INFO] [stderr] Checking is-terminal v0.4.17 [INFO] [stderr] Checking crossbeam v0.8.4 [INFO] [stderr] Checking bzip2 v0.4.4 [INFO] [stderr] Checking tempfile v3.25.0 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking libdeflater v0.12.0 [INFO] [stderr] Checking env_filter v1.0.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling zerocopy-derive v0.8.39 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Checking liblzma v0.3.6 [INFO] [stderr] Checking env_logger v0.11.9 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Checking flume v0.10.14 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Checking zstd v0.13.3 [INFO] [stderr] Checking zerocopy v0.8.39 [INFO] [stderr] Checking clap v4.5.58 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stderr] Checking criterion v0.5.1 [INFO] [stderr] Checking flate2 v1.1.9 [INFO] [stderr] Checking needletail v0.6.3 [INFO] [stderr] Checking gzp v0.11.3 [INFO] [stderr] Checking fastars v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated method `correction::corrector::OverlapCorrector::correct_pair`: Use correct_pair_into() with CorrectionBuffers for better performance [INFO] [stdout] --> src/correction/corrector.rs:593:32 [INFO] [stdout] | [INFO] [stdout] 593 | let result = corrector.correct_pair(r1_seq, &r1_qual, r2_seq, &r2_qual); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `correction::corrector::OverlapCorrector::correct_pair`: Use correct_pair_into() with CorrectionBuffers for better performance [INFO] [stdout] --> src/correction/corrector.rs:726:32 [INFO] [stdout] | [INFO] [stdout] 726 | let result = corrector.correct_pair( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `channel_capacity` [INFO] [stdout] --> src/pipeline/executor.rs:471:13 [INFO] [stdout] | [INFO] [stdout] 471 | let channel_capacity = num_workers * CHANNEL_BUFFER_MULTIPLIER; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_channel_capacity` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ReadBatch` is never used [INFO] [stdout] --> src/pipeline/executor.rs:371:6 [INFO] [stdout] | [INFO] [stdout] 371 | enum ReadBatch { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ProcessedBatch` is never constructed [INFO] [stdout] --> src/pipeline/executor.rs:380:8 [INFO] [stdout] | [INFO] [stdout] 380 | struct ProcessedBatch { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `run_single` and `run_paired` are never used [INFO] [stdout] --> src/pipeline/executor.rs:442:8 [INFO] [stdout] | [INFO] [stdout] 409 | impl PipelineExecutor { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 442 | fn run_single(&self, input_path: &Path, file_idx: usize) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 659 | fn run_paired( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_worker_single` is never used [INFO] [stdout] --> src/pipeline/executor.rs:2172:4 [INFO] [stdout] | [INFO] [stdout] 2172 | fn process_worker_single( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_worker_paired` is never used [INFO] [stdout] --> src/pipeline/executor.rs:2219:4 [INFO] [stdout] | [INFO] [stdout] 2219 | fn process_worker_paired( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_single_batch` is never used [INFO] [stdout] --> src/pipeline/executor.rs:2269:4 [INFO] [stdout] | [INFO] [stdout] 2269 | fn process_single_batch( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_paired_batch` is never used [INFO] [stdout] --> src/pipeline/executor.rs:2381:4 [INFO] [stdout] | [INFO] [stdout] 2381 | fn process_paired_batch( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/cli.rs:1128:16 [INFO] [stdout] | [INFO] [stdout] 1128 | } else if let Some(lines) = self.split_by_lines { [INFO] [stdout] | ________________^ [INFO] [stdout] 1129 | | Some(SplitConfig { [INFO] [stdout] 1130 | | mode: SplitMode::ByLines(lines), [INFO] [stdout] 1131 | | prefix_digits: self.split_prefix_digits, [INFO] [stdout] ... | [INFO] [stdout] 1134 | | None [INFO] [stdout] 1135 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1128 ~ } else { self.split_by_lines.map(|lines| SplitConfig { [INFO] [stdout] 1129 + mode: SplitMode::ByLines(lines), [INFO] [stdout] 1130 + prefix_digits: self.split_prefix_digits, [INFO] [stdout] 1131 + }) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/correction/corrector.rs:324:5 [INFO] [stdout] | [INFO] [stdout] 324 | / fn apply_corrections_in_place( [INFO] [stdout] 325 | | &self, [INFO] [stdout] 326 | | r1_seq_out: &mut [u8], [INFO] [stdout] 327 | | r1_qual_out: &mut [u8], [INFO] [stdout] ... | [INFO] [stdout] 332 | | r2_qual_rc: &[u8], [INFO] [stdout] 333 | | ) -> CorrectionStats { [INFO] [stdout] | |________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter/criteria.rs:236:5 [INFO] [stdout] | [INFO] [stdout] 236 | / if config.index_filter.is_enabled() { [INFO] [stdout] 237 | | if !super::index::check_index_filter(name, &config.index_filter) { [INFO] [stdout] 238 | | return FilterDecision::FailIndex; [INFO] [stdout] 239 | | } [INFO] [stdout] 240 | | } [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] 236 ~ if config.index_filter.is_enabled() [INFO] [stdout] 237 ~ && !super::index::check_index_filter(name, &config.index_filter) { [INFO] [stdout] 238 | return FilterDecision::FailIndex; [INFO] [stdout] 239 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/io/reader.rs:145:5 [INFO] [stdout] | [INFO] [stdout] 145 | /// If false, assume plain text input. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/io/split_writer.rs:63:22 [INFO] [stdout] | [INFO] [stdout] 63 | Some((total + n_files - 1) / n_files) // Ceiling division [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `total.div_ceil(n_files)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/io/split_writer.rs:248:22 [INFO] [stdout] | [INFO] [stdout] 248 | Some((total + n_files - 1) / n_files) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `total.div_ceil(n_files)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pipeline/executor.rs:613:13 [INFO] [stdout] | [INFO] [stdout] 613 | / if self.config.output_prefix.is_some() || self.config.use_stdout { [INFO] [stdout] 614 | | if write_tx.send(batch.output).is_err() { [INFO] [stdout] 615 | | // Writer died, stop processing [INFO] [stdout] 616 | | break; [INFO] [stdout] 617 | | } [INFO] [stdout] 618 | | } [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] 613 ~ if (self.config.output_prefix.is_some() || self.config.use_stdout) { [INFO] [stdout] 614 ~ && write_tx.send(batch.output).is_err() { [INFO] [stdout] 615 | // Writer died, stop processing [INFO] [stdout] 616 | break; [INFO] [stdout] 617 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pipeline/executor.rs:881:13 [INFO] [stdout] | [INFO] [stdout] 881 | / if self.config.output_prefix.is_some() || self.config.use_stdout { [INFO] [stdout] 882 | | if write_tx.send(batch.output).is_err() { [INFO] [stdout] 883 | | // Writer died, stop processing [INFO] [stdout] 884 | | break; [INFO] [stdout] 885 | | } [INFO] [stdout] 886 | | } [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] 881 ~ if (self.config.output_prefix.is_some() || self.config.use_stdout) { [INFO] [stdout] 882 ~ && write_tx.send(batch.output).is_err() { [INFO] [stdout] 883 | // Writer died, stop processing [INFO] [stdout] 884 | break; [INFO] [stdout] 885 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> src/pipeline/executor.rs:1243:9 [INFO] [stdout] | [INFO] [stdout] 1243 | / enum PairedWriterType { [INFO] [stdout] 1244 | | File(PairedFastqWriter), [INFO] [stdout] | | ----------------------- the largest variant contains at least 288 bytes [INFO] [stdout] 1245 | | Stdout(std::io::StdoutLock<'static>), [INFO] [stdout] | | ------------------------------------ the second-largest variant contains at least 8 bytes [INFO] [stdout] 1246 | | } [INFO] [stdout] | |_________^ the entire enum is at least 288 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] = note: `#[warn(clippy::large_enum_variant)]` on by default [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 1244 - File(PairedFastqWriter), [INFO] [stdout] 1244 + File(Box), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/pipeline/executor.rs:2172:1 [INFO] [stdout] | [INFO] [stdout] 2172 | / fn process_worker_single( [INFO] [stdout] 2173 | | rx: Receiver, [INFO] [stdout] 2174 | | tx: Sender, [INFO] [stdout] 2175 | | trim_config: &TrimConfig, [INFO] [stdout] ... | [INFO] [stdout] 2183 | | reads_received: Arc, [INFO] [stdout] 2184 | | ) -> Result<()> { [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (12/7) [INFO] [stdout] --> src/pipeline/executor.rs:2219:1 [INFO] [stdout] | [INFO] [stdout] 2219 | / fn process_worker_paired( [INFO] [stdout] 2220 | | rx: Receiver, [INFO] [stdout] 2221 | | tx: Sender, [INFO] [stdout] 2222 | | trim_config: &TrimConfig, [INFO] [stdout] ... | [INFO] [stdout] 2231 | | reads_received: Arc, [INFO] [stdout] 2232 | | ) -> Result<()> { [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/pipeline/executor.rs:2269:1 [INFO] [stdout] | [INFO] [stdout] 2269 | / fn process_single_batch( [INFO] [stdout] 2270 | | records: &[OwnedRecord], [INFO] [stdout] 2271 | | trim_config: &TrimConfig, [INFO] [stdout] 2272 | | filter_config: &FilterConfig, [INFO] [stdout] ... | [INFO] [stdout] 2277 | | overrep_sampling: u32, [INFO] [stdout] 2278 | | ) -> (Vec, FastQcStats, FastQcStats, WorkerStats) { [INFO] [stdout] | |______________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/pipeline/executor.rs:2381:1 [INFO] [stdout] | [INFO] [stdout] 2381 | / fn process_paired_batch( [INFO] [stdout] 2382 | | pairs: &[(OwnedRecord, OwnedRecord)], [INFO] [stdout] 2383 | | trim_config: &TrimConfig, [INFO] [stdout] 2384 | | filter_config: &FilterConfig, [INFO] [stdout] ... | [INFO] [stdout] 2396 | | InsertSizeEstimator, [INFO] [stdout] 2397 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SpscProducer` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/pipeline/spsc_queue.rs:224:5 [INFO] [stdout] | [INFO] [stdout] 224 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/qc/duplication.rs:259:9 [INFO] [stdout] | [INFO] [stdout] 259 | sorted.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 259 - sorted.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] 259 + sorted.sort_by_key(|b| std::cmp::Reverse(b.1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/qc/fast_stats.rs:595:9 [INFO] [stdout] | [INFO] [stdout] 595 | lengths.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 595 - lengths.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] 595 + lengths.sort_by_key(|b| std::cmp::Reverse(b.0)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/qc/kmer.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 136 | if (read_count.wrapping_sub(1)) % (self.sampling_rate as u64) != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!(read_count.wrapping_sub(1)).is_multiple_of(self.sampling_rate as u64)` [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: consider using `sort_by_key` [INFO] [stdout] --> src/qc/kmer.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | sorted.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 165 - sorted.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] 165 + sorted.sort_by_key(|b| std::cmp::Reverse(b.1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/qc/kmer.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | result.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 232 - result.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] 232 + result.sort_by_key(|b| std::cmp::Reverse(b.1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/qc/kmer.rs:434:9 [INFO] [stdout] | [INFO] [stdout] 434 | indexed.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 434 - indexed.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] 434 + indexed.sort_by_key(|b| std::cmp::Reverse(b.1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/qc/length.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | lengths.sort_by(|a, b| b.0.cmp(&a.0)); // Sort by length descending [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 112 - lengths.sort_by(|a, b| b.0.cmp(&a.0)); // Sort by length descending [INFO] [stdout] 112 + lengths.sort_by_key(|b| std::cmp::Reverse(b.0)); // Sort by length descending [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/qc/length.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | lengths.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 145 - lengths.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] 145 + lengths.sort_by_key(|b| std::cmp::Reverse(b.0)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `channel_capacity` [INFO] [stdout] --> src/pipeline/executor.rs:471:13 [INFO] [stdout] | [INFO] [stdout] 471 | let channel_capacity = num_workers * CHANNEL_BUFFER_MULTIPLIER; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_channel_capacity` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual arithmetic check found [INFO] [stdout] --> src/report/html.rs:500:17 [INFO] [stdout] | [INFO] [stdout] 500 | let start = if peak > 200 { peak - 200 } else { 0 }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `peak.saturating_sub(200)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] = note: `#[warn(clippy::implicit_saturating_sub)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/trim/adapter.rs:686:33 [INFO] [stdout] | [INFO] [stdout] 686 | current_name = Some(trimmed[1..].trim().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/trim/adapter.rs:677:9 [INFO] [stdout] | [INFO] [stdout] 677 | if trimmed.starts_with('>') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 677 ~ if let Some() = trimmed.strip_prefix('>') { [INFO] [stdout] 678 | // Save previous adapter if any [INFO] [stdout] ... [INFO] [stdout] 685 | // Start new adapter [INFO] [stdout] 686 ~ current_name = Some(.trim().to_string()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/trim/overlap.rs:119:12 [INFO] [stdout] | [INFO] [stdout] 119 | if diff <= overlap_diff_limit || (diff > overlap_diff_limit && i > complete_compare_require) { [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] 119 - if diff <= overlap_diff_limit || (diff > overlap_diff_limit && i > complete_compare_require) { [INFO] [stdout] 119 + if !(diff > overlap_diff_limit && i <= complete_compare_require) { [INFO] [stdout] | [INFO] [stdout] 119 - if diff <= overlap_diff_limit || (diff > overlap_diff_limit && i > complete_compare_require) { [INFO] [stdout] 119 + if diff <= overlap_diff_limit || i > complete_compare_require { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/trim/overlap.rs:150:12 [INFO] [stdout] | [INFO] [stdout] 150 | if diff <= overlap_diff_limit || (diff > overlap_diff_limit && i > complete_compare_require) { [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] 150 - if diff <= overlap_diff_limit || (diff > overlap_diff_limit && i > complete_compare_require) { [INFO] [stdout] 150 + if !(diff > overlap_diff_limit && i <= complete_compare_require) { [INFO] [stdout] | [INFO] [stdout] 150 - if diff <= overlap_diff_limit || (diff > overlap_diff_limit && i > complete_compare_require) { [INFO] [stdout] 150 + if diff <= overlap_diff_limit || i > complete_compare_require { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `seq` [INFO] [stdout] --> src/trim/quality.rs:431:18 [INFO] [stdout] | [INFO] [stdout] 431 | for i in 0..config.window_size { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 431 - for i in 0..config.window_size { [INFO] [stdout] 431 + for in seq.iter_mut().take(config.window_size) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `seq` [INFO] [stdout] --> src/trim/quality.rs:445:22 [INFO] [stdout] | [INFO] [stdout] 445 | for j in i..i + config.window_size { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 445 - for j in i..i + config.window_size { [INFO] [stdout] 445 + for in seq.iter_mut().skip(i).take(config.window_size) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/umi/mod.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | / pub fn from_str(s: &str) -> Option { [INFO] [stdout] 54 | | match s.to_lowercase().as_str() { [INFO] [stdout] 55 | | "read1" => Some(UmiLocation::Read1), [INFO] [stdout] 56 | | "read2" => Some(UmiLocation::Read2), [INFO] [stdout] ... | [INFO] [stdout] 61 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/umi/mod.rs:311:5 [INFO] [stdout] | [INFO] [stdout] 311 | / pub fn process_paired_reads( [INFO] [stdout] 312 | | &self, [INFO] [stdout] 313 | | r1_name: &[u8], [INFO] [stdout] 314 | | r1_seq: &[u8], [INFO] [stdout] ... | [INFO] [stdout] 319 | | index_seq: Option<&[u8]>, [INFO] [stdout] 320 | | ) -> Option<((Vec, Vec, Vec), (Vec, Vec, Vec))> { [INFO] [stdout] | |___________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ReadStats` [INFO] [stdout] --> src/main.rs:16:82 [INFO] [stdout] | [INFO] [stdout] 16 | write_full_json_report, write_html_report_filtering, JsonConfig, JsonReport, ReadStats, [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: `ReadStats` [INFO] [stdout] --> src/main.rs:16:82 [INFO] [stdout] | [INFO] [stdout] 16 | write_full_json_report, write_html_report_filtering, JsonConfig, JsonReport, ReadStats, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ReadBatch` is never used [INFO] [stdout] --> src/pipeline/executor.rs:371:6 [INFO] [stdout] | [INFO] [stdout] 371 | enum ReadBatch { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ProcessedBatch` is never constructed [INFO] [stdout] --> src/pipeline/executor.rs:380:8 [INFO] [stdout] | [INFO] [stdout] 380 | struct ProcessedBatch { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `run_single` and `run_paired` are never used [INFO] [stdout] --> src/pipeline/executor.rs:442:8 [INFO] [stdout] | [INFO] [stdout] 409 | impl PipelineExecutor { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 442 | fn run_single(&self, input_path: &Path, file_idx: usize) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 659 | fn run_paired( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_worker_single` is never used [INFO] [stdout] --> src/pipeline/executor.rs:2172:4 [INFO] [stdout] | [INFO] [stdout] 2172 | fn process_worker_single( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `process_worker_paired` is never used [INFO] [stdout] --> src/pipeline/executor.rs:2219:4 [INFO] [stdout] | [INFO] [stdout] 2219 | fn process_worker_paired( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/cli.rs:1128:16 [INFO] [stdout] | [INFO] [stdout] 1128 | } else if let Some(lines) = self.split_by_lines { [INFO] [stdout] | ________________^ [INFO] [stdout] 1129 | | Some(SplitConfig { [INFO] [stdout] 1130 | | mode: SplitMode::ByLines(lines), [INFO] [stdout] 1131 | | prefix_digits: self.split_prefix_digits, [INFO] [stdout] ... | [INFO] [stdout] 1134 | | None [INFO] [stdout] 1135 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1128 ~ } else { self.split_by_lines.map(|lines| SplitConfig { [INFO] [stdout] 1129 + mode: SplitMode::ByLines(lines), [INFO] [stdout] 1130 + prefix_digits: self.split_prefix_digits, [INFO] [stdout] 1131 + }) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/correction/corrector.rs:324:5 [INFO] [stdout] | [INFO] [stdout] 324 | / fn apply_corrections_in_place( [INFO] [stdout] 325 | | &self, [INFO] [stdout] 326 | | r1_seq_out: &mut [u8], [INFO] [stdout] 327 | | r1_qual_out: &mut [u8], [INFO] [stdout] ... | [INFO] [stdout] 332 | | r2_qual_rc: &[u8], [INFO] [stdout] 333 | | ) -> CorrectionStats { [INFO] [stdout] | |________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/filter/criteria.rs:236:5 [INFO] [stdout] | [INFO] [stdout] 236 | / if config.index_filter.is_enabled() { [INFO] [stdout] 237 | | if !super::index::check_index_filter(name, &config.index_filter) { [INFO] [stdout] 238 | | return FilterDecision::FailIndex; [INFO] [stdout] 239 | | } [INFO] [stdout] 240 | | } [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] 236 ~ if config.index_filter.is_enabled() [INFO] [stdout] 237 ~ && !super::index::check_index_filter(name, &config.index_filter) { [INFO] [stdout] 238 | return FilterDecision::FailIndex; [INFO] [stdout] 239 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/io/reader.rs:145:5 [INFO] [stdout] | [INFO] [stdout] 145 | /// If false, assume plain text input. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/io/split_writer.rs:63:22 [INFO] [stdout] | [INFO] [stdout] 63 | Some((total + n_files - 1) / n_files) // Ceiling division [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `total.div_ceil(n_files)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/io/split_writer.rs:248:22 [INFO] [stdout] | [INFO] [stdout] 248 | Some((total + n_files - 1) / n_files) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `total.div_ceil(n_files)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `((40 - 33) / 10)` is never greater than `5` and has therefore no effect [INFO] [stdout] --> src/merge/merger.rs:785:29 [INFO] [stdout] | [INFO] [stdout] 785 | assert_eq!(q2, 73 + ((40 - 33) / 10).min(5)); // Max is 73, bonus from min [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((40 - 33) / 10)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_min_or_max [INFO] [stdout] = note: `#[warn(clippy::unnecessary_min_or_max)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pipeline/executor.rs:613:13 [INFO] [stdout] | [INFO] [stdout] 613 | / if self.config.output_prefix.is_some() || self.config.use_stdout { [INFO] [stdout] 614 | | if write_tx.send(batch.output).is_err() { [INFO] [stdout] 615 | | // Writer died, stop processing [INFO] [stdout] 616 | | break; [INFO] [stdout] 617 | | } [INFO] [stdout] 618 | | } [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] 613 ~ if (self.config.output_prefix.is_some() || self.config.use_stdout) { [INFO] [stdout] 614 ~ && write_tx.send(batch.output).is_err() { [INFO] [stdout] 615 | // Writer died, stop processing [INFO] [stdout] 616 | break; [INFO] [stdout] 617 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/pipeline/executor.rs:881:13 [INFO] [stdout] | [INFO] [stdout] 881 | / if self.config.output_prefix.is_some() || self.config.use_stdout { [INFO] [stdout] 882 | | if write_tx.send(batch.output).is_err() { [INFO] [stdout] 883 | | // Writer died, stop processing [INFO] [stdout] 884 | | break; [INFO] [stdout] 885 | | } [INFO] [stdout] 886 | | } [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] 881 ~ if (self.config.output_prefix.is_some() || self.config.use_stdout) { [INFO] [stdout] 882 ~ && write_tx.send(batch.output).is_err() { [INFO] [stdout] 883 | // Writer died, stop processing [INFO] [stdout] 884 | break; [INFO] [stdout] 885 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> src/pipeline/executor.rs:1243:9 [INFO] [stdout] | [INFO] [stdout] 1243 | / enum PairedWriterType { [INFO] [stdout] 1244 | | File(PairedFastqWriter), [INFO] [stdout] | | ----------------------- the largest variant contains at least 288 bytes [INFO] [stdout] 1245 | | Stdout(std::io::StdoutLock<'static>), [INFO] [stdout] | | ------------------------------------ the second-largest variant contains at least 8 bytes [INFO] [stdout] 1246 | | } [INFO] [stdout] | |_________^ the entire enum is at least 288 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] = note: `#[warn(clippy::large_enum_variant)]` on by default [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 1244 - File(PairedFastqWriter), [INFO] [stdout] 1244 + File(Box), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/pipeline/executor.rs:2172:1 [INFO] [stdout] | [INFO] [stdout] 2172 | / fn process_worker_single( [INFO] [stdout] 2173 | | rx: Receiver, [INFO] [stdout] 2174 | | tx: Sender, [INFO] [stdout] 2175 | | trim_config: &TrimConfig, [INFO] [stdout] ... | [INFO] [stdout] 2183 | | reads_received: Arc, [INFO] [stdout] 2184 | | ) -> Result<()> { [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (12/7) [INFO] [stdout] --> src/pipeline/executor.rs:2219:1 [INFO] [stdout] | [INFO] [stdout] 2219 | / fn process_worker_paired( [INFO] [stdout] 2220 | | rx: Receiver, [INFO] [stdout] 2221 | | tx: Sender, [INFO] [stdout] 2222 | | trim_config: &TrimConfig, [INFO] [stdout] ... | [INFO] [stdout] 2231 | | reads_received: Arc, [INFO] [stdout] 2232 | | ) -> Result<()> { [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/pipeline/executor.rs:2269:1 [INFO] [stdout] | [INFO] [stdout] 2269 | / fn process_single_batch( [INFO] [stdout] 2270 | | records: &[OwnedRecord], [INFO] [stdout] 2271 | | trim_config: &TrimConfig, [INFO] [stdout] 2272 | | filter_config: &FilterConfig, [INFO] [stdout] ... | [INFO] [stdout] 2277 | | overrep_sampling: u32, [INFO] [stdout] 2278 | | ) -> (Vec, FastQcStats, FastQcStats, WorkerStats) { [INFO] [stdout] | |______________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/pipeline/executor.rs:2381:1 [INFO] [stdout] | [INFO] [stdout] 2381 | / fn process_paired_batch( [INFO] [stdout] 2382 | | pairs: &[(OwnedRecord, OwnedRecord)], [INFO] [stdout] 2383 | | trim_config: &TrimConfig, [INFO] [stdout] 2384 | | filter_config: &FilterConfig, [INFO] [stdout] ... | [INFO] [stdout] 2396 | | InsertSizeEstimator, [INFO] [stdout] 2397 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SpscProducer` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> src/pipeline/spsc_queue.rs:224:5 [INFO] [stdout] | [INFO] [stdout] 224 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/qc/duplication.rs:259:9 [INFO] [stdout] | [INFO] [stdout] 259 | sorted.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 259 - sorted.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] 259 + sorted.sort_by_key(|b| std::cmp::Reverse(b.1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/qc/fast_stats.rs:595:9 [INFO] [stdout] | [INFO] [stdout] 595 | lengths.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 595 - lengths.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] 595 + lengths.sort_by_key(|b| std::cmp::Reverse(b.0)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/qc/kmer.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 136 | if (read_count.wrapping_sub(1)) % (self.sampling_rate as u64) != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!(read_count.wrapping_sub(1)).is_multiple_of(self.sampling_rate as u64)` [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: consider using `sort_by_key` [INFO] [stdout] --> src/qc/kmer.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | sorted.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 165 - sorted.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] 165 + sorted.sort_by_key(|b| std::cmp::Reverse(b.1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/qc/kmer.rs:232:9 [INFO] [stdout] | [INFO] [stdout] 232 | result.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 232 - result.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] 232 + result.sort_by_key(|b| std::cmp::Reverse(b.1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/qc/kmer.rs:434:9 [INFO] [stdout] | [INFO] [stdout] 434 | indexed.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 434 - indexed.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] 434 + indexed.sort_by_key(|b| std::cmp::Reverse(b.1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/qc/length.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | lengths.sort_by(|a, b| b.0.cmp(&a.0)); // Sort by length descending [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 112 - lengths.sort_by(|a, b| b.0.cmp(&a.0)); // Sort by length descending [INFO] [stdout] 112 + lengths.sort_by_key(|b| std::cmp::Reverse(b.0)); // Sort by length descending [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/qc/length.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | lengths.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 145 - lengths.sort_by(|a, b| b.0.cmp(&a.0)); [INFO] [stdout] 145 + lengths.sort_by_key(|b| std::cmp::Reverse(b.0)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual arithmetic check found [INFO] [stdout] --> src/report/html.rs:500:17 [INFO] [stdout] | [INFO] [stdout] 500 | let start = if peak > 200 { peak - 200 } else { 0 }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `peak.saturating_sub(200)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] = note: `#[warn(clippy::implicit_saturating_sub)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/report/mod.rs:215:9 [INFO] [stdout] | [INFO] [stdout] 215 | assert!(true); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [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: stripping a prefix manually [INFO] [stdout] --> src/trim/adapter.rs:686:33 [INFO] [stdout] | [INFO] [stdout] 686 | current_name = Some(trimmed[1..].trim().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/trim/adapter.rs:677:9 [INFO] [stdout] | [INFO] [stdout] 677 | if trimmed.starts_with('>') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 677 ~ if let Some() = trimmed.strip_prefix('>') { [INFO] [stdout] 678 | // Save previous adapter if any [INFO] [stdout] ... [INFO] [stdout] 685 | // Start new adapter [INFO] [stdout] 686 ~ current_name = Some(.trim().to_string()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `qual_scores` [INFO] [stdout] --> src/trim/long_read.rs:329:18 [INFO] [stdout] | [INFO] [stdout] 329 | for i in 300..400 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 329 - for i in 300..400 { [INFO] [stdout] 329 + for in qual_scores.iter_mut().take(400).skip(300) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `qual_scores` [INFO] [stdout] --> src/trim/long_read.rs:346:18 [INFO] [stdout] | [INFO] [stdout] 346 | for i in 40..50 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 346 - for i in 40..50 { [INFO] [stdout] 346 + for in qual_scores.iter_mut().take(50).skip(40) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/trim/overlap.rs:119:12 [INFO] [stdout] | [INFO] [stdout] 119 | if diff <= overlap_diff_limit || (diff > overlap_diff_limit && i > complete_compare_require) { [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] 119 - if diff <= overlap_diff_limit || (diff > overlap_diff_limit && i > complete_compare_require) { [INFO] [stdout] 119 + if !(diff > overlap_diff_limit && i <= complete_compare_require) { [INFO] [stdout] | [INFO] [stdout] 119 - if diff <= overlap_diff_limit || (diff > overlap_diff_limit && i > complete_compare_require) { [INFO] [stdout] 119 + if diff <= overlap_diff_limit || i > complete_compare_require { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/trim/overlap.rs:150:12 [INFO] [stdout] | [INFO] [stdout] 150 | if diff <= overlap_diff_limit || (diff > overlap_diff_limit && i > complete_compare_require) { [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] 150 - if diff <= overlap_diff_limit || (diff > overlap_diff_limit && i > complete_compare_require) { [INFO] [stdout] 150 + if !(diff > overlap_diff_limit && i <= complete_compare_require) { [INFO] [stdout] | [INFO] [stdout] 150 - if diff <= overlap_diff_limit || (diff > overlap_diff_limit && i > complete_compare_require) { [INFO] [stdout] 150 + if diff <= overlap_diff_limit || i > complete_compare_require { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `seq` [INFO] [stdout] --> src/trim/quality.rs:431:18 [INFO] [stdout] | [INFO] [stdout] 431 | for i in 0..config.window_size { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 431 - for i in 0..config.window_size { [INFO] [stdout] 431 + for in seq.iter_mut().take(config.window_size) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `seq` [INFO] [stdout] --> src/trim/quality.rs:445:22 [INFO] [stdout] | [INFO] [stdout] 445 | for j in i..i + config.window_size { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 445 - for j in i..i + config.window_size { [INFO] [stdout] 445 + for in seq.iter_mut().skip(i).take(config.window_size) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `from_str` can be confused for the standard trait method `std::str::FromStr::from_str` [INFO] [stdout] --> src/umi/mod.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | / pub fn from_str(s: &str) -> Option { [INFO] [stdout] 54 | | match s.to_lowercase().as_str() { [INFO] [stdout] 55 | | "read1" => Some(UmiLocation::Read1), [INFO] [stdout] 56 | | "read2" => Some(UmiLocation::Read2), [INFO] [stdout] ... | [INFO] [stdout] 61 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::str::FromStr` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/umi/mod.rs:311:5 [INFO] [stdout] | [INFO] [stdout] 311 | / pub fn process_paired_reads( [INFO] [stdout] 312 | | &self, [INFO] [stdout] 313 | | r1_name: &[u8], [INFO] [stdout] 314 | | r1_seq: &[u8], [INFO] [stdout] ... | [INFO] [stdout] 319 | | index_seq: Option<&[u8]>, [INFO] [stdout] 320 | | ) -> Option<((Vec, Vec, Vec), (Vec, Vec, Vec))> { [INFO] [stdout] | |___________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this assertion is always `true` [INFO] [stdout] --> src/lib.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | assert!(true); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove the assertion [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/qc/fast_stats.rs:954:27 [INFO] [stdout] | [INFO] [stdout] 954 | stats.update_fast(&vec![b'A'; 100], &make_qual(&vec![40; 100])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[b'A'; 100]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/qc/fast_stats.rs:954:56 [INFO] [stdout] | [INFO] [stdout] 954 | stats.update_fast(&vec![b'A'; 100], &make_qual(&vec![40; 100])); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: you can use a slice directly: `&[40; 100]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/qc/fast_stats.rs:955:27 [INFO] [stdout] | [INFO] [stdout] 955 | stats.update_fast(&vec![b'A'; 200], &make_qual(&vec![40; 200])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[b'A'; 200]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/qc/fast_stats.rs:955:56 [INFO] [stdout] | [INFO] [stdout] 955 | stats.update_fast(&vec![b'A'; 200], &make_qual(&vec![40; 200])); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: you can use a slice directly: `&[40; 200]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/qc/stats.rs:538:35 [INFO] [stdout] | [INFO] [stdout] 538 | stats.update(&make_record(&vec![b'A'; 100], &vec![b'I'; 100])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[b'A'; 100]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/qc/stats.rs:538:53 [INFO] [stdout] | [INFO] [stdout] 538 | stats.update(&make_record(&vec![b'A'; 100], &vec![b'I'; 100])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[b'I'; 100]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/qc/stats.rs:539:35 [INFO] [stdout] | [INFO] [stdout] 539 | stats.update(&make_record(&vec![b'A'; 200], &vec![b'I'; 200])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[b'A'; 200]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/qc/stats.rs:539:53 [INFO] [stdout] | [INFO] [stdout] 539 | stats.update(&make_record(&vec![b'A'; 200], &vec![b'I'; 200])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[b'I'; 200]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 35.09s [INFO] running `Command { std: "docker" "inspect" "a8efcff8fbd2267717f501ee2e745b0a36f509e4b2444c4d9bf3366b2534a282", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a8efcff8fbd2267717f501ee2e745b0a36f509e4b2444c4d9bf3366b2534a282", kill_on_drop: false }` [INFO] [stdout] a8efcff8fbd2267717f501ee2e745b0a36f509e4b2444c4d9bf3366b2534a282