[INFO] cloning repository https://github.com/jianshu93/DartUniFrac [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jianshu93/DartUniFrac" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjianshu93%2FDartUniFrac", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjianshu93%2FDartUniFrac'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] efc1273bc7ff676bef3f4a52003b1cc2ad8880f4 [INFO] linting jianshu93/DartUniFrac against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjianshu93%2FDartUniFrac" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-0-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/jianshu93/DartUniFrac [INFO] finished tweaking git repo https://github.com/jianshu93/DartUniFrac [INFO] tweaked toml for git repo https://github.com/jianshu93/DartUniFrac written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jianshu93/DartUniFrac on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/jianshu93/DartUniFrac 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 git repository `https://github.com/jianshu93/anndists` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded sorbus v0.12.1 [INFO] [stderr] Downloaded newick v0.11.0 [INFO] [stderr] Downloaded succparen v0.0.3 [INFO] [stderr] Downloaded hdf5-metno-derive v0.9.3 [INFO] [stderr] Downloaded hdf5-metno-sys v0.10.1 [INFO] [stderr] Downloaded accelerate-src v0.3.2 [INFO] [stderr] Downloaded mt19937 v3.1.0 [INFO] [stderr] Downloaded array-init v0.1.1 [INFO] [stderr] Downloaded cpu-time v1.0.0 [INFO] [stderr] Downloaded memory-stats v1.2.0 [INFO] [stderr] Downloaded intel-mkl-tool v0.8.1 [INFO] [stderr] Downloaded tab-hash v0.3.0 [INFO] [stderr] Downloaded blas-src v0.14.0 [INFO] [stderr] Downloaded clap_lex v1.0.1 [INFO] [stderr] Downloaded ocipkg v0.2.9 [INFO] [stderr] Downloaded clap_derive v4.5.61 [INFO] [stderr] Downloaded alga v0.9.3 [INFO] [stderr] Downloaded clap v4.5.61 [INFO] [stderr] Downloaded hnsw_rs v0.3.4 [INFO] [stderr] Downloaded oci-spec v0.6.8 [INFO] [stderr] Downloaded emojis v0.7.2 [INFO] [stderr] Downloaded bson v2.15.0 [INFO] [stderr] Downloaded clap_builder v4.5.61 [INFO] [stderr] Downloaded sprs v0.11.4 [INFO] [stderr] Downloaded lax v0.17.0 [INFO] [stderr] Downloaded hdf5-metno v0.10.1 [INFO] [stderr] Downloaded lax v0.18.0 [INFO] [stderr] Downloaded mmap-rs v0.7.0 [INFO] [stderr] Downloaded indxvec v1.9.6 [INFO] [stderr] Downloaded quantiles v0.7.1 [INFO] [stderr] Downloaded openblas-build v0.10.14 [INFO] [stderr] Downloaded anndists v0.1.4 [INFO] [stderr] Downloaded permutation v0.4.1 [INFO] [stderr] Downloaded fpcoa v0.1.2 [INFO] [stderr] Downloaded nalgebra v0.33.2 [INFO] [stderr] Downloaded hdf5-metno-types v0.10.2 [INFO] [stderr] Downloaded intel-mkl-src v0.8.1 [INFO] [stderr] Downloaded annembed v0.1.6 [INFO] [stderr] Downloaded katexit v0.1.5 [INFO] [stderr] Downloaded openblas-src v0.10.14 [INFO] [stderr] Downloaded dartminhash v0.1.4 [INFO] [stderr] Downloaded hdf5-metno-src v0.9.5 [INFO] [stderr] Downloaded lapack-sys v0.15.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] aa6dc0a5e0276c2bbfb87b5f2f2d10ee43c8968422a66788e90bc76701f05f87 [INFO] running `Command { std: "docker" "start" "-a" "aa6dc0a5e0276c2bbfb87b5f2f2d10ee43c8968422a66788e90bc76701f05f87", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "aa6dc0a5e0276c2bbfb87b5f2f2d10ee43c8968422a66788e90bc76701f05f87", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "aa6dc0a5e0276c2bbfb87b5f2f2d10ee43c8968422a66788e90bc76701f05f87", kill_on_drop: false }` [INFO] [stdout] aa6dc0a5e0276c2bbfb87b5f2f2d10ee43c8968422a66788e90bc76701f05f87 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] f2bc85fee91be554389c9ac2d3030c586d00eb2df6b764c089069acffa759e7b [INFO] running `Command { std: "docker" "start" "-a" "f2bc85fee91be554389c9ac2d3030c586d00eb2df6b764c089069acffa759e7b", kill_on_drop: false }` [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Checking regex-syntax v0.8.10 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking bitflags v2.11.0 [INFO] [stderr] Compiling nix v0.30.1 [INFO] [stderr] Compiling num-complex v0.2.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Checking jiff v0.2.23 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Checking getrandom v0.1.16 [INFO] [stderr] Checking cpu-time v1.0.0 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Checking bytemuck v1.25.0 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling ucd-trie v0.1.7 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking safe_arch v0.7.4 [INFO] [stderr] Checking deranged v0.5.8 [INFO] [stderr] Checking combine v4.6.7 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling pest v2.8.6 [INFO] [stderr] Checking anstream v1.0.0 [INFO] [stderr] Checking approx v0.3.2 [INFO] [stderr] Compiling cmake v0.1.57 [INFO] [stderr] Compiling toml_datetime v1.0.0+spec-1.1.0 [INFO] [stderr] Compiling virtue v0.0.18 [INFO] [stderr] Checking clap_lex v1.0.1 [INFO] [stderr] Checking hashbrown v0.15.5 [INFO] [stderr] Checking alga v0.9.3 [INFO] [stderr] Checking clap_builder v4.5.61 [INFO] [stderr] Checking flate2 v1.1.9 [INFO] [stderr] Checking time v0.3.47 [INFO] [stderr] Checking wide v0.7.33 [INFO] [stderr] Checking uuid v1.22.0 [INFO] [stderr] Compiling libz-sys v1.1.25 [INFO] [stderr] Compiling hdf5-metno-src v0.9.5 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling bincode_derive v2.0.1 [INFO] [stderr] Compiling pest_meta v2.8.6 [INFO] [stderr] Compiling tab-hash v0.3.0 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Checking regex v1.10.6 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Checking serde_bytes v0.11.19 [INFO] [stderr] Checking env_filter v1.0.0 [INFO] [stderr] Compiling toml_parser v1.0.9+spec-1.1.0 [INFO] [stderr] Checking lapack-sys v0.15.0 [INFO] [stderr] Checking csv-core v0.1.13 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Compiling annembed v0.1.6 [INFO] [stderr] Compiling hdf5-metno-types v0.10.2 [INFO] [stderr] Checking unty v0.0.4 [INFO] [stderr] Checking csv v1.4.0 [INFO] [stderr] Checking bincode v2.0.1 [INFO] [stderr] Checking hdrhistogram v7.5.4 [INFO] [stderr] Compiling toml_edit v0.25.4+spec-1.1.0 [INFO] [stderr] Compiling pest_generator v2.8.6 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Checking env_logger v0.11.9 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking rand_xoshiro v0.7.0 [INFO] [stderr] Checking lapack-sys v0.14.0 [INFO] [stderr] Checking memory-stats v1.2.0 [INFO] [stderr] Checking anndists v0.1.4 [INFO] [stderr] Compiling hdf5-metno v0.10.1 [INFO] [stderr] Compiling fpcoa v0.1.2 [INFO] [stderr] Checking permutation v0.4.1 [INFO] [stderr] Checking quantiles v0.7.1 [INFO] [stderr] Checking identity-hash v0.1.0 [INFO] [stderr] Checking indxvec v1.9.6 [INFO] [stderr] Checking array-init v0.1.1 [INFO] [stderr] Checking mt19937 v3.1.0 [INFO] [stderr] Checking emojis v0.7.2 [INFO] [stderr] Checking anndists v0.1.4 (https://github.com/jianshu93/anndists#4a13ad20) [INFO] [stderr] Compiling proc-macro-crate v3.5.0 [INFO] [stderr] Checking succparen v0.0.3 [INFO] [stderr] Compiling hdf5-metno-sys v0.10.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Compiling enum-as-inner v0.6.1 [INFO] [stderr] Compiling katexit v0.1.5 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Compiling clap_derive v4.5.61 [INFO] [stderr] Compiling nalgebra-macros v0.2.2 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking sorbus v0.12.1 [INFO] [stderr] Compiling hdf5-metno-derive v0.9.3 [INFO] [stderr] Compiling pest_derive v2.8.6 [INFO] [stderr] Checking sysctl v0.6.0 [INFO] [stderr] Checking newick v0.11.0 [INFO] [stderr] Checking rand_distr v0.5.1 [INFO] [stderr] Checking thiserror v2.0.18 [INFO] [stderr] Checking mmap-rs v0.7.0 [INFO] [stderr] Checking clap v4.5.61 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking bson v2.15.0 [INFO] [stderr] Checking dartminhash v0.1.4 [INFO] [stderr] Checking hnsw_rs v0.3.4 [INFO] [stderr] Checking cauchy v0.4.0 [INFO] [stderr] Checking ndarray v0.17.2 [INFO] [stderr] Checking simba v0.9.1 [INFO] [stderr] Checking ndarray v0.16.1 [INFO] [stderr] Checking lax v0.18.0 [INFO] [stderr] Checking lax v0.17.0 [INFO] [stderr] Checking zstd v0.13.3 [INFO] [stderr] Checking nalgebra v0.33.2 [INFO] [stderr] Checking sprs v0.11.4 [INFO] [stderr] Checking dartunifrac v0.3.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/striped_unifrac.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | use env_logger; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/dartunifrac.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | use env_logger; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/striped_unifrac.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | use env_logger; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/dartunifrac.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | use env_logger; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/striped_unifrac.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | //! (works for tens-of-thousands samples) [INFO] [stdout] | ^^^^^ help: try using ` ` (3 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/striped_unifrac.rs:167:27 [INFO] [stdout] | [INFO] [stdout] 167 | fn read_table(p: &str) -> Result<(Vec, Vec, Vec>)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/striped_unifrac.rs:189:34 [INFO] [stdout] | [INFO] [stdout] 189 | fn read_table_counts(p: &str) -> Result<(Vec, Vec, Vec>)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `s` is used to index `rel_counts` [INFO] [stdout] --> src/striped_unifrac.rs:282:14 [INFO] [stdout] | [INFO] [stdout] 282 | for s in 0..nsamp { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 282 - for s in 0..nsamp { [INFO] [stdout] 282 + for (s, ) in rel_counts.iter().enumerate().take(nsamp) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/striped_unifrac.rs:297:5 [INFO] [stdout] | [INFO] [stdout] 297 | (nsamp + blk - 1) / blk [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nsamp.div_ceil(blk)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `wi` is used to index `words` [INFO] [stdout] --> src/striped_unifrac.rs:366:15 [INFO] [stdout] | [INFO] [stdout] 366 | for wi in w0..w1 { [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] 366 - for wi in w0..w1 { [INFO] [stdout] 366 + for (wi, ) in words.iter().enumerate().take(w1).skip(w0) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/striped_unifrac.rs:414:1 [INFO] [stdout] | [INFO] [stdout] 414 | / fn unweighted_accumulate_node( [INFO] [stdout] 415 | | len: f64, [INFO] [stdout] 416 | | bw: usize, [INFO] [stdout] 417 | | bh: usize, [INFO] [stdout] ... | [INFO] [stdout] 422 | | shared: &mut [f64], [INFO] [stdout] 423 | | ) { [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: manually reimplementing `div_ceil` [INFO] [stdout] --> src/striped_unifrac.rs:512:18 [INFO] [stdout] | [INFO] [stdout] 512 | let stripe = (nsamp + n_threads - 1) / n_threads; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nsamp.div_ceil(n_threads)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant redefinition of a binding `kids` [INFO] [stdout] --> src/striped_unifrac.rs:532:13 [INFO] [stdout] | [INFO] [stdout] 532 | let kids = kids; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: `kids` is initially defined here [INFO] [stdout] --> src/striped_unifrac.rs:501:5 [INFO] [stdout] | [INFO] [stdout] 501 | kids: &[Vec], [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_locals [INFO] [stdout] = note: `#[warn(clippy::redundant_locals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant redefinition of a binding `post` [INFO] [stdout] --> src/striped_unifrac.rs:533:13 [INFO] [stdout] | [INFO] [stdout] 533 | let post = post; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: `post` is initially defined here [INFO] [stdout] --> src/striped_unifrac.rs:500:5 [INFO] [stdout] | [INFO] [stdout] 500 | post: &[usize], [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_locals [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `w` is only used to index `node_masks_t` [INFO] [stdout] --> src/striped_unifrac.rs:548:34 [INFO] [stdout] | [INFO] [stdout] 548 | for w in 0..words_str { [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] 548 - for w in 0..words_str { [INFO] [stdout] 548 + for in node_masks_t.iter_mut().take(words_str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `tid` is used to index `node_masks` [INFO] [stdout] --> src/striped_unifrac.rs:567:20 [INFO] [stdout] | [INFO] [stdout] 567 | for tid in 0..n_threads { [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] 567 - for tid in 0..n_threads { [INFO] [stdout] 567 + for (tid, ) in node_masks.iter().enumerate().take(n_threads) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/striped_unifrac.rs:608:16 [INFO] [stdout] | [INFO] [stdout] 608 | let nblk = (nsamp + blk - 1) / blk; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nsamp.div_ceil(blk)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant redefinition of a binding `ptr` [INFO] [stdout] --> src/striped_unifrac.rs:626:13 [INFO] [stdout] | [INFO] [stdout] 626 | let ptr = ptr; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: `ptr` is initially defined here [INFO] [stdout] --> src/striped_unifrac.rs:616:9 [INFO] [stdout] | [INFO] [stdout] 616 | let ptr = DistPtr(unsafe { NonNull::new_unchecked(dist.as_ptr() as *mut f64) }); [INFO] [stdout] | ^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_locals [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/striped_unifrac.rs:766:1 [INFO] [stdout] | [INFO] [stdout] 766 | / fn build_stripe_dense( [INFO] [stdout] 767 | | counts: &[Vec], [INFO] [stdout] 768 | | row2leaf: &[Option], [INFO] [stdout] 769 | | leaf_ids: &[usize], [INFO] [stdout] ... | [INFO] [stdout] 774 | | total: usize, [INFO] [stdout] 775 | | ) -> Stripe { [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/striped_unifrac.rs:823:1 [INFO] [stdout] | [INFO] [stdout] 823 | / fn build_stripe_csr( [INFO] [stdout] 824 | | indptr: &[u32], [INFO] [stdout] 825 | | indices: &[u32], [INFO] [stdout] 826 | | data: &[f64], [INFO] [stdout] ... | [INFO] [stdout] 833 | | total: usize, [INFO] [stdout] 834 | | ) -> Stripe { [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: the loop variable `j` is only used to index `buf` [INFO] [stdout] --> src/striped_unifrac.rs:910:14 [INFO] [stdout] | [INFO] [stdout] 910 | for j in start..buf.len() { [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] 910 - for j in start..buf.len() { [INFO] [stdout] 910 + for in buf.iter_mut().skip(start) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/striped_unifrac.rs:923:1 [INFO] [stdout] | [INFO] [stdout] 923 | / fn unifrac_striped_par_weighted( [INFO] [stdout] 924 | | _post: &[usize], [INFO] [stdout] 925 | | kids: &[Vec], [INFO] [stdout] 926 | | lens: &[f32], [INFO] [stdout] ... | [INFO] [stdout] 931 | | col_sums: &[f64], [INFO] [stdout] 932 | | ) -> Vec { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `v` is used to index `kids` [INFO] [stdout] --> src/striped_unifrac.rs:939:18 [INFO] [stdout] | [INFO] [stdout] 939 | for v in 0..total { [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] 939 - for v in 0..total { [INFO] [stdout] 939 + for (v, ) in kids.iter().enumerate().take(total) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/striped_unifrac.rs:951:16 [INFO] [stdout] | [INFO] [stdout] 951 | let nblk = (nsamp + blk - 1) / blk; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nsamp.div_ceil(blk)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/striped_unifrac.rs:1115:1 [INFO] [stdout] | [INFO] [stdout] 1115 | / fn unifrac_striped_par_variance_adjusted( [INFO] [stdout] 1116 | | _post: &[usize], [INFO] [stdout] 1117 | | kids: &[Vec], [INFO] [stdout] 1118 | | lens: &[f32], [INFO] [stdout] ... | [INFO] [stdout] 1123 | | col_sums: &[f64], // true per-sample totals (raw counts) [INFO] [stdout] 1124 | | ) -> Vec { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `v` is used to index `kids` [INFO] [stdout] --> src/striped_unifrac.rs:1129:18 [INFO] [stdout] | [INFO] [stdout] 1129 | for v in 0..total { [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] 1129 - for v in 0..total { [INFO] [stdout] 1129 + for (v, ) in kids.iter().enumerate().take(total) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/striped_unifrac.rs:1141:16 [INFO] [stdout] | [INFO] [stdout] 1141 | let nblk = (nsamp + blk - 1) / blk; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nsamp.div_ceil(blk)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/striped_unifrac.rs:1315:1 [INFO] [stdout] | [INFO] [stdout] 1315 | / fn unifrac_striped_par_generalized( [INFO] [stdout] 1316 | | _post: &[usize], [INFO] [stdout] 1317 | | kids: &[Vec], [INFO] [stdout] 1318 | | lens: &[f32], [INFO] [stdout] ... | [INFO] [stdout] 1324 | | alpha: f64, [INFO] [stdout] 1325 | | ) -> Vec { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `v` is used to index `kids` [INFO] [stdout] --> src/striped_unifrac.rs:1332:18 [INFO] [stdout] | [INFO] [stdout] 1332 | for v in 0..total { [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] 1332 - for v in 0..total { [INFO] [stdout] 1332 + for (v, ) in kids.iter().enumerate().take(total) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/striped_unifrac.rs:1344:16 [INFO] [stdout] | [INFO] [stdout] 1344 | let nblk = (nsamp + blk - 1) / blk; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nsamp.div_ceil(blk)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/striped_unifrac.rs:1605:30 [INFO] [stdout] | [INFO] [stdout] 1605 | fn read_biom_csr(p: &str) -> Result<(Vec, Vec, Vec, Vec)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/striped_unifrac.rs:1633:37 [INFO] [stdout] | [INFO] [stdout] 1633 | fn read_biom_csr_values(p: &str) -> Result<(Vec, Vec, Vec, Vec, Vec)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/striped_unifrac.rs:1762:25 [INFO] [stdout] | [INFO] [stdout] 1762 | .unwrap_or_else(|| num_cpus::get()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `num_cpus::get` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `counts` [INFO] [stdout] --> src/striped_unifrac.rs:1868:22 [INFO] [stdout] | [INFO] [stdout] 1868 | for r in 0..counts.len() { [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] 1868 - for r in 0..counts.len() { [INFO] [stdout] 1868 + for in &counts { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `counts` [INFO] [stdout] --> src/striped_unifrac.rs:1948:22 [INFO] [stdout] | [INFO] [stdout] 1948 | for r in 0..counts.len() { [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] 1948 - for r in 0..counts.len() { [INFO] [stdout] 1948 + for in &counts { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `counts` [INFO] [stdout] --> src/striped_unifrac.rs:1992:22 [INFO] [stdout] | [INFO] [stdout] 1992 | for r in 0..counts.len() { [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] 1992 - for r in 0..counts.len() { [INFO] [stdout] 1992 + for in &counts { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is only used to index `indices` [INFO] [stdout] --> src/striped_unifrac.rs:2060:30 [INFO] [stdout] | [INFO] [stdout] 2060 | for k in start..stop { [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] 2060 - for k in start..stop { [INFO] [stdout] 2060 + for in indices.iter().take(stop).skip(start) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/dartunifrac.rs:228:27 [INFO] [stdout] | [INFO] [stdout] 228 | fn read_table(p: &str) -> Result<(Vec, Vec, Vec>)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/dartunifrac.rs:258:34 [INFO] [stdout] | [INFO] [stdout] 258 | fn read_table_counts(p: &str) -> Result<(Vec, Vec, Vec>)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/dartunifrac.rs:282:30 [INFO] [stdout] | [INFO] [stdout] 282 | fn read_biom_csr(p: &str) -> Result<(Vec, Vec, Vec, Vec)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/dartunifrac.rs:309:6 [INFO] [stdout] | [INFO] [stdout] 309 | ) -> Result<(Vec, Vec, Vec, Vec, Vec)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `bi` is used to index `col` [INFO] [stdout] --> src/dartunifrac.rs:537:23 [INFO] [stdout] | [INFO] [stdout] 537 | for bi in 0..h { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 537 - for bi in 0..h { [INFO] [stdout] 537 + for (bi, ) in col.iter_mut().enumerate().take(h) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f32` -> `f32`) [INFO] [stdout] --> src/dartunifrac.rs:542:21 [INFO] [stdout] | [INFO] [stdout] 542 | dh.eval(&sketches[i], &sketches[j]) as f32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `dh.eval(&sketches[i], &sketches[j])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `bi` is used to index `col` [INFO] [stdout] --> src/dartunifrac.rs:626:23 [INFO] [stdout] | [INFO] [stdout] 626 | for bi in 0..h { [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] 626 - for bi in 0..h { [INFO] [stdout] 626 + for (bi, ) in col.iter_mut().enumerate().take(h) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f32` -> `f32`) [INFO] [stdout] --> src/dartunifrac.rs:631:21 [INFO] [stdout] | [INFO] [stdout] 631 | dh.eval(&sketches[i], &sketches[j]) as f32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `dh.eval(&sketches[i], &sketches[j])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `bi` is used to index `col` [INFO] [stdout] --> src/dartunifrac.rs:715:23 [INFO] [stdout] | [INFO] [stdout] 715 | for bi in 0..h { [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] 715 - for bi in 0..h { [INFO] [stdout] 715 + for (bi, ) in col.iter_mut().enumerate().take(h) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f32` -> `f32`) [INFO] [stdout] --> src/dartunifrac.rs:720:21 [INFO] [stdout] | [INFO] [stdout] 720 | dh.eval(&sketches[i], &sketches[j]) as f32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `dh.eval(&sketches[i], &sketches[j])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `kk` is only used to index `rowind` [INFO] [stdout] --> src/dartunifrac.rs:929:31 [INFO] [stdout] | [INFO] [stdout] 929 | for kk in colptr[s]..colptr[s + 1] { [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] 929 - for kk in colptr[s]..colptr[s + 1] { [INFO] [stdout] 929 + for in rowind.iter().take(colptr[s + 1]).skip(colptr[s]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `v` is used to index `kids` [INFO] [stdout] --> src/dartunifrac.rs:1045:14 [INFO] [stdout] | [INFO] [stdout] 1045 | for v in 0..total { [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] 1045 - for v in 0..total { [INFO] [stdout] 1045 + for (v, ) in kids.iter().enumerate().take(total) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `counts` [INFO] [stdout] --> src/dartunifrac.rs:1148:18 [INFO] [stdout] | [INFO] [stdout] 1148 | for r in 0..taxa.len() { [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] 1148 - for r in 0..taxa.len() { [INFO] [stdout] 1148 + for in counts.iter().take(taxa.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `kk` is only used to index `rowind` [INFO] [stdout] --> src/dartunifrac.rs:1726:31 [INFO] [stdout] | [INFO] [stdout] 1726 | for kk in colptr[s]..colptr[s + 1] { [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] 1726 - for kk in colptr[s]..colptr[s + 1] { [INFO] [stdout] 1726 + for in rowind.iter().take(colptr[s + 1]).skip(colptr[s]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/striped_unifrac.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | //! (works for tens-of-thousands samples) [INFO] [stdout] | ^^^^^ help: try using ` ` (3 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `counts` [INFO] [stdout] --> src/dartunifrac.rs:1894:18 [INFO] [stdout] | [INFO] [stdout] 1894 | for r in 0..taxa.len() { [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] 1894 - for r in 0..taxa.len() { [INFO] [stdout] 1894 + for in counts.iter().take(taxa.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/striped_unifrac.rs:167:27 [INFO] [stdout] | [INFO] [stdout] 167 | fn read_table(p: &str) -> Result<(Vec, Vec, Vec>)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/striped_unifrac.rs:189:34 [INFO] [stdout] | [INFO] [stdout] 189 | fn read_table_counts(p: &str) -> Result<(Vec, Vec, Vec>)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `s` is used to index `rel_counts` [INFO] [stdout] --> src/striped_unifrac.rs:282:14 [INFO] [stdout] | [INFO] [stdout] 282 | for s in 0..nsamp { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 282 - for s in 0..nsamp { [INFO] [stdout] 282 + for (s, ) in rel_counts.iter().enumerate().take(nsamp) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/striped_unifrac.rs:297:5 [INFO] [stdout] | [INFO] [stdout] 297 | (nsamp + blk - 1) / blk [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nsamp.div_ceil(blk)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `wi` is used to index `words` [INFO] [stdout] --> src/striped_unifrac.rs:366:15 [INFO] [stdout] | [INFO] [stdout] 366 | for wi in w0..w1 { [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] 366 - for wi in w0..w1 { [INFO] [stdout] 366 + for (wi, ) in words.iter().enumerate().take(w1).skip(w0) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/striped_unifrac.rs:414:1 [INFO] [stdout] | [INFO] [stdout] 414 | / fn unweighted_accumulate_node( [INFO] [stdout] 415 | | len: f64, [INFO] [stdout] 416 | | bw: usize, [INFO] [stdout] 417 | | bh: usize, [INFO] [stdout] ... | [INFO] [stdout] 422 | | shared: &mut [f64], [INFO] [stdout] 423 | | ) { [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: manually reimplementing `div_ceil` [INFO] [stdout] --> src/striped_unifrac.rs:512:18 [INFO] [stdout] | [INFO] [stdout] 512 | let stripe = (nsamp + n_threads - 1) / n_threads; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nsamp.div_ceil(n_threads)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/dartunifrac.rs:2395:25 [INFO] [stdout] | [INFO] [stdout] 2395 | .unwrap_or_else(|| num_cpus::get()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `num_cpus::get` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant redefinition of a binding `kids` [INFO] [stdout] --> src/striped_unifrac.rs:532:13 [INFO] [stdout] | [INFO] [stdout] 532 | let kids = kids; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: `kids` is initially defined here [INFO] [stdout] --> src/striped_unifrac.rs:501:5 [INFO] [stdout] | [INFO] [stdout] 501 | kids: &[Vec], [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_locals [INFO] [stdout] = note: `#[warn(clippy::redundant_locals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant redefinition of a binding `post` [INFO] [stdout] --> src/striped_unifrac.rs:533:13 [INFO] [stdout] | [INFO] [stdout] 533 | let post = post; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: `post` is initially defined here [INFO] [stdout] --> src/striped_unifrac.rs:500:5 [INFO] [stdout] | [INFO] [stdout] 500 | post: &[usize], [INFO] [stdout] | ^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_locals [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `w` is only used to index `node_masks_t` [INFO] [stdout] --> src/striped_unifrac.rs:548:34 [INFO] [stdout] | [INFO] [stdout] 548 | for w in 0..words_str { [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] 548 - for w in 0..words_str { [INFO] [stdout] 548 + for in node_masks_t.iter_mut().take(words_str) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `tid` is used to index `node_masks` [INFO] [stdout] --> src/striped_unifrac.rs:567:20 [INFO] [stdout] | [INFO] [stdout] 567 | for tid in 0..n_threads { [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] 567 - for tid in 0..n_threads { [INFO] [stdout] 567 + for (tid, ) in node_masks.iter().enumerate().take(n_threads) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/striped_unifrac.rs:608:16 [INFO] [stdout] | [INFO] [stdout] 608 | let nblk = (nsamp + blk - 1) / blk; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nsamp.div_ceil(blk)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant redefinition of a binding `ptr` [INFO] [stdout] --> src/striped_unifrac.rs:626:13 [INFO] [stdout] | [INFO] [stdout] 626 | let ptr = ptr; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: `ptr` is initially defined here [INFO] [stdout] --> src/striped_unifrac.rs:616:9 [INFO] [stdout] | [INFO] [stdout] 616 | let ptr = DistPtr(unsafe { NonNull::new_unchecked(dist.as_ptr() as *mut f64) }); [INFO] [stdout] | ^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_locals [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/striped_unifrac.rs:766:1 [INFO] [stdout] | [INFO] [stdout] 766 | / fn build_stripe_dense( [INFO] [stdout] 767 | | counts: &[Vec], [INFO] [stdout] 768 | | row2leaf: &[Option], [INFO] [stdout] 769 | | leaf_ids: &[usize], [INFO] [stdout] ... | [INFO] [stdout] 774 | | total: usize, [INFO] [stdout] 775 | | ) -> Stripe { [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/striped_unifrac.rs:823:1 [INFO] [stdout] | [INFO] [stdout] 823 | / fn build_stripe_csr( [INFO] [stdout] 824 | | indptr: &[u32], [INFO] [stdout] 825 | | indices: &[u32], [INFO] [stdout] 826 | | data: &[f64], [INFO] [stdout] ... | [INFO] [stdout] 833 | | total: usize, [INFO] [stdout] 834 | | ) -> Stripe { [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: the loop variable `j` is only used to index `buf` [INFO] [stdout] --> src/striped_unifrac.rs:910:14 [INFO] [stdout] | [INFO] [stdout] 910 | for j in start..buf.len() { [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] 910 - for j in start..buf.len() { [INFO] [stdout] 910 + for in buf.iter_mut().skip(start) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/striped_unifrac.rs:923:1 [INFO] [stdout] | [INFO] [stdout] 923 | / fn unifrac_striped_par_weighted( [INFO] [stdout] 924 | | _post: &[usize], [INFO] [stdout] 925 | | kids: &[Vec], [INFO] [stdout] 926 | | lens: &[f32], [INFO] [stdout] ... | [INFO] [stdout] 931 | | col_sums: &[f64], [INFO] [stdout] 932 | | ) -> Vec { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `v` is used to index `kids` [INFO] [stdout] --> src/striped_unifrac.rs:939:18 [INFO] [stdout] | [INFO] [stdout] 939 | for v in 0..total { [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] 939 - for v in 0..total { [INFO] [stdout] 939 + for (v, ) in kids.iter().enumerate().take(total) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/striped_unifrac.rs:951:16 [INFO] [stdout] | [INFO] [stdout] 951 | let nblk = (nsamp + blk - 1) / blk; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nsamp.div_ceil(blk)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/striped_unifrac.rs:1115:1 [INFO] [stdout] | [INFO] [stdout] 1115 | / fn unifrac_striped_par_variance_adjusted( [INFO] [stdout] 1116 | | _post: &[usize], [INFO] [stdout] 1117 | | kids: &[Vec], [INFO] [stdout] 1118 | | lens: &[f32], [INFO] [stdout] ... | [INFO] [stdout] 1123 | | col_sums: &[f64], // true per-sample totals (raw counts) [INFO] [stdout] 1124 | | ) -> Vec { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `v` is used to index `kids` [INFO] [stdout] --> src/striped_unifrac.rs:1129:18 [INFO] [stdout] | [INFO] [stdout] 1129 | for v in 0..total { [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] 1129 - for v in 0..total { [INFO] [stdout] 1129 + for (v, ) in kids.iter().enumerate().take(total) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/striped_unifrac.rs:1141:16 [INFO] [stdout] | [INFO] [stdout] 1141 | let nblk = (nsamp + blk - 1) / blk; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nsamp.div_ceil(blk)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/striped_unifrac.rs:1315:1 [INFO] [stdout] | [INFO] [stdout] 1315 | / fn unifrac_striped_par_generalized( [INFO] [stdout] 1316 | | _post: &[usize], [INFO] [stdout] 1317 | | kids: &[Vec], [INFO] [stdout] 1318 | | lens: &[f32], [INFO] [stdout] ... | [INFO] [stdout] 1324 | | alpha: f64, [INFO] [stdout] 1325 | | ) -> Vec { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `v` is used to index `kids` [INFO] [stdout] --> src/striped_unifrac.rs:1332:18 [INFO] [stdout] | [INFO] [stdout] 1332 | for v in 0..total { [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] 1332 - for v in 0..total { [INFO] [stdout] 1332 + for (v, ) in kids.iter().enumerate().take(total) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/striped_unifrac.rs:1344:16 [INFO] [stdout] | [INFO] [stdout] 1344 | let nblk = (nsamp + blk - 1) / blk; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `nsamp.div_ceil(blk)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/striped_unifrac.rs:1605:30 [INFO] [stdout] | [INFO] [stdout] 1605 | fn read_biom_csr(p: &str) -> Result<(Vec, Vec, Vec, Vec)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/striped_unifrac.rs:1633:37 [INFO] [stdout] | [INFO] [stdout] 1633 | fn read_biom_csr_values(p: &str) -> Result<(Vec, Vec, Vec, Vec, Vec)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/striped_unifrac.rs:1762:25 [INFO] [stdout] | [INFO] [stdout] 1762 | .unwrap_or_else(|| num_cpus::get()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `num_cpus::get` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `counts` [INFO] [stdout] --> src/striped_unifrac.rs:1868:22 [INFO] [stdout] | [INFO] [stdout] 1868 | for r in 0..counts.len() { [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] 1868 - for r in 0..counts.len() { [INFO] [stdout] 1868 + for in &counts { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `counts` [INFO] [stdout] --> src/striped_unifrac.rs:1948:22 [INFO] [stdout] | [INFO] [stdout] 1948 | for r in 0..counts.len() { [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] 1948 - for r in 0..counts.len() { [INFO] [stdout] 1948 + for in &counts { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `counts` [INFO] [stdout] --> src/striped_unifrac.rs:1992:22 [INFO] [stdout] | [INFO] [stdout] 1992 | for r in 0..counts.len() { [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] 1992 - for r in 0..counts.len() { [INFO] [stdout] 1992 + for in &counts { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is only used to index `indices` [INFO] [stdout] --> src/striped_unifrac.rs:2060:30 [INFO] [stdout] | [INFO] [stdout] 2060 | for k in start..stop { [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] 2060 - for k in start..stop { [INFO] [stdout] 2060 + for in indices.iter().take(stop).skip(start) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/dartunifrac.rs:228:27 [INFO] [stdout] | [INFO] [stdout] 228 | fn read_table(p: &str) -> Result<(Vec, Vec, Vec>)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/dartunifrac.rs:258:34 [INFO] [stdout] | [INFO] [stdout] 258 | fn read_table_counts(p: &str) -> Result<(Vec, Vec, Vec>)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/dartunifrac.rs:282:30 [INFO] [stdout] | [INFO] [stdout] 282 | fn read_biom_csr(p: &str) -> Result<(Vec, Vec, Vec, Vec)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/dartunifrac.rs:309:6 [INFO] [stdout] | [INFO] [stdout] 309 | ) -> Result<(Vec, Vec, Vec, Vec, Vec)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `bi` is used to index `col` [INFO] [stdout] --> src/dartunifrac.rs:537:23 [INFO] [stdout] | [INFO] [stdout] 537 | for bi in 0..h { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 537 - for bi in 0..h { [INFO] [stdout] 537 + for (bi, ) in col.iter_mut().enumerate().take(h) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f32` -> `f32`) [INFO] [stdout] --> src/dartunifrac.rs:542:21 [INFO] [stdout] | [INFO] [stdout] 542 | dh.eval(&sketches[i], &sketches[j]) as f32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `dh.eval(&sketches[i], &sketches[j])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `bi` is used to index `col` [INFO] [stdout] --> src/dartunifrac.rs:626:23 [INFO] [stdout] | [INFO] [stdout] 626 | for bi in 0..h { [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] 626 - for bi in 0..h { [INFO] [stdout] 626 + for (bi, ) in col.iter_mut().enumerate().take(h) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f32` -> `f32`) [INFO] [stdout] --> src/dartunifrac.rs:631:21 [INFO] [stdout] | [INFO] [stdout] 631 | dh.eval(&sketches[i], &sketches[j]) as f32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `dh.eval(&sketches[i], &sketches[j])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `bi` is used to index `col` [INFO] [stdout] --> src/dartunifrac.rs:715:23 [INFO] [stdout] | [INFO] [stdout] 715 | for bi in 0..h { [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] 715 - for bi in 0..h { [INFO] [stdout] 715 + for (bi, ) in col.iter_mut().enumerate().take(h) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f32` -> `f32`) [INFO] [stdout] --> src/dartunifrac.rs:720:21 [INFO] [stdout] | [INFO] [stdout] 720 | dh.eval(&sketches[i], &sketches[j]) as f32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `dh.eval(&sketches[i], &sketches[j])` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `kk` is only used to index `rowind` [INFO] [stdout] --> src/dartunifrac.rs:929:31 [INFO] [stdout] | [INFO] [stdout] 929 | for kk in colptr[s]..colptr[s + 1] { [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] 929 - for kk in colptr[s]..colptr[s + 1] { [INFO] [stdout] 929 + for in rowind.iter().take(colptr[s + 1]).skip(colptr[s]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `v` is used to index `kids` [INFO] [stdout] --> src/dartunifrac.rs:1045:14 [INFO] [stdout] | [INFO] [stdout] 1045 | for v in 0..total { [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] 1045 - for v in 0..total { [INFO] [stdout] 1045 + for (v, ) in kids.iter().enumerate().take(total) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `counts` [INFO] [stdout] --> src/dartunifrac.rs:1148:18 [INFO] [stdout] | [INFO] [stdout] 1148 | for r in 0..taxa.len() { [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] 1148 - for r in 0..taxa.len() { [INFO] [stdout] 1148 + for in counts.iter().take(taxa.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `kk` is only used to index `rowind` [INFO] [stdout] --> src/dartunifrac.rs:1726:31 [INFO] [stdout] | [INFO] [stdout] 1726 | for kk in colptr[s]..colptr[s + 1] { [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] 1726 - for kk in colptr[s]..colptr[s + 1] { [INFO] [stdout] 1726 + for in rowind.iter().take(colptr[s + 1]).skip(colptr[s]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is only used to index `counts` [INFO] [stdout] --> src/dartunifrac.rs:1894:18 [INFO] [stdout] | [INFO] [stdout] 1894 | for r in 0..taxa.len() { [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] 1894 - for r in 0..taxa.len() { [INFO] [stdout] 1894 + for in counts.iter().take(taxa.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/dartunifrac.rs:2395:25 [INFO] [stdout] | [INFO] [stdout] 2395 | .unwrap_or_else(|| num_cpus::get()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `num_cpus::get` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 27s [INFO] running `Command { std: "docker" "inspect" "f2bc85fee91be554389c9ac2d3030c586d00eb2df6b764c089069acffa759e7b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f2bc85fee91be554389c9ac2d3030c586d00eb2df6b764c089069acffa759e7b", kill_on_drop: false }` [INFO] [stdout] f2bc85fee91be554389c9ac2d3030c586d00eb2df6b764c089069acffa759e7b