[INFO] crate finch 0.1.9 is already in cache [INFO] extracting crate finch 0.1.9 into work/ex/clippy-test-run/sources/stable/reg/finch/0.1.9 [INFO] extracting crate finch 0.1.9 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/finch/0.1.9 [INFO] validating manifest of finch-0.1.9 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of finch-0.1.9 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing finch-0.1.9 [INFO] finished frobbing finch-0.1.9 [INFO] frobbed toml for finch-0.1.9 written to work/ex/clippy-test-run/sources/stable/reg/finch/0.1.9/Cargo.toml [INFO] started frobbing finch-0.1.9 [INFO] finished frobbing finch-0.1.9 [INFO] frobbed toml for finch-0.1.9 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/finch/0.1.9/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting finch-0.1.9 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/finch/0.1.9:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 03fc3e27b7604e5cb94800d0a7ceb028ffe6766cd4fac86f765ea439ce2d3422 [INFO] running `"docker" "start" "-a" "03fc3e27b7604e5cb94800d0a7ceb028ffe6766cd4fac86f765ea439ce2d3422"` [INFO] [stderr] Checking murmurhash3 v0.0.5 [INFO] [stderr] Checking capnp v0.8.17 [INFO] [stderr] Checking needletail v0.2.2 [INFO] [stderr] Checking finch v0.1.9 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minhashes.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minhashes.rs:99:13 [INFO] [stderr] | [INFO] [stderr] 99 | seed: seed, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `seed` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/distance.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | containment: containment, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `containment` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/distance.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | jaccard: jaccard, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `jaccard` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/serialization.rs:109:17 [INFO] [stderr] | [INFO] [stderr] 109 | hash: hash, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `hash` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/serialization.rs:110:17 [INFO] [stderr] | [INFO] [stderr] 110 | kmer: kmer, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kmer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/serialization.rs:111:17 [INFO] [stderr] | [INFO] [stderr] 111 | count: count, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `count` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | Reader { reader: reader, } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:125:17 [INFO] [stderr] | [INFO] [stderr] 125 | Builder { builder: builder, } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `builder` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:335:18 [INFO] [stderr] | [INFO] [stderr] 335 | Reader { reader: reader, } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:384:19 [INFO] [stderr] | [INFO] [stderr] 384 | Builder { builder: builder, } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `builder` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:476:20 [INFO] [stderr] | [INFO] [stderr] 476 | Reader { reader: reader, } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:575:21 [INFO] [stderr] | [INFO] [stderr] 575 | Builder { builder: builder, } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `builder` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:775:18 [INFO] [stderr] | [INFO] [stderr] 775 | Reader { reader: reader, } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:824:19 [INFO] [stderr] | [INFO] [stderr] 824 | Builder { builder: builder, } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `builder` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:916:20 [INFO] [stderr] | [INFO] [stderr] 916 | Reader { reader: reader, } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:974:21 [INFO] [stderr] | [INFO] [stderr] 974 | Builder { builder: builder, } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `builder` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | sketches: sketches, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `sketches` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minhashes.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/minhashes.rs:99:13 [INFO] [stderr] | [INFO] [stderr] 99 | seed: seed, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `seed` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/distance.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | containment: containment, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `containment` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/distance.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | jaccard: jaccard, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `jaccard` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/serialization.rs:109:17 [INFO] [stderr] | [INFO] [stderr] 109 | hash: hash, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `hash` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/serialization.rs:110:17 [INFO] [stderr] | [INFO] [stderr] 110 | kmer: kmer, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kmer` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/serialization.rs:111:17 [INFO] [stderr] | [INFO] [stderr] 111 | count: count, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `count` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | Reader { reader: reader, } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:125:17 [INFO] [stderr] | [INFO] [stderr] 125 | Builder { builder: builder, } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `builder` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:335:18 [INFO] [stderr] | [INFO] [stderr] 335 | Reader { reader: reader, } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:384:19 [INFO] [stderr] | [INFO] [stderr] 384 | Builder { builder: builder, } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `builder` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:476:20 [INFO] [stderr] | [INFO] [stderr] 476 | Reader { reader: reader, } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:575:21 [INFO] [stderr] | [INFO] [stderr] 575 | Builder { builder: builder, } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `builder` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:775:18 [INFO] [stderr] | [INFO] [stderr] 775 | Reader { reader: reader, } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:824:19 [INFO] [stderr] | [INFO] [stderr] 824 | Builder { builder: builder, } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `builder` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:916:20 [INFO] [stderr] | [INFO] [stderr] 916 | Reader { reader: reader, } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mash_capnp.rs:974:21 [INFO] [stderr] | [INFO] [stderr] 974 | Builder { builder: builder, } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `builder` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | sketches: sketches, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `sketches` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/minhashes.rs:53:22 [INFO] [stderr] | [INFO] [stderr] 53 | NoHashHasher(0x0000000000000000) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0000_0000_0000_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/statistics.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | return Ok(((sketch.len() - 1) as f32 / (sketch.last().unwrap().hash as f32 / usize::max_value() as f32)) as u64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(((sketch.len() - 1) as f32 / (sketch.last().unwrap().hash as f32 / usize::max_value() as f32)) as u64)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mash_capnp.rs:316:30 [INFO] [stderr] | [INFO] [stderr] 316 | pub const TYPE_ID: u64 = 0xd9d16806af782606; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xd9d1_6806_af78_2606` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mash_capnp.rs:457:32 [INFO] [stderr] | [INFO] [stderr] 457 | pub const TYPE_ID: u64 = 0xcf71219d02db7ad0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xcf71_219d_02db_7ad0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mash_capnp.rs:754:34 [INFO] [stderr] | [INFO] [stderr] 754 | pub const TYPE_ID: u64 = 0x96c3ea4cbfe143bf; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x96c3_ea4c_bfe1_43bf` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mash_capnp.rs:897:32 [INFO] [stderr] | [INFO] [stderr] 897 | pub const TYPE_ID: u64 = 0xe1ddf186e2b359dd; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xe1dd_f186_e2b3_59dd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mash_capnp.rs:1064:34 [INFO] [stderr] | [INFO] [stderr] 1064 | pub const TYPE_ID: u64 = 0xa648d7188f2259f6; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xa648_d718_8f22_59f6` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/minhashes.rs:53:22 [INFO] [stderr] | [INFO] [stderr] 53 | NoHashHasher(0x0000000000000000) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x0000_0000_0000_0000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/statistics.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | return Ok(((sketch.len() - 1) as f32 / (sketch.last().unwrap().hash as f32 / usize::max_value() as f32)) as u64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(((sketch.len() - 1) as f32 / (sketch.last().unwrap().hash as f32 / usize::max_value() as f32)) as u64)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mash_capnp.rs:316:30 [INFO] [stderr] | [INFO] [stderr] 316 | pub const TYPE_ID: u64 = 0xd9d16806af782606; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xd9d1_6806_af78_2606` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mash_capnp.rs:457:32 [INFO] [stderr] | [INFO] [stderr] 457 | pub const TYPE_ID: u64 = 0xcf71219d02db7ad0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xcf71_219d_02db_7ad0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mash_capnp.rs:754:34 [INFO] [stderr] | [INFO] [stderr] 754 | pub const TYPE_ID: u64 = 0x96c3ea4cbfe143bf; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0x96c3_ea4c_bfe1_43bf` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mash_capnp.rs:897:32 [INFO] [stderr] | [INFO] [stderr] 897 | pub const TYPE_ID: u64 = 0xe1ddf186e2b359dd; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xe1dd_f186_e2b3_59dd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/mash_capnp.rs:1064:34 [INFO] [stderr] | [INFO] [stderr] 1064 | pub const TYPE_ID: u64 = 0xa648d7188f2259f6; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xa648_d718_8f22_59f6` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unused variable: `queue` [INFO] [stderr] --> src/minhashes.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | let mut queue = MinHashKmers::new(100, 42); [INFO] [stderr] | ^^^^^ help: consider using `_queue` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/minhashes.rs:185:9 [INFO] [stderr] | [INFO] [stderr] 185 | let mut queue = MinHashKmers::new(100, 42); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/minhashes.rs:61:14 [INFO] [stderr] | [INFO] [stderr] 61 | ((bytes[0] as u64) << 24) + [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(bytes[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/minhashes.rs:62:14 [INFO] [stderr] | [INFO] [stderr] 62 | ((bytes[1] as u64) << 16) + [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(bytes[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/minhashes.rs:63:14 [INFO] [stderr] | [INFO] [stderr] 63 | ((bytes[2] as u64) << 8) + [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(bytes[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/minhashes.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | (bytes[3] as u64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(bytes[3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/minhashes.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | / if self.counts.contains_key(&new_hash) { [INFO] [stderr] 115 | | // let _lock = self.map_lock.lock().unwrap(); [INFO] [stderr] 116 | | let count = self.counts.entry(new_hash).or_insert((0u16, 0u16)); [INFO] [stderr] 117 | | (*count).0 += 1; [INFO] [stderr] ... | [INFO] [stderr] 135 | | // drop(_map_lock); [INFO] [stderr] 136 | | } [INFO] [stderr] | |_____________^ help: consider using: `self.counts.entry(new_hash)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/minhashes.rs:118:31 [INFO] [stderr] | [INFO] [stderr] 118 | (*count).1 += extra_count as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(extra_count)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/minhashes.rs:127:53 [INFO] [stderr] | [INFO] [stderr] 127 | self.counts.insert(new_hash, (1u16, extra_count as u16)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(extra_count)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/minhashes.rs:132:41 [INFO] [stderr] | [INFO] [stderr] 132 | self.total_count -= old_count as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(old_count)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/minhashes.rs:149:27 [INFO] [stderr] | [INFO] [stderr] 149 | let counts = *self.counts.get(&item.hash).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.counts[&item.hash]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/filtering.rs:32:16 [INFO] [stderr] | [INFO] [stderr] 32 | if let None = low_abun_filter { [INFO] [stderr] | _________- ^^^^ [INFO] [stderr] 33 | | low_abun_filter = Some(cutoff); [INFO] [stderr] 34 | | filter_stats.insert(String::from("errFilter"), filters.err_filter.to_string()); [INFO] [stderr] 35 | | } [INFO] [stderr] | |_________- help: try this: `if low_abun_filter.is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/filtering.rs:198:13 [INFO] [stderr] | [INFO] [stderr] 198 | if (lowest_strand_count as f32 / kmer.count as f32) >= ratio_cutoff { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(lowest_strand_count)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/filtering.rs:198:42 [INFO] [stderr] | [INFO] [stderr] 198 | if (lowest_strand_count as f32 / kmer.count as f32) >= ratio_cutoff { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(kmer.count)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/distance.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | / let distances; [INFO] [stderr] 12 | | if mash_mode { [INFO] [stderr] 13 | | distances = raw_mash_distance(sketch1, sketch2); [INFO] [stderr] 14 | | } else { [INFO] [stderr] 15 | | distances = raw_distance(sketch1, sketch2); [INFO] [stderr] 16 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let distances = if mash_mode { raw_mash_distance(sketch1, sketch2) } else { raw_distance(sketch1, sketch2) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `sketch1`. [INFO] [stderr] --> src/distance.rs:79:14 [INFO] [stderr] | [INFO] [stderr] 79 | for i in 0..sketch1.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 79 | for in &sketch1 { [INFO] [stderr] | ^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: item `serialization::Sketch` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/serialization.rs:140:1 [INFO] [stderr] | [INFO] [stderr] 140 | / impl Sketch { [INFO] [stderr] 141 | | pub fn new(name: &str, length: u64, n_kmers: u64, kmercounts: Vec, filters: &HashMap) -> Self { [INFO] [stderr] 142 | | Sketch { [INFO] [stderr] 143 | | name: String::from(name), [INFO] [stderr] ... | [INFO] [stderr] 165 | | } [INFO] [stderr] 166 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/serialization.rs:174:33 [INFO] [stderr] | [INFO] [stderr] 174 | mash_file.set_kmer_size(sketches.kmer as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(sketches.kmer)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/serialization.rs:175:35 [INFO] [stderr] | [INFO] [stderr] 175 | mash_file.set_window_size(sketches.kmer as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(sketches.kmer)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/serialization.rs:206:54 [INFO] [stderr] | [INFO] [stderr] 206 | mash_counts.reborrow().set(j as u32, hash.count as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(hash.count)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/serialization.rs:229:19 [INFO] [stderr] | [INFO] [stderr] 229 | hashSeed: mash_data.get_kmer_size() as u64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(mash_data.get_kmer_size())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/statistics.rs:6:28 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn cardinality(sketch: &Vec) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[KmerCount]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | / pub fn borrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 42 | | Reader { .. *self } [INFO] [stderr] 43 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | / pub fn reborrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 46 | | Reader { .. *self } [INFO] [stderr] 47 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/mash_capnp.rs:149:22 [INFO] [stderr] | [INFO] [stderr] 149 | pub fn as_reader(self) -> Reader<'a,> { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:153:5 [INFO] [stderr] | [INFO] [stderr] 153 | / pub fn borrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 154 | | Builder { .. *self } [INFO] [stderr] 155 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:156:5 [INFO] [stderr] | [INFO] [stderr] 156 | / pub fn reborrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 157 | | Builder { .. *self } [INFO] [stderr] 158 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:160:5 [INFO] [stderr] | [INFO] [stderr] 160 | / pub fn borrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 161 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 162 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:163:5 [INFO] [stderr] | [INFO] [stderr] 163 | / pub fn reborrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 164 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 165 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:353:7 [INFO] [stderr] | [INFO] [stderr] 353 | / pub fn borrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 354 | | Reader { .. *self } [INFO] [stderr] 355 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:357:7 [INFO] [stderr] | [INFO] [stderr] 357 | / pub fn reborrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 358 | | Reader { .. *self } [INFO] [stderr] 359 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/mash_capnp.rs:408:24 [INFO] [stderr] | [INFO] [stderr] 408 | pub fn as_reader(self) -> Reader<'a,> { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:412:7 [INFO] [stderr] | [INFO] [stderr] 412 | / pub fn borrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 413 | | Builder { .. *self } [INFO] [stderr] 414 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:415:7 [INFO] [stderr] | [INFO] [stderr] 415 | / pub fn reborrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 416 | | Builder { .. *self } [INFO] [stderr] 417 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:419:7 [INFO] [stderr] | [INFO] [stderr] 419 | / pub fn borrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 420 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 421 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:422:7 [INFO] [stderr] | [INFO] [stderr] 422 | / pub fn reborrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 423 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 424 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:494:9 [INFO] [stderr] | [INFO] [stderr] 494 | / pub fn borrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 495 | | Reader { .. *self } [INFO] [stderr] 496 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:498:9 [INFO] [stderr] | [INFO] [stderr] 498 | / pub fn reborrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 499 | | Reader { .. *self } [INFO] [stderr] 500 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/mash_capnp.rs:599:26 [INFO] [stderr] | [INFO] [stderr] 599 | pub fn as_reader(self) -> Reader<'a,> { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:603:9 [INFO] [stderr] | [INFO] [stderr] 603 | / pub fn borrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 604 | | Builder { .. *self } [INFO] [stderr] 605 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:606:9 [INFO] [stderr] | [INFO] [stderr] 606 | / pub fn reborrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 607 | | Builder { .. *self } [INFO] [stderr] 608 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:610:9 [INFO] [stderr] | [INFO] [stderr] 610 | / pub fn borrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 611 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 612 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:613:9 [INFO] [stderr] | [INFO] [stderr] 613 | / pub fn reborrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 614 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 615 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:793:7 [INFO] [stderr] | [INFO] [stderr] 793 | / pub fn borrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 794 | | Reader { .. *self } [INFO] [stderr] 795 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:797:7 [INFO] [stderr] | [INFO] [stderr] 797 | / pub fn reborrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 798 | | Reader { .. *self } [INFO] [stderr] 799 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/mash_capnp.rs:848:24 [INFO] [stderr] | [INFO] [stderr] 848 | pub fn as_reader(self) -> Reader<'a,> { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:852:7 [INFO] [stderr] | [INFO] [stderr] 852 | / pub fn borrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 853 | | Builder { .. *self } [INFO] [stderr] 854 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:855:7 [INFO] [stderr] | [INFO] [stderr] 855 | / pub fn reborrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 856 | | Builder { .. *self } [INFO] [stderr] 857 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:859:7 [INFO] [stderr] | [INFO] [stderr] 859 | / pub fn borrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 860 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 861 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:862:7 [INFO] [stderr] | [INFO] [stderr] 862 | / pub fn reborrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 863 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 864 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:934:9 [INFO] [stderr] | [INFO] [stderr] 934 | / pub fn borrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 935 | | Reader { .. *self } [INFO] [stderr] 936 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:938:9 [INFO] [stderr] | [INFO] [stderr] 938 | / pub fn reborrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 939 | | Reader { .. *self } [INFO] [stderr] 940 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/mash_capnp.rs:998:26 [INFO] [stderr] | [INFO] [stderr] 998 | pub fn as_reader(self) -> Reader<'a,> { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:1002:9 [INFO] [stderr] | [INFO] [stderr] 1002 | / pub fn borrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 1003 | | Builder { .. *self } [INFO] [stderr] 1004 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:1005:9 [INFO] [stderr] | [INFO] [stderr] 1005 | / pub fn reborrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 1006 | | Builder { .. *self } [INFO] [stderr] 1007 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:1009:9 [INFO] [stderr] | [INFO] [stderr] 1009 | / pub fn borrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 1010 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 1011 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:1012:9 [INFO] [stderr] | [INFO] [stderr] 1012 | / pub fn reborrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 1013 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 1014 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/lib.rs:40:33 [INFO] [stderr] | [INFO] [stderr] 40 | fastx_cli(path.to_str().ok_or(format_err!("Couldn't make path into string"))?, |seq_type| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Couldn't make path into string"))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/lib.rs:42:20 [INFO] [stderr] | [INFO] [stderr] 42 | if let None = filters.filter_on { [INFO] [stderr] | _____________- ^^^^ [INFO] [stderr] 43 | | filters.filter_on = match seq_type { [INFO] [stderr] 44 | | "FASTA" => Some(false), [INFO] [stderr] 45 | | "FASTQ" => Some(true), [INFO] [stderr] 46 | | _ => panic!("Unknown sequence type"), [INFO] [stderr] 47 | | }; [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____________- help: try this: `if filters.filter_on.is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:52:32 [INFO] [stderr] | [INFO] [stderr] 52 | let rc_count = match is_rev_complement { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 53 | | true => 1u8, [INFO] [stderr] 54 | | false => 0u8, [INFO] [stderr] 55 | | }; [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if is_rev_complement { 1u8 } else { 0u8 }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/lib.rs:69:41 [INFO] [stderr] | [INFO] [stderr] 69 | let basename = path.file_name().ok_or(format_err!("Couldn't get filename from path"))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Couldn't get filename from path"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/lib.rs:70:52 [INFO] [stderr] | [INFO] [stderr] 70 | let sketch = Sketch::new(basename.to_str().ok_or(format_err!("Couldn't make filename into string"))?, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Couldn't make filename into string"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/lib.rs:100:20 [INFO] [stderr] | [INFO] [stderr] 100 | if let None = filters.filter_on { [INFO] [stderr] | _____________- ^^^^ [INFO] [stderr] 101 | | filters.filter_on = match seq_type { [INFO] [stderr] 102 | | "FASTA" => Some(false), [INFO] [stderr] 103 | | "FASTQ" => Some(true), [INFO] [stderr] 104 | | _ => panic!("Unknown sequence type"), [INFO] [stderr] 105 | | }; [INFO] [stderr] 106 | | } [INFO] [stderr] | |_____________- help: try this: `if filters.filter_on.is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:110:32 [INFO] [stderr] | [INFO] [stderr] 110 | let rc_count = match is_rev_complement { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 111 | | true => 1u8, [INFO] [stderr] 112 | | false => 0u8, [INFO] [stderr] 113 | | }; [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if is_rev_complement { 1u8 } else { 0u8 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/minhashes.rs:61:14 [INFO] [stderr] | [INFO] [stderr] 61 | ((bytes[0] as u64) << 24) + [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(bytes[0])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/minhashes.rs:62:14 [INFO] [stderr] | [INFO] [stderr] 62 | ((bytes[1] as u64) << 16) + [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(bytes[1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/minhashes.rs:63:14 [INFO] [stderr] | [INFO] [stderr] 63 | ((bytes[2] as u64) << 8) + [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(bytes[2])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/minhashes.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | (bytes[3] as u64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(bytes[3])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/minhashes.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | / if self.counts.contains_key(&new_hash) { [INFO] [stderr] 115 | | // let _lock = self.map_lock.lock().unwrap(); [INFO] [stderr] 116 | | let count = self.counts.entry(new_hash).or_insert((0u16, 0u16)); [INFO] [stderr] 117 | | (*count).0 += 1; [INFO] [stderr] ... | [INFO] [stderr] 135 | | // drop(_map_lock); [INFO] [stderr] 136 | | } [INFO] [stderr] | |_____________^ help: consider using: `self.counts.entry(new_hash)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/minhashes.rs:118:31 [INFO] [stderr] | [INFO] [stderr] 118 | (*count).1 += extra_count as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(extra_count)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/minhashes.rs:127:53 [INFO] [stderr] | [INFO] [stderr] 127 | self.counts.insert(new_hash, (1u16, extra_count as u16)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(extra_count)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/minhashes.rs:132:41 [INFO] [stderr] | [INFO] [stderr] 132 | self.total_count -= old_count as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(old_count)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/minhashes.rs:149:27 [INFO] [stderr] | [INFO] [stderr] 149 | let counts = *self.counts.get(&item.hash).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.counts[&item.hash]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/filtering.rs:32:16 [INFO] [stderr] | [INFO] [stderr] 32 | if let None = low_abun_filter { [INFO] [stderr] | _________- ^^^^ [INFO] [stderr] 33 | | low_abun_filter = Some(cutoff); [INFO] [stderr] 34 | | filter_stats.insert(String::from("errFilter"), filters.err_filter.to_string()); [INFO] [stderr] 35 | | } [INFO] [stderr] | |_________- help: try this: `if low_abun_filter.is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/filtering.rs:198:13 [INFO] [stderr] | [INFO] [stderr] 198 | if (lowest_strand_count as f32 / kmer.count as f32) >= ratio_cutoff { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(lowest_strand_count)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/filtering.rs:198:42 [INFO] [stderr] | [INFO] [stderr] 198 | if (lowest_strand_count as f32 / kmer.count as f32) >= ratio_cutoff { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f32::from(kmer.count)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/distance.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | / let distances; [INFO] [stderr] 12 | | if mash_mode { [INFO] [stderr] 13 | | distances = raw_mash_distance(sketch1, sketch2); [INFO] [stderr] 14 | | } else { [INFO] [stderr] 15 | | distances = raw_distance(sketch1, sketch2); [INFO] [stderr] 16 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let distances = if mash_mode { raw_mash_distance(sketch1, sketch2) } else { raw_distance(sketch1, sketch2) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `sketch1`. [INFO] [stderr] --> src/distance.rs:79:14 [INFO] [stderr] | [INFO] [stderr] 79 | for i in 0..sketch1.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 79 | for in &sketch1 { [INFO] [stderr] | ^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: item `serialization::Sketch` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/serialization.rs:140:1 [INFO] [stderr] | [INFO] [stderr] 140 | / impl Sketch { [INFO] [stderr] 141 | | pub fn new(name: &str, length: u64, n_kmers: u64, kmercounts: Vec, filters: &HashMap) -> Self { [INFO] [stderr] 142 | | Sketch { [INFO] [stderr] 143 | | name: String::from(name), [INFO] [stderr] ... | [INFO] [stderr] 165 | | } [INFO] [stderr] 166 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/serialization.rs:174:33 [INFO] [stderr] | [INFO] [stderr] 174 | mash_file.set_kmer_size(sketches.kmer as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(sketches.kmer)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/serialization.rs:175:35 [INFO] [stderr] | [INFO] [stderr] 175 | mash_file.set_window_size(sketches.kmer as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(sketches.kmer)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/serialization.rs:206:54 [INFO] [stderr] | [INFO] [stderr] 206 | mash_counts.reborrow().set(j as u32, hash.count as u32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(hash.count)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/serialization.rs:229:19 [INFO] [stderr] | [INFO] [stderr] 229 | hashSeed: mash_data.get_kmer_size() as u64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(mash_data.get_kmer_size())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/statistics.rs:6:28 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn cardinality(sketch: &Vec) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: change this to: `&[KmerCount]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | / pub fn borrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 42 | | Reader { .. *self } [INFO] [stderr] 43 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | / pub fn reborrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 46 | | Reader { .. *self } [INFO] [stderr] 47 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/mash_capnp.rs:149:22 [INFO] [stderr] | [INFO] [stderr] 149 | pub fn as_reader(self) -> Reader<'a,> { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:153:5 [INFO] [stderr] | [INFO] [stderr] 153 | / pub fn borrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 154 | | Builder { .. *self } [INFO] [stderr] 155 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:156:5 [INFO] [stderr] | [INFO] [stderr] 156 | / pub fn reborrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 157 | | Builder { .. *self } [INFO] [stderr] 158 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:160:5 [INFO] [stderr] | [INFO] [stderr] 160 | / pub fn borrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 161 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 162 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:163:5 [INFO] [stderr] | [INFO] [stderr] 163 | / pub fn reborrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 164 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 165 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:353:7 [INFO] [stderr] | [INFO] [stderr] 353 | / pub fn borrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 354 | | Reader { .. *self } [INFO] [stderr] 355 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:357:7 [INFO] [stderr] | [INFO] [stderr] 357 | / pub fn reborrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 358 | | Reader { .. *self } [INFO] [stderr] 359 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/mash_capnp.rs:408:24 [INFO] [stderr] | [INFO] [stderr] 408 | pub fn as_reader(self) -> Reader<'a,> { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:412:7 [INFO] [stderr] | [INFO] [stderr] 412 | / pub fn borrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 413 | | Builder { .. *self } [INFO] [stderr] 414 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:415:7 [INFO] [stderr] | [INFO] [stderr] 415 | / pub fn reborrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 416 | | Builder { .. *self } [INFO] [stderr] 417 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:419:7 [INFO] [stderr] | [INFO] [stderr] 419 | / pub fn borrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 420 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 421 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:422:7 [INFO] [stderr] | [INFO] [stderr] 422 | / pub fn reborrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 423 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 424 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:494:9 [INFO] [stderr] | [INFO] [stderr] 494 | / pub fn borrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 495 | | Reader { .. *self } [INFO] [stderr] 496 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:498:9 [INFO] [stderr] | [INFO] [stderr] 498 | / pub fn reborrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 499 | | Reader { .. *self } [INFO] [stderr] 500 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/mash_capnp.rs:599:26 [INFO] [stderr] | [INFO] [stderr] 599 | pub fn as_reader(self) -> Reader<'a,> { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:603:9 [INFO] [stderr] | [INFO] [stderr] 603 | / pub fn borrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 604 | | Builder { .. *self } [INFO] [stderr] 605 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:606:9 [INFO] [stderr] | [INFO] [stderr] 606 | / pub fn reborrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 607 | | Builder { .. *self } [INFO] [stderr] 608 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:610:9 [INFO] [stderr] | [INFO] [stderr] 610 | / pub fn borrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 611 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 612 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:613:9 [INFO] [stderr] | [INFO] [stderr] 613 | / pub fn reborrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 614 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 615 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:793:7 [INFO] [stderr] | [INFO] [stderr] 793 | / pub fn borrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 794 | | Reader { .. *self } [INFO] [stderr] 795 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:797:7 [INFO] [stderr] | [INFO] [stderr] 797 | / pub fn reborrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 798 | | Reader { .. *self } [INFO] [stderr] 799 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/mash_capnp.rs:848:24 [INFO] [stderr] | [INFO] [stderr] 848 | pub fn as_reader(self) -> Reader<'a,> { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:852:7 [INFO] [stderr] | [INFO] [stderr] 852 | / pub fn borrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 853 | | Builder { .. *self } [INFO] [stderr] 854 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:855:7 [INFO] [stderr] | [INFO] [stderr] 855 | / pub fn reborrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 856 | | Builder { .. *self } [INFO] [stderr] 857 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:859:7 [INFO] [stderr] | [INFO] [stderr] 859 | / pub fn borrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 860 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 861 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:862:7 [INFO] [stderr] | [INFO] [stderr] 862 | / pub fn reborrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 863 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 864 | | } [INFO] [stderr] | |_______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:934:9 [INFO] [stderr] | [INFO] [stderr] 934 | / pub fn borrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 935 | | Reader { .. *self } [INFO] [stderr] 936 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:938:9 [INFO] [stderr] | [INFO] [stderr] 938 | / pub fn reborrow<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 939 | | Reader { .. *self } [INFO] [stderr] 940 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/mash_capnp.rs:998:26 [INFO] [stderr] | [INFO] [stderr] 998 | pub fn as_reader(self) -> Reader<'a,> { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:1002:9 [INFO] [stderr] | [INFO] [stderr] 1002 | / pub fn borrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 1003 | | Builder { .. *self } [INFO] [stderr] 1004 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:1005:9 [INFO] [stderr] | [INFO] [stderr] 1005 | / pub fn reborrow<'b>(&'b mut self) -> Builder<'b,> { [INFO] [stderr] 1006 | | Builder { .. *self } [INFO] [stderr] 1007 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:1009:9 [INFO] [stderr] | [INFO] [stderr] 1009 | / pub fn borrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 1010 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 1011 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/mash_capnp.rs:1012:9 [INFO] [stderr] | [INFO] [stderr] 1012 | / pub fn reborrow_as_reader<'b>(&'b self) -> Reader<'b,> { [INFO] [stderr] 1013 | | ::capnp::traits::FromStructReader::new(self.builder.as_reader()) [INFO] [stderr] 1014 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/lib.rs:40:33 [INFO] [stderr] | [INFO] [stderr] 40 | fastx_cli(path.to_str().ok_or(format_err!("Couldn't make path into string"))?, |seq_type| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Couldn't make path into string"))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/lib.rs:42:20 [INFO] [stderr] | [INFO] [stderr] 42 | if let None = filters.filter_on { [INFO] [stderr] | _____________- ^^^^ [INFO] [stderr] 43 | | filters.filter_on = match seq_type { [INFO] [stderr] 44 | | "FASTA" => Some(false), [INFO] [stderr] 45 | | "FASTQ" => Some(true), [INFO] [stderr] 46 | | _ => panic!("Unknown sequence type"), [INFO] [stderr] 47 | | }; [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____________- help: try this: `if filters.filter_on.is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:52:32 [INFO] [stderr] | [INFO] [stderr] 52 | let rc_count = match is_rev_complement { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 53 | | true => 1u8, [INFO] [stderr] 54 | | false => 0u8, [INFO] [stderr] 55 | | }; [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if is_rev_complement { 1u8 } else { 0u8 }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/lib.rs:69:41 [INFO] [stderr] | [INFO] [stderr] 69 | let basename = path.file_name().ok_or(format_err!("Couldn't get filename from path"))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Couldn't get filename from path"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/lib.rs:70:52 [INFO] [stderr] | [INFO] [stderr] 70 | let sketch = Sketch::new(basename.to_str().ok_or(format_err!("Couldn't make filename into string"))?, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Couldn't make filename into string"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/lib.rs:100:20 [INFO] [stderr] | [INFO] [stderr] 100 | if let None = filters.filter_on { [INFO] [stderr] | _____________- ^^^^ [INFO] [stderr] 101 | | filters.filter_on = match seq_type { [INFO] [stderr] 102 | | "FASTA" => Some(false), [INFO] [stderr] 103 | | "FASTQ" => Some(true), [INFO] [stderr] 104 | | _ => panic!("Unknown sequence type"), [INFO] [stderr] 105 | | }; [INFO] [stderr] 106 | | } [INFO] [stderr] | |_____________- help: try this: `if filters.filter_on.is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/lib.rs:110:32 [INFO] [stderr] | [INFO] [stderr] 110 | let rc_count = match is_rev_complement { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 111 | | true => 1u8, [INFO] [stderr] 112 | | false => 0u8, [INFO] [stderr] 113 | | }; [INFO] [stderr] | |_________________^ help: consider using an if/else expression: `if is_rev_complement { 1u8 } else { 0u8 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/main.rs:314:21 [INFO] [stderr] | [INFO] [stderr] 314 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:438:9 [INFO] [stderr] | [INFO] [stderr] 438 | filter_on: filter_on, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `filter_on` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:440:9 [INFO] [stderr] | [INFO] [stderr] 440 | err_filter: err_filter, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `err_filter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:441:9 [INFO] [stderr] | [INFO] [stderr] 441 | strand_filter: strand_filter, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `strand_filter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> src/main.rs:314:21 [INFO] [stderr] | [INFO] [stderr] 314 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:438:9 [INFO] [stderr] | [INFO] [stderr] 438 | filter_on: filter_on, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `filter_on` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:440:9 [INFO] [stderr] | [INFO] [stderr] 440 | err_filter: err_filter, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `err_filter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:441:9 [INFO] [stderr] | [INFO] [stderr] 441 | strand_filter: strand_filter, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `strand_filter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:19:19 [INFO] [stderr] | [INFO] [stderr] 19 | const FINCH_EXT: &'static str = ".sk"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:20:18 [INFO] [stderr] | [INFO] [stderr] 20 | const MASH_EXT: &'static str = ".msh"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/main.rs:237:36 [INFO] [stderr] | [INFO] [stderr] 237 | let out_filename = filename.to_string() + &file_ext; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^--------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `file_ext` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:251:57 [INFO] [stderr] | [INFO] [stderr] 251 | let max_dist = matches.value_of("max_distance").ok_or(format_err!("Bad max-distance"))?.parse::().map_err(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad max-distance"))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:268:77 [INFO] [stderr] | [INFO] [stderr] 268 | let query_names: HashSet = matches.values_of("queries").ok_or(format_err!("Bad queries"))?.map(|s| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad queries"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/main.rs:278:16 [INFO] [stderr] | [INFO] [stderr] 278 | if all_sketches.sketches.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `all_sketches.sketches.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:331:62 [INFO] [stderr] | [INFO] [stderr] 331 | b'G' | b'g' | b'C' | b'c' => kmer.count as u64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(kmer.count)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:347:56 [INFO] [stderr] | [INFO] [stderr] 347 | let filenames: Vec<_> = matches.values_of("INPUT").ok_or(format_err!("Bad INPUT"))?.collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad INPUT"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:349:41 [INFO] [stderr] | [INFO] [stderr] 349 | let filename = filename_iter.next().ok_or(format_err!("At least one filename must be specified"))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("At least one filename must be specified"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/main.rs:359:46 [INFO] [stderr] | [INFO] [stderr] 359 | fn parse_mash_files

(matches: &ArgMatches, ref mut parser: P) -> Result<()> where P: FnMut(&MultiSketch, &str) -> () { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:360:56 [INFO] [stderr] | [INFO] [stderr] 360 | let filenames: Vec<_> = matches.values_of("INPUT").ok_or(format_err!("Bad INPUT"))?.collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad INPUT"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:362:41 [INFO] [stderr] | [INFO] [stderr] 362 | let filename = filename_iter.next().ok_or(format_err!("At least one filename must be specified"))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("At least one filename must be specified"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:392:58 [INFO] [stderr] | [INFO] [stderr] 392 | let final_sketch_size = matches.value_of("n_hashes").ok_or(format_err!("Bad n_hashes"))?.parse::().map_err(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad n_hashes"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:395:41 [INFO] [stderr] | [INFO] [stderr] 395 | let seed = matches.value_of("seed").ok_or(format_err!("Bad seed"))?.parse::().map_err(|_| format_err!("seed must be an integer"))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad seed"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:396:55 [INFO] [stderr] | [INFO] [stderr] 396 | let kmer_length = matches.value_of("kmer_length").ok_or(format_err!("Bad kmer_length"))?.parse::().map_err(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad kmer_length"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:407:27 [INFO] [stderr] | [INFO] [stderr] 407 | let min_abun_filter = match matches.occurrences_of("min_abun_filter") > 0 { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 408 | | true => Some(matches.value_of("min_abun_filter").ok_or(format_err!("Bad min_abun_filter"))?.parse::().map_err(|_| { [INFO] [stderr] 409 | | format_err!("min_abun_filter must be a number greater than or equal to 0") [INFO] [stderr] 410 | | })?), [INFO] [stderr] 411 | | false => None, [INFO] [stderr] 412 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 407 | let min_abun_filter = if matches.occurrences_of("min_abun_filter") > 0 { Some(matches.value_of("min_abun_filter").ok_or(format_err!("Bad min_abun_filter"))?.parse::().map_err(|_| { [INFO] [stderr] 408 | format_err!("min_abun_filter must be a number greater than or equal to 0") [INFO] [stderr] 409 | })?) } else { None }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:408:58 [INFO] [stderr] | [INFO] [stderr] 408 | true => Some(matches.value_of("min_abun_filter").ok_or(format_err!("Bad min_abun_filter"))?.parse::().map_err(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad min_abun_filter"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:413:27 [INFO] [stderr] | [INFO] [stderr] 413 | let max_abun_filter = match matches.occurrences_of("max_abun_filter") > 0 { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 414 | | true => Some(matches.value_of("max_abun_filter").ok_or(format_err!("Bad max_abun_filter"))?.parse::().map_err(|_| { [INFO] [stderr] 415 | | format_err!("max_abun_filter must be a number greater than or equal to 0") [INFO] [stderr] 416 | | })?), [INFO] [stderr] 417 | | false => None, [INFO] [stderr] 418 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 413 | let max_abun_filter = if matches.occurrences_of("max_abun_filter") > 0 { Some(matches.value_of("max_abun_filter").ok_or(format_err!("Bad max_abun_filter"))?.parse::().map_err(|_| { [INFO] [stderr] 414 | format_err!("max_abun_filter must be a number greater than or equal to 0") [INFO] [stderr] 415 | })?) } else { None }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:414:58 [INFO] [stderr] | [INFO] [stderr] 414 | true => Some(matches.value_of("max_abun_filter").ok_or(format_err!("Bad max_abun_filter"))?.parse::().map_err(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad max_abun_filter"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:419:53 [INFO] [stderr] | [INFO] [stderr] 419 | let err_filter = matches.value_of("err_filter").ok_or(format_err!("Bad err_filter"))?.parse::().map_err(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad err_filter"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:422:39 [INFO] [stderr] | [INFO] [stderr] 422 | if 0f32 <= r && r <= 100f32 / kmer_length as f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f32::from(kmer_length)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:423:23 [INFO] [stderr] | [INFO] [stderr] 423 | return Ok(kmer_length as f32 * r / 100f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f32::from(kmer_length)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:425:73 [INFO] [stderr] | [INFO] [stderr] 425 | bail!("err-filter must be a percent between 0 and {}", 100f32 / kmer_length as f32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f32::from(kmer_length)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:427:59 [INFO] [stderr] | [INFO] [stderr] 427 | let strand_filter = matches.value_of("strand_filter").ok_or(format_err!("Bad strand_filter"))?.parse::().map_err(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad strand_filter"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:444:53 [INFO] [stderr] | [INFO] [stderr] 444 | let oversketch = matches.value_of("oversketch").ok_or(format_err!("Bad oversketch"))?.parse::().map_err(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad oversketch"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:19:19 [INFO] [stderr] | [INFO] [stderr] 19 | const FINCH_EXT: &'static str = ".sk"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:20:18 [INFO] [stderr] | [INFO] [stderr] 20 | const MASH_EXT: &'static str = ".msh"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/main.rs:237:36 [INFO] [stderr] | [INFO] [stderr] 237 | let out_filename = filename.to_string() + &file_ext; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^--------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `file_ext` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:251:57 [INFO] [stderr] | [INFO] [stderr] 251 | let max_dist = matches.value_of("max_distance").ok_or(format_err!("Bad max-distance"))?.parse::().map_err(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad max-distance"))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:268:77 [INFO] [stderr] | [INFO] [stderr] 268 | let query_names: HashSet = matches.values_of("queries").ok_or(format_err!("Bad queries"))?.map(|s| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad queries"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/main.rs:278:16 [INFO] [stderr] | [INFO] [stderr] 278 | if all_sketches.sketches.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `all_sketches.sketches.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:331:62 [INFO] [stderr] | [INFO] [stderr] 331 | b'G' | b'g' | b'C' | b'c' => kmer.count as u64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(kmer.count)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:347:56 [INFO] [stderr] | [INFO] [stderr] 347 | let filenames: Vec<_> = matches.values_of("INPUT").ok_or(format_err!("Bad INPUT"))?.collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad INPUT"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:349:41 [INFO] [stderr] | [INFO] [stderr] 349 | let filename = filename_iter.next().ok_or(format_err!("At least one filename must be specified"))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("At least one filename must be specified"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/main.rs:359:46 [INFO] [stderr] | [INFO] [stderr] 359 | fn parse_mash_files

(matches: &ArgMatches, ref mut parser: P) -> Result<()> where P: FnMut(&MultiSketch, &str) -> () { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:360:56 [INFO] [stderr] | [INFO] [stderr] 360 | let filenames: Vec<_> = matches.values_of("INPUT").ok_or(format_err!("Bad INPUT"))?.collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad INPUT"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:362:41 [INFO] [stderr] | [INFO] [stderr] 362 | let filename = filename_iter.next().ok_or(format_err!("At least one filename must be specified"))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("At least one filename must be specified"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:392:58 [INFO] [stderr] | [INFO] [stderr] 392 | let final_sketch_size = matches.value_of("n_hashes").ok_or(format_err!("Bad n_hashes"))?.parse::().map_err(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad n_hashes"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:395:41 [INFO] [stderr] | [INFO] [stderr] 395 | let seed = matches.value_of("seed").ok_or(format_err!("Bad seed"))?.parse::().map_err(|_| format_err!("seed must be an integer"))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad seed"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:396:55 [INFO] [stderr] | [INFO] [stderr] 396 | let kmer_length = matches.value_of("kmer_length").ok_or(format_err!("Bad kmer_length"))?.parse::().map_err(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad kmer_length"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:407:27 [INFO] [stderr] | [INFO] [stderr] 407 | let min_abun_filter = match matches.occurrences_of("min_abun_filter") > 0 { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 408 | | true => Some(matches.value_of("min_abun_filter").ok_or(format_err!("Bad min_abun_filter"))?.parse::().map_err(|_| { [INFO] [stderr] 409 | | format_err!("min_abun_filter must be a number greater than or equal to 0") [INFO] [stderr] 410 | | })?), [INFO] [stderr] 411 | | false => None, [INFO] [stderr] 412 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 407 | let min_abun_filter = if matches.occurrences_of("min_abun_filter") > 0 { Some(matches.value_of("min_abun_filter").ok_or(format_err!("Bad min_abun_filter"))?.parse::().map_err(|_| { [INFO] [stderr] 408 | format_err!("min_abun_filter must be a number greater than or equal to 0") [INFO] [stderr] 409 | })?) } else { None }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:408:58 [INFO] [stderr] | [INFO] [stderr] 408 | true => Some(matches.value_of("min_abun_filter").ok_or(format_err!("Bad min_abun_filter"))?.parse::().map_err(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad min_abun_filter"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:413:27 [INFO] [stderr] | [INFO] [stderr] 413 | let max_abun_filter = match matches.occurrences_of("max_abun_filter") > 0 { [INFO] [stderr] | ___________________________^ [INFO] [stderr] 414 | | true => Some(matches.value_of("max_abun_filter").ok_or(format_err!("Bad max_abun_filter"))?.parse::().map_err(|_| { [INFO] [stderr] 415 | | format_err!("max_abun_filter must be a number greater than or equal to 0") [INFO] [stderr] 416 | | })?), [INFO] [stderr] 417 | | false => None, [INFO] [stderr] 418 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 413 | let max_abun_filter = if matches.occurrences_of("max_abun_filter") > 0 { Some(matches.value_of("max_abun_filter").ok_or(format_err!("Bad max_abun_filter"))?.parse::().map_err(|_| { [INFO] [stderr] 414 | format_err!("max_abun_filter must be a number greater than or equal to 0") [INFO] [stderr] 415 | })?) } else { None }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:414:58 [INFO] [stderr] | [INFO] [stderr] 414 | true => Some(matches.value_of("max_abun_filter").ok_or(format_err!("Bad max_abun_filter"))?.parse::().map_err(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad max_abun_filter"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:419:53 [INFO] [stderr] | [INFO] [stderr] 419 | let err_filter = matches.value_of("err_filter").ok_or(format_err!("Bad err_filter"))?.parse::().map_err(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad err_filter"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:422:39 [INFO] [stderr] | [INFO] [stderr] 422 | if 0f32 <= r && r <= 100f32 / kmer_length as f32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f32::from(kmer_length)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:423:23 [INFO] [stderr] | [INFO] [stderr] 423 | return Ok(kmer_length as f32 * r / 100f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f32::from(kmer_length)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:425:73 [INFO] [stderr] | [INFO] [stderr] 425 | bail!("err-filter must be a percent between 0 and {}", 100f32 / kmer_length as f32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f32::from(kmer_length)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:427:59 [INFO] [stderr] | [INFO] [stderr] 427 | let strand_filter = matches.value_of("strand_filter").ok_or(format_err!("Bad strand_filter"))?.parse::().map_err(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad strand_filter"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:444:53 [INFO] [stderr] | [INFO] [stderr] 444 | let oversketch = matches.value_of("oversketch").ok_or(format_err!("Bad oversketch"))?.parse::().map_err(|_| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format_err!("Bad oversketch"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 16.67s [INFO] running `"docker" "inspect" "03fc3e27b7604e5cb94800d0a7ceb028ffe6766cd4fac86f765ea439ce2d3422"` [INFO] running `"docker" "rm" "-f" "03fc3e27b7604e5cb94800d0a7ceb028ffe6766cd4fac86f765ea439ce2d3422"` [INFO] [stdout] 03fc3e27b7604e5cb94800d0a7ceb028ffe6766cd4fac86f765ea439ce2d3422