[INFO] fetching crate frag_gene_scan_rs 1.1.0... [INFO] linting frag_gene_scan_rs-1.1.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate frag_gene_scan_rs 1.1.0 into /workspace/builds/worker-1-tc1/source [INFO] started tweaking crates.io crate frag_gene_scan_rs 1.1.0 [INFO] finished tweaking crates.io crate frag_gene_scan_rs 1.1.0 [INFO] tweaked toml for crates.io crate frag_gene_scan_rs 1.1.0 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate frag_gene_scan_rs 1.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 frag_gene_scan_rs 1.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] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded thiserror v1.0.26 [INFO] [stderr] Downloaded thiserror-impl v1.0.26 [INFO] [stderr] Downloaded serde_derive v1.0.129 [INFO] [stderr] Downloaded strum v0.21.0 [INFO] [stderr] Downloaded strum_macros v0.21.1 [INFO] [stderr] Downloaded crossbeam-queue v0.3.2 [INFO] [stderr] Downloaded crossbeam v0.8.1 [INFO] [stderr] Downloaded memoffset v0.6.4 [INFO] [stderr] Downloaded buf_redux v0.8.4 [INFO] [stderr] Downloaded anyhow v1.0.43 [INFO] [stderr] Downloaded serde v1.0.129 [INFO] [stderr] Downloaded proc-macro2 v1.0.28 [INFO] [stderr] Downloaded seq_io v0.3.1 [INFO] [stderr] Downloaded syn v1.0.75 [INFO] [stderr] Downloaded libc v0.2.100 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 296f313a79cb91371ab4ebe65da3ef50ba43760ec1f985a4f239b0dbbefed564 [INFO] running `Command { std: "docker" "start" "-a" "296f313a79cb91371ab4ebe65da3ef50ba43760ec1f985a4f239b0dbbefed564", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "296f313a79cb91371ab4ebe65da3ef50ba43760ec1f985a4f239b0dbbefed564", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "296f313a79cb91371ab4ebe65da3ef50ba43760ec1f985a4f239b0dbbefed564", kill_on_drop: false }` [INFO] [stdout] 296f313a79cb91371ab4ebe65da3ef50ba43760ec1f985a4f239b0dbbefed564 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 615a3add8c5c1aca466355c635039f071c87bdff07e05602edce2ffcb54384de [INFO] running `Command { std: "docker" "start" "-a" "615a3add8c5c1aca466355c635039f071c87bdff07e05602edce2ffcb54384de", kill_on_drop: false }` [INFO] [stderr] Compiling crossbeam-utils v0.8.5 [INFO] [stderr] Compiling proc-macro2 v1.0.28 [INFO] [stderr] Compiling memoffset v0.6.4 [INFO] [stderr] Compiling crossbeam-epoch v0.9.5 [INFO] [stderr] Compiling syn v1.0.75 [INFO] [stderr] Compiling libc v0.2.100 [INFO] [stderr] Compiling rayon-core v1.9.1 [INFO] [stderr] Compiling crossbeam-queue v0.3.2 [INFO] [stderr] Compiling serde_derive v1.0.129 [INFO] [stderr] Compiling serde v1.0.129 [INFO] [stderr] Compiling rayon v1.5.1 [INFO] [stderr] Checking safemem v0.3.3 [INFO] [stderr] Compiling unicode-segmentation v1.8.0 [INFO] [stderr] Compiling anyhow v1.0.43 [INFO] [stderr] Checking buf_redux v0.8.4 [INFO] [stderr] Checking strum v0.21.0 [INFO] [stderr] Checking crossbeam-channel v0.5.1 [INFO] [stderr] Compiling heck v0.3.3 [INFO] [stderr] Checking crossbeam-deque v0.8.1 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking crossbeam v0.8.1 [INFO] [stderr] Checking clap v2.33.3 [INFO] [stderr] Compiling thiserror-impl v1.0.26 [INFO] [stderr] Compiling strum_macros v0.21.1 [INFO] [stderr] Checking thiserror v1.0.26 [INFO] [stderr] Checking seq_io v0.3.1 [INFO] [stderr] Checking frag_gene_scan_rs v1.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/gene.rs:15:13 [INFO] [stdout] | [INFO] [stdout] 15 | head: head, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `head` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/viterbi.rs:710:25 [INFO] [stdout] | [INFO] [stdout] 710 | frame: frame, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `frame` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/viterbi.rs:758:25 [INFO] [stdout] | [INFO] [stdout] 758 | frame: frame, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `frame` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/gene.rs:15:13 [INFO] [stdout] | [INFO] [stdout] 15 | head: head, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `head` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/viterbi.rs:710:25 [INFO] [stdout] | [INFO] [stdout] 710 | frame: frame, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `frame` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/viterbi.rs:758:25 [INFO] [stdout] | [INFO] [stdout] 758 | frame: frame, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `frame` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/dna.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | / match self { [INFO] [stdout] 50 | | Nuc::Ai | Nuc::Ci | Nuc::Gi | Nuc::Ti | Nuc::Ni => true, [INFO] [stdout] 51 | | _ => false, [INFO] [stdout] 52 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 49 - match self { [INFO] [stdout] 50 - Nuc::Ai | Nuc::Ci | Nuc::Gi | Nuc::Ti | Nuc::Ni => true, [INFO] [stdout] 51 - _ => false, [INFO] [stdout] 52 - } [INFO] [stdout] 49 + matches!(self, Nuc::Ai | Nuc::Ci | Nuc::Gi | Nuc::Ti | Nuc::Ni) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/gene.rs:54:31 [INFO] [stdout] | [INFO] [stdout] 54 | gene.gff(buf, &head); [INFO] [stdout] | ^^^^^ help: change this to: `head` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/gene.rs:127:48 [INFO] [stdout] | [INFO] [stdout] 127 | pub fn dna(&self, buf: &mut Vec, head: &Vec, formatted: bool) -> Result<(), GeneError> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 127 - pub fn dna(&self, buf: &mut Vec, head: &Vec, formatted: bool) -> Result<(), GeneError> { [INFO] [stdout] 127 + pub fn dna(&self, buf: &mut Vec, head: &[u8], formatted: bool) -> Result<(), GeneError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/gene.rs:164:15 [INFO] [stdout] | [INFO] [stdout] 164 | head: &Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 164 - head: &Vec, [INFO] [stdout] 164 + head: &[u8], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/gene.rs:167:19 [INFO] [stdout] | [INFO] [stdout] 167 | let dna = self [INFO] [stdout] | ___________________^ [INFO] [stdout] 168 | | .dna [INFO] [stdout] 169 | | .iter() [INFO] [stdout] 170 | | .filter(|n| !n.is_insertion()) [INFO] [stdout] 171 | | .map(|&n| n) [INFO] [stdout] | |________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] help: consider calling the dedicated `copied` method [INFO] [stdout] | [INFO] [stdout] 167 ~ let dna = self [INFO] [stdout] 168 + .dna [INFO] [stdout] 169 + .iter() [INFO] [stdout] 170 + .filter(|n| !n.is_insertion()).copied() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `Box::new(_)` of default value [INFO] [stdout] --> src/hmm.rs:128:35 [INFO] [stdout] | [INFO] [stdout] 128 | let mut global: Box = Box::new(Default::default()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `Box::default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_default [INFO] [stdout] = note: `#[warn(clippy::box_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:197:15 [INFO] [stdout] | [INFO] [stdout] 197 | filename: &PathBuf, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 197 - filename: &PathBuf, [INFO] [stdout] 197 + filename: &Path, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:280:31 [INFO] [stdout] | [INFO] [stdout] 280 | fn read_m_transitions(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 280 - fn read_m_transitions(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] 280 + fn read_m_transitions(locals: &mut [Local], filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cg` is only used to index `locals` [INFO] [stdout] --> src/hmm.rs:282:15 [INFO] [stdout] | [INFO] [stdout] 282 | for cg in 0..(CG_MAX - CG_MIN) { [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] 282 - for cg in 0..(CG_MAX - CG_MIN) { [INFO] [stdout] 282 + for in locals.iter_mut().take((CG_MAX - CG_MIN)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `e` is used to index `v` [INFO] [stdout] --> src/hmm.rs:288:26 [INFO] [stdout] | [INFO] [stdout] 288 | for e in 0..ACGT { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 288 - for e in 0..ACGT { [INFO] [stdout] 288 + for (e, ) in v.iter().enumerate().take(ACGT) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:299:13 [INFO] [stdout] | [INFO] [stdout] 299 | locals: &mut Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 299 - locals: &mut Vec, [INFO] [stdout] 299 + locals: &mut [Local], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cg` is only used to index `locals` [INFO] [stdout] --> src/hmm.rs:303:15 [INFO] [stdout] | [INFO] [stdout] 303 | for cg in 0..(CG_MAX - CG_MIN) { [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] 303 - for cg in 0..(CG_MAX - CG_MIN) { [INFO] [stdout] 303 + for in locals.iter_mut().take((CG_MAX - CG_MIN)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `e` is used to index `v` [INFO] [stdout] --> src/hmm.rs:309:26 [INFO] [stdout] | [INFO] [stdout] 309 | for e in 0..ACGT { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 309 - for e in 0..ACGT { [INFO] [stdout] 309 + for (e, ) in v.iter().enumerate().take(ACGT) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:319:27 [INFO] [stdout] | [INFO] [stdout] 319 | fn read_noncoding(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 319 - fn read_noncoding(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] 319 + fn read_noncoding(locals: &mut [Local], filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cg` is only used to index `locals` [INFO] [stdout] --> src/hmm.rs:321:15 [INFO] [stdout] | [INFO] [stdout] 321 | for cg in 0..(CG_MAX - CG_MIN) { [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] 321 - for cg in 0..(CG_MAX - CG_MIN) { [INFO] [stdout] 321 + for in locals.iter_mut().take((CG_MAX - CG_MIN)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `e2` is used to index `v` [INFO] [stdout] --> src/hmm.rs:326:23 [INFO] [stdout] | [INFO] [stdout] 326 | for e2 in 0..ACGT { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 326 - for e2 in 0..ACGT { [INFO] [stdout] 326 + for (e2, ) in v.iter().enumerate().take(ACGT) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:335:23 [INFO] [stdout] | [INFO] [stdout] 335 | fn read_start(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 335 - fn read_start(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] 335 + fn read_start(locals: &mut [Local], filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cg` is only used to index `locals` [INFO] [stdout] --> src/hmm.rs:337:15 [INFO] [stdout] | [INFO] [stdout] 337 | for cg in 0..(CG_MAX - CG_MIN) { [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] 337 - for cg in 0..(CG_MAX - CG_MIN) { [INFO] [stdout] 337 + for in locals.iter_mut().take((CG_MAX - CG_MIN)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is used to index `v` [INFO] [stdout] --> src/hmm.rs:342:22 [INFO] [stdout] | [INFO] [stdout] 342 | for k in 0..TRI_ACGT { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 342 - for k in 0..TRI_ACGT { [INFO] [stdout] 342 + for (k, ) in v.iter().enumerate().take(TRI_ACGT) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:351:23 [INFO] [stdout] | [INFO] [stdout] 351 | fn read_stop1(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 351 - fn read_stop1(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] 351 + fn read_stop1(locals: &mut [Local], filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cg` is only used to index `locals` [INFO] [stdout] --> src/hmm.rs:353:15 [INFO] [stdout] | [INFO] [stdout] 353 | for cg in 0..(CG_MAX - CG_MIN) { [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] 353 - for cg in 0..(CG_MAX - CG_MIN) { [INFO] [stdout] 353 + for in locals.iter_mut().take((CG_MAX - CG_MIN)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is used to index `v` [INFO] [stdout] --> src/hmm.rs:358:22 [INFO] [stdout] | [INFO] [stdout] 358 | for k in 0..TRI_ACGT { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 358 - for k in 0..TRI_ACGT { [INFO] [stdout] 358 + for (k, ) in v.iter().enumerate().take(TRI_ACGT) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:367:22 [INFO] [stdout] | [INFO] [stdout] 367 | fn read_stop(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 367 - fn read_stop(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] 367 + fn read_stop(locals: &mut [Local], filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cg` is only used to index `locals` [INFO] [stdout] --> src/hmm.rs:369:15 [INFO] [stdout] | [INFO] [stdout] 369 | for cg in 0..(CG_MAX - CG_MIN) { [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] 369 - for cg in 0..(CG_MAX - CG_MIN) { [INFO] [stdout] 369 + for in locals.iter_mut().take((CG_MAX - CG_MIN)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is used to index `v` [INFO] [stdout] --> src/hmm.rs:374:22 [INFO] [stdout] | [INFO] [stdout] 374 | for k in 0..TRI_ACGT { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 374 - for k in 0..TRI_ACGT { [INFO] [stdout] 374 + for (k, ) in v.iter().enumerate().take(TRI_ACGT) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:383:24 [INFO] [stdout] | [INFO] [stdout] 383 | fn read_start1(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 383 - fn read_start1(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] 383 + fn read_start1(locals: &mut [Local], filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cg` is only used to index `locals` [INFO] [stdout] --> src/hmm.rs:385:15 [INFO] [stdout] | [INFO] [stdout] 385 | for cg in 0..(CG_MAX - CG_MIN) { [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] 385 - for cg in 0..(CG_MAX - CG_MIN) { [INFO] [stdout] 385 + for in locals.iter_mut().take((CG_MAX - CG_MIN)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is used to index `v` [INFO] [stdout] --> src/hmm.rs:390:22 [INFO] [stdout] | [INFO] [stdout] 390 | for k in 0..TRI_ACGT { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 390 - for k in 0..TRI_ACGT { [INFO] [stdout] 390 + for (k, ) in v.iter().enumerate().take(TRI_ACGT) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:399:21 [INFO] [stdout] | [INFO] [stdout] 399 | fn read_pwm(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 399 - fn read_pwm(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] 399 + fn read_pwm(locals: &mut [Local], filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cg` is only used to index `locals` [INFO] [stdout] --> src/hmm.rs:402:15 [INFO] [stdout] | [INFO] [stdout] 402 | for cg in 0..(CG_MAX - CG_MIN) { [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] 402 - for cg in 0..(CG_MAX - CG_MIN) { [INFO] [stdout] 402 + for in locals.iter_mut().take((CG_MAX - CG_MIN)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `v` [INFO] [stdout] --> src/hmm.rs:406:18 [INFO] [stdout] | [INFO] [stdout] 406 | for j in 0..PERIOD { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 406 - for j in 0..PERIOD { [INFO] [stdout] 406 + for (j, ) in v.iter().enumerate().take(PERIOD) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `v` [INFO] [stdout] --> src/hmm.rs:412:18 [INFO] [stdout] | [INFO] [stdout] 412 | for j in 0..PERIOD { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 412 - for j in 0..PERIOD { [INFO] [stdout] 412 + for (j, ) in v.iter().enumerate().take(PERIOD) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `v` [INFO] [stdout] --> src/hmm.rs:418:18 [INFO] [stdout] | [INFO] [stdout] 418 | for j in 0..PERIOD { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 418 - for j in 0..PERIOD { [INFO] [stdout] 418 + for (j, ) in v.iter().enumerate().take(PERIOD) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `v` [INFO] [stdout] --> src/hmm.rs:424:18 [INFO] [stdout] | [INFO] [stdout] 424 | for j in 0..PERIOD { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 424 - for j in 0..PERIOD { [INFO] [stdout] 424 + for (j, ) in v.iter().enumerate().take(PERIOD) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:17:17 [INFO] [stdout] | [INFO] [stdout] 17 | build_genes(&local, head, seq, whole_genome, vpath, alpha) [INFO] [stdout] | ^^^^^^ help: change this to: `local` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | && ((seq[1] == A && seq[2] == A) [INFO] [stdout] | _____________^ [INFO] [stdout] 46 | | || (seq[1] == A && seq[2] == G) [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] 45 - && ((seq[1] == A && seq[2] == A) [INFO] [stdout] 46 - || (seq[1] == A && seq[2] == G) [INFO] [stdout] 45 + && (!(seq[1] != A || seq[2] != A && seq[2] != G) [INFO] [stdout] | [INFO] [stdout] 45 - && ((seq[1] == A && seq[2] == A) [INFO] [stdout] 46 - || (seq[1] == A && seq[2] == G) [INFO] [stdout] 45 + && ((seq[2] == G || seq[2] == A) && seq[1] == A [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | && ((seq[1] == T && seq[0] == T) [INFO] [stdout] | _____________^ [INFO] [stdout] 73 | | || (seq[1] == T && seq[0] == C) [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] 72 - && ((seq[1] == T && seq[0] == T) [INFO] [stdout] 73 - || (seq[1] == T && seq[0] == C) [INFO] [stdout] 72 + && (!(seq[1] != T || seq[0] != T && seq[0] != C) [INFO] [stdout] | [INFO] [stdout] 72 - && ((seq[1] == T && seq[0] == T) [INFO] [stdout] 73 - || (seq[1] == T && seq[0] == C) [INFO] [stdout] 72 + && ((seq[0] == C || seq[0] == T) && seq[1] == T [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:204:17 [INFO] [stdout] | [INFO] [stdout] 204 | && ((seq[t - 2] == T && seq[t - 3] == T) [INFO] [stdout] | _________________^ [INFO] [stdout] 205 | | || (seq[t - 2] == T && seq[t - 3] == C) [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] 204 - && ((seq[t - 2] == T && seq[t - 3] == T) [INFO] [stdout] 205 - || (seq[t - 2] == T && seq[t - 3] == C) [INFO] [stdout] 204 + && (!(seq[t - 2] != T || seq[t - 3] != T && seq[t - 3] != C) [INFO] [stdout] | [INFO] [stdout] 204 - && ((seq[t - 2] == T && seq[t - 3] == T) [INFO] [stdout] 205 - || (seq[t - 2] == T && seq[t - 3] == C) [INFO] [stdout] 204 + && ((seq[t - 3] == C || seq[t - 3] == T) && seq[t - 2] == T [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:243:17 [INFO] [stdout] | [INFO] [stdout] 243 | && ((seq[t - 2] == T && seq[t - 3] == T) [INFO] [stdout] | _________________^ [INFO] [stdout] 244 | | || (seq[t - 2] == T && seq[t - 3] == C) [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] 243 - && ((seq[t - 2] == T && seq[t - 3] == T) [INFO] [stdout] 244 - || (seq[t - 2] == T && seq[t - 3] == C) [INFO] [stdout] 243 + && (!(seq[t - 2] != T || seq[t - 3] != T && seq[t - 3] != C) [INFO] [stdout] | [INFO] [stdout] 243 - && ((seq[t - 2] == T && seq[t - 3] == T) [INFO] [stdout] 244 - || (seq[t - 2] == T && seq[t - 3] == C) [INFO] [stdout] 243 + && ((seq[t - 3] == C || seq[t - 3] == T) && seq[t - 2] == T [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:312:21 [INFO] [stdout] | [INFO] [stdout] 312 | && ((seq[t + 1] == A && seq[t + 2] == A) [INFO] [stdout] | _____________________^ [INFO] [stdout] 313 | | || (seq[t + 1] == A && seq[t + 2] == G) [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] 312 - && ((seq[t + 1] == A && seq[t + 2] == A) [INFO] [stdout] 313 - || (seq[t + 1] == A && seq[t + 2] == G) [INFO] [stdout] 312 + && (!(seq[t + 1] != A || seq[t + 2] != A && seq[t + 2] != G) [INFO] [stdout] | [INFO] [stdout] 312 - && ((seq[t + 1] == A && seq[t + 2] == A) [INFO] [stdout] 313 - || (seq[t + 1] == A && seq[t + 2] == G) [INFO] [stdout] 312 + && ((seq[t + 2] == G || seq[t + 2] == A) && seq[t + 1] == A [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:373:21 [INFO] [stdout] | [INFO] [stdout] 373 | && ((seq[t + 1] == T && seq[t] == T) [INFO] [stdout] | _____________________^ [INFO] [stdout] 374 | | || (seq[t + 1] == T && seq[t] == C) [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] 373 - && ((seq[t + 1] == T && seq[t] == T) [INFO] [stdout] 374 - || (seq[t + 1] == T && seq[t] == C) [INFO] [stdout] 373 + && (!(seq[t + 1] != T || seq[t] != T && seq[t] != C) [INFO] [stdout] | [INFO] [stdout] 373 - && ((seq[t + 1] == T && seq[t] == T) [INFO] [stdout] 374 - || (seq[t + 1] == T && seq[t] == C) [INFO] [stdout] 373 + && ((seq[t] == C || seq[t] == T) && seq[t + 1] == T [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:119:65 [INFO] [stdout] | [INFO] [stdout] 119 | #[rustfmt::skip] from_i_to_m(&mut alpha, &mut path, &seq, temp_i[5], global, t, hmm::State::I6, hmm::State::M1); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:132:65 [INFO] [stdout] | [INFO] [stdout] 132 | #[rustfmt::skip] from_i_to_m(&mut alpha, &mut path, &seq, temp_i[0], global, t, hmm::State::I1, hmm::State::M2); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:145:65 [INFO] [stdout] | [INFO] [stdout] 145 | #[rustfmt::skip] from_i_to_m(&mut alpha, &mut path, &seq, temp_i[1], global, t, hmm::State::I2, hmm::State::M3); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:158:65 [INFO] [stdout] | [INFO] [stdout] 158 | #[rustfmt::skip] from_i_to_m(&mut alpha, &mut path, &seq, temp_i[2], global, t, hmm::State::I3, hmm::State::M4); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:171:65 [INFO] [stdout] | [INFO] [stdout] 171 | #[rustfmt::skip] from_i_to_m(&mut alpha, &mut path, &seq, temp_i[3], global, t, hmm::State::I4, hmm::State::M5); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:184:65 [INFO] [stdout] | [INFO] [stdout] 184 | #[rustfmt::skip] from_i_to_m(&mut alpha, &mut path, &seq, temp_i[4], global, t, hmm::State::I5, hmm::State::M6); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:218:67 [INFO] [stdout] | [INFO] [stdout] 218 | #[rustfmt::skip] from_i1_to_m1(&mut alpha, &mut path, &seq, temp_i_1[5], global, t, hmm::State::I6r, hmm::State::M1r); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:229:63 [INFO] [stdout] | [INFO] [stdout] 229 | #[rustfmt::skip] from_i1_to_m1(&mut alpha, &mut path, &seq, temp_i_1[0], global, t, hmm::State::I1r, hmm::State::M2r); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:239:63 [INFO] [stdout] | [INFO] [stdout] 239 | #[rustfmt::skip] from_i1_to_m1(&mut alpha, &mut path, &seq, temp_i_1[1], global, t, hmm::State::I2r, hmm::State::M3r); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:257:67 [INFO] [stdout] | [INFO] [stdout] 257 | #[rustfmt::skip] from_i1_to_m1(&mut alpha, &mut path, &seq, temp_i_1[2], global, t, hmm::State::I3r, hmm::State::M4r); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:268:63 [INFO] [stdout] | [INFO] [stdout] 268 | #[rustfmt::skip] from_i1_to_m1(&mut alpha, &mut path, &seq, temp_i_1[3], global, t, hmm::State::I4r, hmm::State::M5r); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:278:63 [INFO] [stdout] | [INFO] [stdout] 278 | #[rustfmt::skip] from_i1_to_m1(&mut alpha, &mut path, &seq, temp_i_1[4], global, t, hmm::State::I5r, hmm::State::M6r); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/viterbi.rs:619:13 [INFO] [stdout] | [INFO] [stdout] 619 | / if vpath[t] == hmm::State::M1r || vpath[t] == hmm::State::M4r { [INFO] [stdout] 620 | | if t > 2 { [INFO] [stdout] 621 | | dna_start_t_withstop = t - 2; [INFO] [stdout] 622 | | dna.splice(0..0, seq[t - 3..t].iter().cloned()); [INFO] [stdout] 623 | | } [INFO] [stdout] 624 | | } [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] 619 ~ if (vpath[t] == hmm::State::M1r || vpath[t] == hmm::State::M4r) { [INFO] [stdout] 620 ~ && t > 2 { [INFO] [stdout] 621 | dna_start_t_withstop = t - 2; [INFO] [stdout] 622 | dna.splice(0..0, seq[t - 3..t].iter().cloned()); [INFO] [stdout] 623 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/viterbi.rs:810:1 [INFO] [stdout] | [INFO] [stdout] 810 | / fn from_m_to_m( [INFO] [stdout] 811 | | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 812 | | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 813 | | global: &hmm::Global, [INFO] [stdout] ... | [INFO] [stdout] 818 | | last_m: f64, [INFO] [stdout] 819 | | ) { [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: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:811:12 [INFO] [stdout] | [INFO] [stdout] 811 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 811 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 811 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:812:11 [INFO] [stdout] | [INFO] [stdout] 812 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 812 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 812 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/viterbi.rs:825:1 [INFO] [stdout] | [INFO] [stdout] 825 | / fn from_d_to_m( [INFO] [stdout] 826 | | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 827 | | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 828 | | global: &hmm::Global, [INFO] [stdout] ... | [INFO] [stdout] 833 | | emission: f64, [INFO] [stdout] 834 | | ) { [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: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:826:12 [INFO] [stdout] | [INFO] [stdout] 826 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 826 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 826 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:827:11 [INFO] [stdout] | [INFO] [stdout] 827 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 827 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 827 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:851:12 [INFO] [stdout] | [INFO] [stdout] 851 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 851 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 851 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:852:11 [INFO] [stdout] | [INFO] [stdout] 852 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 852 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 852 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:867:12 [INFO] [stdout] | [INFO] [stdout] 867 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 867 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 867 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:868:11 [INFO] [stdout] | [INFO] [stdout] 868 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 868 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 868 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:894:13 [INFO] [stdout] | [INFO] [stdout] 894 | && ((seq[t] == A && seq[t + 1] == A) [INFO] [stdout] | _____________^ [INFO] [stdout] 895 | | || (seq[t] == A && seq[t + 1] == G) [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] 894 - && ((seq[t] == A && seq[t + 1] == A) [INFO] [stdout] 895 - || (seq[t] == A && seq[t + 1] == G) [INFO] [stdout] 894 + && (!(seq[t] != A || seq[t + 1] != A && seq[t + 1] != G) [INFO] [stdout] | [INFO] [stdout] 894 - && ((seq[t] == A && seq[t + 1] == A) [INFO] [stdout] 895 - || (seq[t] == A && seq[t + 1] == G) [INFO] [stdout] 894 + && ((seq[t + 1] == G || seq[t + 1] == A) && seq[t] == A [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:901:13 [INFO] [stdout] | [INFO] [stdout] 901 | && ((seq[temp_i] == A && seq[t] == A) [INFO] [stdout] | _____________^ [INFO] [stdout] 902 | | || (seq[temp_i] == A && seq[t] == G) [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] 901 - && ((seq[temp_i] == A && seq[t] == A) [INFO] [stdout] 902 - || (seq[temp_i] == A && seq[t] == G) [INFO] [stdout] 901 + && (!(seq[temp_i] != A || seq[t] != A && seq[t] != G) [INFO] [stdout] | [INFO] [stdout] 901 - && ((seq[temp_i] == A && seq[t] == A) [INFO] [stdout] 902 - || (seq[temp_i] == A && seq[t] == G) [INFO] [stdout] 901 + && ((seq[t] == G || seq[t] == A) && seq[temp_i] == A [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/viterbi.rs:879:1 [INFO] [stdout] | [INFO] [stdout] 879 | / fn from_i_to_m( [INFO] [stdout] 880 | | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 881 | | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 882 | | seq: &Vec, [INFO] [stdout] ... | [INFO] [stdout] 887 | | to_m: hmm::State, [INFO] [stdout] 888 | | ) { [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: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:880:12 [INFO] [stdout] | [INFO] [stdout] 880 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 880 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 880 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:881:11 [INFO] [stdout] | [INFO] [stdout] 881 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 881 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 881 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:882:10 [INFO] [stdout] | [INFO] [stdout] 882 | seq: &Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 882 - seq: &Vec, [INFO] [stdout] 882 + seq: &[Nuc], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/viterbi.rs:890:14 [INFO] [stdout] | [INFO] [stdout] 890 | if t < 2 { [INFO] [stdout] | ______________^ [INFO] [stdout] 891 | | } else if (to_m == hmm::State::M2 || to_m == hmm::State::M5) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/viterbi.rs:897:5 [INFO] [stdout] | [INFO] [stdout] 897 | / { [INFO] [stdout] 898 | | } else if (to_m == hmm::State::M3 || to_m == hmm::State::M6) [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/viterbi.rs:897:5 [INFO] [stdout] | [INFO] [stdout] 897 | / { [INFO] [stdout] 898 | | } else if (to_m == hmm::State::M3 || to_m == hmm::State::M6) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/viterbi.rs:904:5 [INFO] [stdout] | [INFO] [stdout] 904 | / { [INFO] [stdout] 905 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:916:12 [INFO] [stdout] | [INFO] [stdout] 916 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 916 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 916 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:917:11 [INFO] [stdout] | [INFO] [stdout] 917 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 917 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 917 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/viterbi.rs:929:1 [INFO] [stdout] | [INFO] [stdout] 929 | / fn from_m_to_i( [INFO] [stdout] 930 | | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 931 | | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 932 | | temp_i: &mut usize, [INFO] [stdout] ... | [INFO] [stdout] 939 | | last_i: f64, [INFO] [stdout] 940 | | ) { [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: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:930:12 [INFO] [stdout] | [INFO] [stdout] 930 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 930 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 930 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:931:11 [INFO] [stdout] | [INFO] [stdout] 931 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 931 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 931 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:965:13 [INFO] [stdout] | [INFO] [stdout] 965 | && ((seq[t] == T && seq[temp_i_1] == T) [INFO] [stdout] | _____________^ [INFO] [stdout] 966 | | || (seq[t] == T && seq[temp_i_1] == C) [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] 965 - && ((seq[t] == T && seq[temp_i_1] == T) [INFO] [stdout] 966 - || (seq[t] == T && seq[temp_i_1] == C) [INFO] [stdout] 965 + && (!(seq[t] != T || seq[temp_i_1] != T && seq[temp_i_1] != C) [INFO] [stdout] | [INFO] [stdout] 965 - && ((seq[t] == T && seq[temp_i_1] == T) [INFO] [stdout] 966 - || (seq[t] == T && seq[temp_i_1] == C) [INFO] [stdout] 965 + && ((seq[temp_i_1] == C || seq[temp_i_1] == T) && seq[t] == T [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:972:13 [INFO] [stdout] | [INFO] [stdout] 972 | && ((seq[temp_i_1] == T && seq[temp_i_1 - 1] == T) [INFO] [stdout] | _____________^ [INFO] [stdout] 973 | | || (seq[temp_i_1] == T && seq[temp_i_1 - 1] == C) [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] 972 - && ((seq[temp_i_1] == T && seq[temp_i_1 - 1] == T) [INFO] [stdout] 973 - || (seq[temp_i_1] == T && seq[temp_i_1 - 1] == C) [INFO] [stdout] 972 + && (!(seq[temp_i_1] != T || seq[temp_i_1 - 1] != T && seq[temp_i_1 - 1] != C) [INFO] [stdout] | [INFO] [stdout] 972 - && ((seq[temp_i_1] == T && seq[temp_i_1 - 1] == T) [INFO] [stdout] 973 - || (seq[temp_i_1] == T && seq[temp_i_1 - 1] == C) [INFO] [stdout] 972 + && ((seq[temp_i_1 - 1] == C || seq[temp_i_1 - 1] == T) && seq[temp_i_1] == T [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/viterbi.rs:950:1 [INFO] [stdout] | [INFO] [stdout] 950 | / fn from_i1_to_m1( [INFO] [stdout] 951 | | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 952 | | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 953 | | seq: &Vec, [INFO] [stdout] ... | [INFO] [stdout] 958 | | to_m: hmm::State, [INFO] [stdout] 959 | | ) { [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: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:951:12 [INFO] [stdout] | [INFO] [stdout] 951 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 951 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 951 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:952:11 [INFO] [stdout] | [INFO] [stdout] 952 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 952 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 952 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:953:10 [INFO] [stdout] | [INFO] [stdout] 953 | seq: &Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 953 - seq: &Vec, [INFO] [stdout] 953 + seq: &[Nuc], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/viterbi.rs:961:14 [INFO] [stdout] | [INFO] [stdout] 961 | if t < 2 { [INFO] [stdout] | ______________^ [INFO] [stdout] 962 | | } else if (to_m == hmm::State::M2r || to_m == hmm::State::M5r) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/viterbi.rs:968:5 [INFO] [stdout] | [INFO] [stdout] 968 | / { [INFO] [stdout] 969 | | } else if (to_m == hmm::State::M3r || to_m == hmm::State::M6r) [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/viterbi.rs:968:5 [INFO] [stdout] | [INFO] [stdout] 968 | / { [INFO] [stdout] 969 | | } else if (to_m == hmm::State::M3r || to_m == hmm::State::M6r) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/viterbi.rs:975:5 [INFO] [stdout] | [INFO] [stdout] 975 | / { [INFO] [stdout] 976 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:987:12 [INFO] [stdout] | [INFO] [stdout] 987 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 987 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 987 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:988:11 [INFO] [stdout] | [INFO] [stdout] 988 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 988 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 988 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:1002:12 [INFO] [stdout] | [INFO] [stdout] 1002 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1002 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 1002 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:1003:11 [INFO] [stdout] | [INFO] [stdout] 1003 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1003 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 1003 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/viterbi.rs:1017:22 [INFO] [stdout] | [INFO] [stdout] 1017 | values[2] * (-1.0 * (start_freq - values[1]).powi(2) / (values[0]).powi(2) / 2.0).exp(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `-(start_freq - values[1]).powi(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] = note: `#[warn(clippy::neg_multiply)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/viterbi.rs:1019:22 [INFO] [stdout] | [INFO] [stdout] 1019 | values[5] * (-1.0 * (start_freq - values[4]).powi(2) / (values[3]).powi(2) / 2.0).exp(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `-(start_freq - values[4]).powi(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/viterbi.rs:1020:14 [INFO] [stdout] | [INFO] [stdout] 1020 | *cell -= (h_kd / (h_kd + r_kd)).max(0.01).min(0.99).ln(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `(h_kd / (h_kd + r_kd)).clamp(0.01, 0.99)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/bin/FragGeneScanRs.rs:327:13 [INFO] [stdout] | [INFO] [stdout] 327 | stream: stream, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/bin/FragGeneScanRs.rs:327:13 [INFO] [stdout] | [INFO] [stdout] 327 | stream: stream, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/bin/FragGeneScanRs.rs:187:13 [INFO] [stdout] | [INFO] [stdout] 187 | usize::from_str_radix(matches.value_of("thread-num").unwrap(), 10)?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `matches.value_of("thread-num").unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] = note: `#[warn(clippy::from_str_radix_10)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/bin/FragGeneScanRs.rs:200:13 [INFO] [stdout] | [INFO] [stdout] 200 | usize::from_str_radix(matches.value_of("thread-num").unwrap(), 10)?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `matches.value_of("thread-num").unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/bin/FragGeneScanRs.rs:207:1 [INFO] [stdout] | [INFO] [stdout] 207 | / fn run( [INFO] [stdout] 208 | | global: Box, [INFO] [stdout] 209 | | locals: Vec, [INFO] [stdout] 210 | | inputseqs: R, [INFO] [stdout] ... | [INFO] [stdout] 217 | | thread_num: usize, [INFO] [stdout] 218 | | ) -> 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] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/bin/FragGeneScanRs.rs:187:13 [INFO] [stdout] | [INFO] [stdout] 187 | usize::from_str_radix(matches.value_of("thread-num").unwrap(), 10)?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `matches.value_of("thread-num").unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] = note: `#[warn(clippy::from_str_radix_10)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `from_str_radix` can be replaced with a call to `str::parse` [INFO] [stdout] --> src/bin/FragGeneScanRs.rs:200:13 [INFO] [stdout] | [INFO] [stdout] 200 | usize::from_str_radix(matches.value_of("thread-num").unwrap(), 10)?, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `matches.value_of("thread-num").unwrap().parse::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/bin/FragGeneScanRs.rs:207:1 [INFO] [stdout] | [INFO] [stdout] 207 | / fn run( [INFO] [stdout] 208 | | global: Box, [INFO] [stdout] 209 | | locals: Vec, [INFO] [stdout] 210 | | inputseqs: R, [INFO] [stdout] ... | [INFO] [stdout] 217 | | thread_num: usize, [INFO] [stdout] 218 | | ) -> 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] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/dna.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | / match self { [INFO] [stdout] 50 | | Nuc::Ai | Nuc::Ci | Nuc::Gi | Nuc::Ti | Nuc::Ni => true, [INFO] [stdout] 51 | | _ => false, [INFO] [stdout] 52 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 49 - match self { [INFO] [stdout] 50 - Nuc::Ai | Nuc::Ci | Nuc::Gi | Nuc::Ti | Nuc::Ni => true, [INFO] [stdout] 51 - _ => false, [INFO] [stdout] 52 - } [INFO] [stdout] 49 + matches!(self, Nuc::Ai | Nuc::Ci | Nuc::Gi | Nuc::Ti | Nuc::Ni) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/gene.rs:54:31 [INFO] [stdout] | [INFO] [stdout] 54 | gene.gff(buf, &head); [INFO] [stdout] | ^^^^^ help: change this to: `head` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/gene.rs:127:48 [INFO] [stdout] | [INFO] [stdout] 127 | pub fn dna(&self, buf: &mut Vec, head: &Vec, formatted: bool) -> Result<(), GeneError> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 127 - pub fn dna(&self, buf: &mut Vec, head: &Vec, formatted: bool) -> Result<(), GeneError> { [INFO] [stdout] 127 + pub fn dna(&self, buf: &mut Vec, head: &[u8], formatted: bool) -> Result<(), GeneError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/gene.rs:164:15 [INFO] [stdout] | [INFO] [stdout] 164 | head: &Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 164 - head: &Vec, [INFO] [stdout] 164 + head: &[u8], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/gene.rs:167:19 [INFO] [stdout] | [INFO] [stdout] 167 | let dna = self [INFO] [stdout] | ___________________^ [INFO] [stdout] 168 | | .dna [INFO] [stdout] 169 | | .iter() [INFO] [stdout] 170 | | .filter(|n| !n.is_insertion()) [INFO] [stdout] 171 | | .map(|&n| n) [INFO] [stdout] | |________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] help: consider calling the dedicated `copied` method [INFO] [stdout] | [INFO] [stdout] 167 ~ let dna = self [INFO] [stdout] 168 + .dna [INFO] [stdout] 169 + .iter() [INFO] [stdout] 170 + .filter(|n| !n.is_insertion()).copied() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `Box::new(_)` of default value [INFO] [stdout] --> src/hmm.rs:128:35 [INFO] [stdout] | [INFO] [stdout] 128 | let mut global: Box = Box::new(Default::default()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `Box::default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_default [INFO] [stdout] = note: `#[warn(clippy::box_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:197:15 [INFO] [stdout] | [INFO] [stdout] 197 | filename: &PathBuf, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 197 - filename: &PathBuf, [INFO] [stdout] 197 + filename: &Path, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:280:31 [INFO] [stdout] | [INFO] [stdout] 280 | fn read_m_transitions(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 280 - fn read_m_transitions(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] 280 + fn read_m_transitions(locals: &mut [Local], filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cg` is only used to index `locals` [INFO] [stdout] --> src/hmm.rs:282:15 [INFO] [stdout] | [INFO] [stdout] 282 | for cg in 0..(CG_MAX - CG_MIN) { [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] 282 - for cg in 0..(CG_MAX - CG_MIN) { [INFO] [stdout] 282 + for in locals.iter_mut().take((CG_MAX - CG_MIN)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `e` is used to index `v` [INFO] [stdout] --> src/hmm.rs:288:26 [INFO] [stdout] | [INFO] [stdout] 288 | for e in 0..ACGT { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 288 - for e in 0..ACGT { [INFO] [stdout] 288 + for (e, ) in v.iter().enumerate().take(ACGT) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:299:13 [INFO] [stdout] | [INFO] [stdout] 299 | locals: &mut Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 299 - locals: &mut Vec, [INFO] [stdout] 299 + locals: &mut [Local], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cg` is only used to index `locals` [INFO] [stdout] --> src/hmm.rs:303:15 [INFO] [stdout] | [INFO] [stdout] 303 | for cg in 0..(CG_MAX - CG_MIN) { [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] 303 - for cg in 0..(CG_MAX - CG_MIN) { [INFO] [stdout] 303 + for in locals.iter_mut().take((CG_MAX - CG_MIN)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `e` is used to index `v` [INFO] [stdout] --> src/hmm.rs:309:26 [INFO] [stdout] | [INFO] [stdout] 309 | for e in 0..ACGT { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 309 - for e in 0..ACGT { [INFO] [stdout] 309 + for (e, ) in v.iter().enumerate().take(ACGT) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:319:27 [INFO] [stdout] | [INFO] [stdout] 319 | fn read_noncoding(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 319 - fn read_noncoding(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] 319 + fn read_noncoding(locals: &mut [Local], filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cg` is only used to index `locals` [INFO] [stdout] --> src/hmm.rs:321:15 [INFO] [stdout] | [INFO] [stdout] 321 | for cg in 0..(CG_MAX - CG_MIN) { [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] 321 - for cg in 0..(CG_MAX - CG_MIN) { [INFO] [stdout] 321 + for in locals.iter_mut().take((CG_MAX - CG_MIN)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `e2` is used to index `v` [INFO] [stdout] --> src/hmm.rs:326:23 [INFO] [stdout] | [INFO] [stdout] 326 | for e2 in 0..ACGT { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 326 - for e2 in 0..ACGT { [INFO] [stdout] 326 + for (e2, ) in v.iter().enumerate().take(ACGT) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:335:23 [INFO] [stdout] | [INFO] [stdout] 335 | fn read_start(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 335 - fn read_start(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] 335 + fn read_start(locals: &mut [Local], filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cg` is only used to index `locals` [INFO] [stdout] --> src/hmm.rs:337:15 [INFO] [stdout] | [INFO] [stdout] 337 | for cg in 0..(CG_MAX - CG_MIN) { [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] 337 - for cg in 0..(CG_MAX - CG_MIN) { [INFO] [stdout] 337 + for in locals.iter_mut().take((CG_MAX - CG_MIN)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is used to index `v` [INFO] [stdout] --> src/hmm.rs:342:22 [INFO] [stdout] | [INFO] [stdout] 342 | for k in 0..TRI_ACGT { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 342 - for k in 0..TRI_ACGT { [INFO] [stdout] 342 + for (k, ) in v.iter().enumerate().take(TRI_ACGT) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:351:23 [INFO] [stdout] | [INFO] [stdout] 351 | fn read_stop1(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 351 - fn read_stop1(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] 351 + fn read_stop1(locals: &mut [Local], filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cg` is only used to index `locals` [INFO] [stdout] --> src/hmm.rs:353:15 [INFO] [stdout] | [INFO] [stdout] 353 | for cg in 0..(CG_MAX - CG_MIN) { [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] 353 - for cg in 0..(CG_MAX - CG_MIN) { [INFO] [stdout] 353 + for in locals.iter_mut().take((CG_MAX - CG_MIN)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is used to index `v` [INFO] [stdout] --> src/hmm.rs:358:22 [INFO] [stdout] | [INFO] [stdout] 358 | for k in 0..TRI_ACGT { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 358 - for k in 0..TRI_ACGT { [INFO] [stdout] 358 + for (k, ) in v.iter().enumerate().take(TRI_ACGT) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:367:22 [INFO] [stdout] | [INFO] [stdout] 367 | fn read_stop(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 367 - fn read_stop(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] 367 + fn read_stop(locals: &mut [Local], filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cg` is only used to index `locals` [INFO] [stdout] --> src/hmm.rs:369:15 [INFO] [stdout] | [INFO] [stdout] 369 | for cg in 0..(CG_MAX - CG_MIN) { [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] 369 - for cg in 0..(CG_MAX - CG_MIN) { [INFO] [stdout] 369 + for in locals.iter_mut().take((CG_MAX - CG_MIN)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is used to index `v` [INFO] [stdout] --> src/hmm.rs:374:22 [INFO] [stdout] | [INFO] [stdout] 374 | for k in 0..TRI_ACGT { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 374 - for k in 0..TRI_ACGT { [INFO] [stdout] 374 + for (k, ) in v.iter().enumerate().take(TRI_ACGT) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:383:24 [INFO] [stdout] | [INFO] [stdout] 383 | fn read_start1(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 383 - fn read_start1(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] 383 + fn read_start1(locals: &mut [Local], filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cg` is only used to index `locals` [INFO] [stdout] --> src/hmm.rs:385:15 [INFO] [stdout] | [INFO] [stdout] 385 | for cg in 0..(CG_MAX - CG_MIN) { [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] 385 - for cg in 0..(CG_MAX - CG_MIN) { [INFO] [stdout] 385 + for in locals.iter_mut().take((CG_MAX - CG_MIN)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is used to index `v` [INFO] [stdout] --> src/hmm.rs:390:22 [INFO] [stdout] | [INFO] [stdout] 390 | for k in 0..TRI_ACGT { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 390 - for k in 0..TRI_ACGT { [INFO] [stdout] 390 + for (k, ) in v.iter().enumerate().take(TRI_ACGT) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/hmm.rs:399:21 [INFO] [stdout] | [INFO] [stdout] 399 | fn read_pwm(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 399 - fn read_pwm(locals: &mut Vec, filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] 399 + fn read_pwm(locals: &mut [Local], filename: PathBuf) -> Result<(), TrainingDataError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `cg` is only used to index `locals` [INFO] [stdout] --> src/hmm.rs:402:15 [INFO] [stdout] | [INFO] [stdout] 402 | for cg in 0..(CG_MAX - CG_MIN) { [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] 402 - for cg in 0..(CG_MAX - CG_MIN) { [INFO] [stdout] 402 + for in locals.iter_mut().take((CG_MAX - CG_MIN)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `v` [INFO] [stdout] --> src/hmm.rs:406:18 [INFO] [stdout] | [INFO] [stdout] 406 | for j in 0..PERIOD { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 406 - for j in 0..PERIOD { [INFO] [stdout] 406 + for (j, ) in v.iter().enumerate().take(PERIOD) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `v` [INFO] [stdout] --> src/hmm.rs:412:18 [INFO] [stdout] | [INFO] [stdout] 412 | for j in 0..PERIOD { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 412 - for j in 0..PERIOD { [INFO] [stdout] 412 + for (j, ) in v.iter().enumerate().take(PERIOD) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `v` [INFO] [stdout] --> src/hmm.rs:418:18 [INFO] [stdout] | [INFO] [stdout] 418 | for j in 0..PERIOD { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 418 - for j in 0..PERIOD { [INFO] [stdout] 418 + for (j, ) in v.iter().enumerate().take(PERIOD) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `v` [INFO] [stdout] --> src/hmm.rs:424:18 [INFO] [stdout] | [INFO] [stdout] 424 | for j in 0..PERIOD { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 424 - for j in 0..PERIOD { [INFO] [stdout] 424 + for (j, ) in v.iter().enumerate().take(PERIOD) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:17:17 [INFO] [stdout] | [INFO] [stdout] 17 | build_genes(&local, head, seq, whole_genome, vpath, alpha) [INFO] [stdout] | ^^^^^^ help: change this to: `local` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:45:13 [INFO] [stdout] | [INFO] [stdout] 45 | && ((seq[1] == A && seq[2] == A) [INFO] [stdout] | _____________^ [INFO] [stdout] 46 | | || (seq[1] == A && seq[2] == G) [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] 45 - && ((seq[1] == A && seq[2] == A) [INFO] [stdout] 46 - || (seq[1] == A && seq[2] == G) [INFO] [stdout] 45 + && (!(seq[1] != A || seq[2] != A && seq[2] != G) [INFO] [stdout] | [INFO] [stdout] 45 - && ((seq[1] == A && seq[2] == A) [INFO] [stdout] 46 - || (seq[1] == A && seq[2] == G) [INFO] [stdout] 45 + && ((seq[2] == G || seq[2] == A) && seq[1] == A [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | && ((seq[1] == T && seq[0] == T) [INFO] [stdout] | _____________^ [INFO] [stdout] 73 | | || (seq[1] == T && seq[0] == C) [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] 72 - && ((seq[1] == T && seq[0] == T) [INFO] [stdout] 73 - || (seq[1] == T && seq[0] == C) [INFO] [stdout] 72 + && (!(seq[1] != T || seq[0] != T && seq[0] != C) [INFO] [stdout] | [INFO] [stdout] 72 - && ((seq[1] == T && seq[0] == T) [INFO] [stdout] 73 - || (seq[1] == T && seq[0] == C) [INFO] [stdout] 72 + && ((seq[0] == C || seq[0] == T) && seq[1] == T [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:204:17 [INFO] [stdout] | [INFO] [stdout] 204 | && ((seq[t - 2] == T && seq[t - 3] == T) [INFO] [stdout] | _________________^ [INFO] [stdout] 205 | | || (seq[t - 2] == T && seq[t - 3] == C) [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] 204 - && ((seq[t - 2] == T && seq[t - 3] == T) [INFO] [stdout] 205 - || (seq[t - 2] == T && seq[t - 3] == C) [INFO] [stdout] 204 + && (!(seq[t - 2] != T || seq[t - 3] != T && seq[t - 3] != C) [INFO] [stdout] | [INFO] [stdout] 204 - && ((seq[t - 2] == T && seq[t - 3] == T) [INFO] [stdout] 205 - || (seq[t - 2] == T && seq[t - 3] == C) [INFO] [stdout] 204 + && ((seq[t - 3] == C || seq[t - 3] == T) && seq[t - 2] == T [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:243:17 [INFO] [stdout] | [INFO] [stdout] 243 | && ((seq[t - 2] == T && seq[t - 3] == T) [INFO] [stdout] | _________________^ [INFO] [stdout] 244 | | || (seq[t - 2] == T && seq[t - 3] == C) [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] 243 - && ((seq[t - 2] == T && seq[t - 3] == T) [INFO] [stdout] 244 - || (seq[t - 2] == T && seq[t - 3] == C) [INFO] [stdout] 243 + && (!(seq[t - 2] != T || seq[t - 3] != T && seq[t - 3] != C) [INFO] [stdout] | [INFO] [stdout] 243 - && ((seq[t - 2] == T && seq[t - 3] == T) [INFO] [stdout] 244 - || (seq[t - 2] == T && seq[t - 3] == C) [INFO] [stdout] 243 + && ((seq[t - 3] == C || seq[t - 3] == T) && seq[t - 2] == T [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:312:21 [INFO] [stdout] | [INFO] [stdout] 312 | && ((seq[t + 1] == A && seq[t + 2] == A) [INFO] [stdout] | _____________________^ [INFO] [stdout] 313 | | || (seq[t + 1] == A && seq[t + 2] == G) [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] 312 - && ((seq[t + 1] == A && seq[t + 2] == A) [INFO] [stdout] 313 - || (seq[t + 1] == A && seq[t + 2] == G) [INFO] [stdout] 312 + && (!(seq[t + 1] != A || seq[t + 2] != A && seq[t + 2] != G) [INFO] [stdout] | [INFO] [stdout] 312 - && ((seq[t + 1] == A && seq[t + 2] == A) [INFO] [stdout] 313 - || (seq[t + 1] == A && seq[t + 2] == G) [INFO] [stdout] 312 + && ((seq[t + 2] == G || seq[t + 2] == A) && seq[t + 1] == A [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:373:21 [INFO] [stdout] | [INFO] [stdout] 373 | && ((seq[t + 1] == T && seq[t] == T) [INFO] [stdout] | _____________________^ [INFO] [stdout] 374 | | || (seq[t + 1] == T && seq[t] == C) [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] 373 - && ((seq[t + 1] == T && seq[t] == T) [INFO] [stdout] 374 - || (seq[t + 1] == T && seq[t] == C) [INFO] [stdout] 373 + && (!(seq[t + 1] != T || seq[t] != T && seq[t] != C) [INFO] [stdout] | [INFO] [stdout] 373 - && ((seq[t + 1] == T && seq[t] == T) [INFO] [stdout] 374 - || (seq[t + 1] == T && seq[t] == C) [INFO] [stdout] 373 + && ((seq[t] == C || seq[t] == T) && seq[t + 1] == T [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:119:65 [INFO] [stdout] | [INFO] [stdout] 119 | #[rustfmt::skip] from_i_to_m(&mut alpha, &mut path, &seq, temp_i[5], global, t, hmm::State::I6, hmm::State::M1); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:132:65 [INFO] [stdout] | [INFO] [stdout] 132 | #[rustfmt::skip] from_i_to_m(&mut alpha, &mut path, &seq, temp_i[0], global, t, hmm::State::I1, hmm::State::M2); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:145:65 [INFO] [stdout] | [INFO] [stdout] 145 | #[rustfmt::skip] from_i_to_m(&mut alpha, &mut path, &seq, temp_i[1], global, t, hmm::State::I2, hmm::State::M3); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:158:65 [INFO] [stdout] | [INFO] [stdout] 158 | #[rustfmt::skip] from_i_to_m(&mut alpha, &mut path, &seq, temp_i[2], global, t, hmm::State::I3, hmm::State::M4); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:171:65 [INFO] [stdout] | [INFO] [stdout] 171 | #[rustfmt::skip] from_i_to_m(&mut alpha, &mut path, &seq, temp_i[3], global, t, hmm::State::I4, hmm::State::M5); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:184:65 [INFO] [stdout] | [INFO] [stdout] 184 | #[rustfmt::skip] from_i_to_m(&mut alpha, &mut path, &seq, temp_i[4], global, t, hmm::State::I5, hmm::State::M6); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:218:67 [INFO] [stdout] | [INFO] [stdout] 218 | #[rustfmt::skip] from_i1_to_m1(&mut alpha, &mut path, &seq, temp_i_1[5], global, t, hmm::State::I6r, hmm::State::M1r); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:229:63 [INFO] [stdout] | [INFO] [stdout] 229 | #[rustfmt::skip] from_i1_to_m1(&mut alpha, &mut path, &seq, temp_i_1[0], global, t, hmm::State::I1r, hmm::State::M2r); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:239:63 [INFO] [stdout] | [INFO] [stdout] 239 | #[rustfmt::skip] from_i1_to_m1(&mut alpha, &mut path, &seq, temp_i_1[1], global, t, hmm::State::I2r, hmm::State::M3r); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:257:67 [INFO] [stdout] | [INFO] [stdout] 257 | #[rustfmt::skip] from_i1_to_m1(&mut alpha, &mut path, &seq, temp_i_1[2], global, t, hmm::State::I3r, hmm::State::M4r); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:268:63 [INFO] [stdout] | [INFO] [stdout] 268 | #[rustfmt::skip] from_i1_to_m1(&mut alpha, &mut path, &seq, temp_i_1[3], global, t, hmm::State::I4r, hmm::State::M5r); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/viterbi.rs:278:63 [INFO] [stdout] | [INFO] [stdout] 278 | #[rustfmt::skip] from_i1_to_m1(&mut alpha, &mut path, &seq, temp_i_1[4], global, t, hmm::State::I5r, hmm::State::M6r); [INFO] [stdout] | ^^^^ help: change this to: `seq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/viterbi.rs:619:13 [INFO] [stdout] | [INFO] [stdout] 619 | / if vpath[t] == hmm::State::M1r || vpath[t] == hmm::State::M4r { [INFO] [stdout] 620 | | if t > 2 { [INFO] [stdout] 621 | | dna_start_t_withstop = t - 2; [INFO] [stdout] 622 | | dna.splice(0..0, seq[t - 3..t].iter().cloned()); [INFO] [stdout] 623 | | } [INFO] [stdout] 624 | | } [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] 619 ~ if (vpath[t] == hmm::State::M1r || vpath[t] == hmm::State::M4r) { [INFO] [stdout] 620 ~ && t > 2 { [INFO] [stdout] 621 | dna_start_t_withstop = t - 2; [INFO] [stdout] 622 | dna.splice(0..0, seq[t - 3..t].iter().cloned()); [INFO] [stdout] 623 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/viterbi.rs:810:1 [INFO] [stdout] | [INFO] [stdout] 810 | / fn from_m_to_m( [INFO] [stdout] 811 | | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 812 | | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 813 | | global: &hmm::Global, [INFO] [stdout] ... | [INFO] [stdout] 818 | | last_m: f64, [INFO] [stdout] 819 | | ) { [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: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:811:12 [INFO] [stdout] | [INFO] [stdout] 811 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 811 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 811 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:812:11 [INFO] [stdout] | [INFO] [stdout] 812 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 812 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 812 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/viterbi.rs:825:1 [INFO] [stdout] | [INFO] [stdout] 825 | / fn from_d_to_m( [INFO] [stdout] 826 | | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 827 | | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 828 | | global: &hmm::Global, [INFO] [stdout] ... | [INFO] [stdout] 833 | | emission: f64, [INFO] [stdout] 834 | | ) { [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: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:826:12 [INFO] [stdout] | [INFO] [stdout] 826 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 826 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 826 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:827:11 [INFO] [stdout] | [INFO] [stdout] 827 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 827 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 827 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:851:12 [INFO] [stdout] | [INFO] [stdout] 851 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 851 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 851 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:852:11 [INFO] [stdout] | [INFO] [stdout] 852 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 852 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 852 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:867:12 [INFO] [stdout] | [INFO] [stdout] 867 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 867 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 867 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:868:11 [INFO] [stdout] | [INFO] [stdout] 868 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 868 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 868 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:894:13 [INFO] [stdout] | [INFO] [stdout] 894 | && ((seq[t] == A && seq[t + 1] == A) [INFO] [stdout] | _____________^ [INFO] [stdout] 895 | | || (seq[t] == A && seq[t + 1] == G) [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] 894 - && ((seq[t] == A && seq[t + 1] == A) [INFO] [stdout] 895 - || (seq[t] == A && seq[t + 1] == G) [INFO] [stdout] 894 + && (!(seq[t] != A || seq[t + 1] != A && seq[t + 1] != G) [INFO] [stdout] | [INFO] [stdout] 894 - && ((seq[t] == A && seq[t + 1] == A) [INFO] [stdout] 895 - || (seq[t] == A && seq[t + 1] == G) [INFO] [stdout] 894 + && ((seq[t + 1] == G || seq[t + 1] == A) && seq[t] == A [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:901:13 [INFO] [stdout] | [INFO] [stdout] 901 | && ((seq[temp_i] == A && seq[t] == A) [INFO] [stdout] | _____________^ [INFO] [stdout] 902 | | || (seq[temp_i] == A && seq[t] == G) [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] 901 - && ((seq[temp_i] == A && seq[t] == A) [INFO] [stdout] 902 - || (seq[temp_i] == A && seq[t] == G) [INFO] [stdout] 901 + && (!(seq[temp_i] != A || seq[t] != A && seq[t] != G) [INFO] [stdout] | [INFO] [stdout] 901 - && ((seq[temp_i] == A && seq[t] == A) [INFO] [stdout] 902 - || (seq[temp_i] == A && seq[t] == G) [INFO] [stdout] 901 + && ((seq[t] == G || seq[t] == A) && seq[temp_i] == A [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/viterbi.rs:879:1 [INFO] [stdout] | [INFO] [stdout] 879 | / fn from_i_to_m( [INFO] [stdout] 880 | | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 881 | | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 882 | | seq: &Vec, [INFO] [stdout] ... | [INFO] [stdout] 887 | | to_m: hmm::State, [INFO] [stdout] 888 | | ) { [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: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:880:12 [INFO] [stdout] | [INFO] [stdout] 880 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 880 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 880 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:881:11 [INFO] [stdout] | [INFO] [stdout] 881 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 881 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 881 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:882:10 [INFO] [stdout] | [INFO] [stdout] 882 | seq: &Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 882 - seq: &Vec, [INFO] [stdout] 882 + seq: &[Nuc], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/viterbi.rs:890:14 [INFO] [stdout] | [INFO] [stdout] 890 | if t < 2 { [INFO] [stdout] | ______________^ [INFO] [stdout] 891 | | } else if (to_m == hmm::State::M2 || to_m == hmm::State::M5) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/viterbi.rs:897:5 [INFO] [stdout] | [INFO] [stdout] 897 | / { [INFO] [stdout] 898 | | } else if (to_m == hmm::State::M3 || to_m == hmm::State::M6) [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/viterbi.rs:897:5 [INFO] [stdout] | [INFO] [stdout] 897 | / { [INFO] [stdout] 898 | | } else if (to_m == hmm::State::M3 || to_m == hmm::State::M6) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/viterbi.rs:904:5 [INFO] [stdout] | [INFO] [stdout] 904 | / { [INFO] [stdout] 905 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:916:12 [INFO] [stdout] | [INFO] [stdout] 916 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 916 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 916 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:917:11 [INFO] [stdout] | [INFO] [stdout] 917 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 917 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 917 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/viterbi.rs:929:1 [INFO] [stdout] | [INFO] [stdout] 929 | / fn from_m_to_i( [INFO] [stdout] 930 | | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 931 | | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 932 | | temp_i: &mut usize, [INFO] [stdout] ... | [INFO] [stdout] 939 | | last_i: f64, [INFO] [stdout] 940 | | ) { [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: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:930:12 [INFO] [stdout] | [INFO] [stdout] 930 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 930 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 930 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:931:11 [INFO] [stdout] | [INFO] [stdout] 931 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 931 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 931 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:965:13 [INFO] [stdout] | [INFO] [stdout] 965 | && ((seq[t] == T && seq[temp_i_1] == T) [INFO] [stdout] | _____________^ [INFO] [stdout] 966 | | || (seq[t] == T && seq[temp_i_1] == C) [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] 965 - && ((seq[t] == T && seq[temp_i_1] == T) [INFO] [stdout] 966 - || (seq[t] == T && seq[temp_i_1] == C) [INFO] [stdout] 965 + && (!(seq[t] != T || seq[temp_i_1] != T && seq[temp_i_1] != C) [INFO] [stdout] | [INFO] [stdout] 965 - && ((seq[t] == T && seq[temp_i_1] == T) [INFO] [stdout] 966 - || (seq[t] == T && seq[temp_i_1] == C) [INFO] [stdout] 965 + && ((seq[temp_i_1] == C || seq[temp_i_1] == T) && seq[t] == T [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/viterbi.rs:972:13 [INFO] [stdout] | [INFO] [stdout] 972 | && ((seq[temp_i_1] == T && seq[temp_i_1 - 1] == T) [INFO] [stdout] | _____________^ [INFO] [stdout] 973 | | || (seq[temp_i_1] == T && seq[temp_i_1 - 1] == C) [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] 972 - && ((seq[temp_i_1] == T && seq[temp_i_1 - 1] == T) [INFO] [stdout] 973 - || (seq[temp_i_1] == T && seq[temp_i_1 - 1] == C) [INFO] [stdout] 972 + && (!(seq[temp_i_1] != T || seq[temp_i_1 - 1] != T && seq[temp_i_1 - 1] != C) [INFO] [stdout] | [INFO] [stdout] 972 - && ((seq[temp_i_1] == T && seq[temp_i_1 - 1] == T) [INFO] [stdout] 973 - || (seq[temp_i_1] == T && seq[temp_i_1 - 1] == C) [INFO] [stdout] 972 + && ((seq[temp_i_1 - 1] == C || seq[temp_i_1 - 1] == T) && seq[temp_i_1] == T [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/viterbi.rs:950:1 [INFO] [stdout] | [INFO] [stdout] 950 | / fn from_i1_to_m1( [INFO] [stdout] 951 | | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 952 | | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 953 | | seq: &Vec, [INFO] [stdout] ... | [INFO] [stdout] 958 | | to_m: hmm::State, [INFO] [stdout] 959 | | ) { [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: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:951:12 [INFO] [stdout] | [INFO] [stdout] 951 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 951 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 951 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:952:11 [INFO] [stdout] | [INFO] [stdout] 952 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 952 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 952 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:953:10 [INFO] [stdout] | [INFO] [stdout] 953 | seq: &Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 953 - seq: &Vec, [INFO] [stdout] 953 + seq: &[Nuc], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/viterbi.rs:961:14 [INFO] [stdout] | [INFO] [stdout] 961 | if t < 2 { [INFO] [stdout] | ______________^ [INFO] [stdout] 962 | | } else if (to_m == hmm::State::M2r || to_m == hmm::State::M5r) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/viterbi.rs:968:5 [INFO] [stdout] | [INFO] [stdout] 968 | / { [INFO] [stdout] 969 | | } else if (to_m == hmm::State::M3r || to_m == hmm::State::M6r) [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/viterbi.rs:968:5 [INFO] [stdout] | [INFO] [stdout] 968 | / { [INFO] [stdout] 969 | | } else if (to_m == hmm::State::M3r || to_m == hmm::State::M6r) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/viterbi.rs:975:5 [INFO] [stdout] | [INFO] [stdout] 975 | / { [INFO] [stdout] 976 | | } else { [INFO] [stdout] | |_____^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:987:12 [INFO] [stdout] | [INFO] [stdout] 987 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 987 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 987 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:988:11 [INFO] [stdout] | [INFO] [stdout] 988 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 988 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 988 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:1002:12 [INFO] [stdout] | [INFO] [stdout] 1002 | alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1002 - alpha: &mut Vec<[f64; hmm::State::COUNT]>, [INFO] [stdout] 1002 + alpha: &mut [[f64; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/viterbi.rs:1003:11 [INFO] [stdout] | [INFO] [stdout] 1003 | path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1003 - path: &mut Vec<[Option; hmm::State::COUNT]>, [INFO] [stdout] 1003 + path: &mut [[Option; hmm::State::COUNT]], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/viterbi.rs:1017:22 [INFO] [stdout] | [INFO] [stdout] 1017 | values[2] * (-1.0 * (start_freq - values[1]).powi(2) / (values[0]).powi(2) / 2.0).exp(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `-(start_freq - values[1]).powi(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] = note: `#[warn(clippy::neg_multiply)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this multiplication by -1 can be written more succinctly [INFO] [stdout] --> src/viterbi.rs:1019:22 [INFO] [stdout] | [INFO] [stdout] 1019 | values[5] * (-1.0 * (start_freq - values[4]).powi(2) / (values[3]).powi(2) / 2.0).exp(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `-(start_freq - values[4]).powi(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/viterbi.rs:1020:14 [INFO] [stdout] | [INFO] [stdout] 1020 | *cell -= (h_kd / (h_kd + r_kd)).max(0.01).min(0.99).ln(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with clamp: `(h_kd / (h_kd + r_kd)).clamp(0.01, 0.99)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.04s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: buf_redux v0.8.4 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5` [INFO] running `Command { std: "docker" "inspect" "615a3add8c5c1aca466355c635039f071c87bdff07e05602edce2ffcb54384de", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "615a3add8c5c1aca466355c635039f071c87bdff07e05602edce2ffcb54384de", kill_on_drop: false }` [INFO] [stdout] 615a3add8c5c1aca466355c635039f071c87bdff07e05602edce2ffcb54384de