[INFO] crate wavelet-matrix 0.4.7 is already in cache [INFO] extracting crate wavelet-matrix 0.4.7 into work/ex/clippy-test-run/sources/stable/reg/wavelet-matrix/0.4.7 [INFO] extracting crate wavelet-matrix 0.4.7 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/wavelet-matrix/0.4.7 [INFO] validating manifest of wavelet-matrix-0.4.7 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 wavelet-matrix-0.4.7 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 wavelet-matrix-0.4.7 [INFO] finished frobbing wavelet-matrix-0.4.7 [INFO] frobbed toml for wavelet-matrix-0.4.7 written to work/ex/clippy-test-run/sources/stable/reg/wavelet-matrix/0.4.7/Cargo.toml [INFO] started frobbing wavelet-matrix-0.4.7 [INFO] finished frobbing wavelet-matrix-0.4.7 [INFO] frobbed toml for wavelet-matrix-0.4.7 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/wavelet-matrix/0.4.7/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 wavelet-matrix-0.4.7 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/wavelet-matrix/0.4.7:/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] 7c9f44b80ff59d5cb95538e020d33beedae65f9b576a2264cf326901b473c3cf [INFO] running `"docker" "start" "-a" "7c9f44b80ff59d5cb95538e020d33beedae65f9b576a2264cf326901b473c3cf"` [INFO] [stderr] Checking easybench v0.1.4 [INFO] [stderr] Checking succinct v0.4.4 [INFO] [stderr] Checking num-bigint v0.1.44 [INFO] [stderr] Checking wavelet-matrix v0.4.7 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/node_range.rs:19:13 [INFO] [stderr] | [INFO] [stderr] 19 | prefix_char: prefix_char, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `prefix_char` [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/node_range.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | depth: depth, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `depth` [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/node_range.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | bit_len: bit_len, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `bit_len` [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/wavelet_matrix.rs:59:13 [INFO] [stderr] | [INFO] [stderr] 59 | layers: layers, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `layers` [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/wavelet_matrix.rs:60:13 [INFO] [stderr] | [INFO] [stderr] 60 | dim: dim, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `dim` [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/wavelet_matrix.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | num: num, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `num` [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/wavelet_matrix.rs:62:13 [INFO] [stderr] | [INFO] [stderr] 62 | bit_len: bit_len, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `bit_len` [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/wavelet_matrix.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | rank: rank, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `rank` [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/wavelet_matrix.rs:212:13 [INFO] [stderr] | [INFO] [stderr] 212 | value: value, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [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/wavelet_matrix.rs:213:13 [INFO] [stderr] | [INFO] [stderr] 213 | ignore_bit: ignore_bit, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ignore_bit` [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] Checking num-rational v0.1.42 [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/wavelet_matrix.rs:452:49 [INFO] [stderr] | [INFO] [stderr] 452 | res.push((qon.prefix_char << shift..qon.prefix_char + 1 << shift, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(qon.prefix_char + 1) << shift` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: item `wavelet_matrix::WaveletMatrix` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/wavelet_matrix.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | / impl WaveletMatrix { [INFO] [stderr] 19 | | /// Create a new WaveletMatrix struct from a Vec `vals`. [INFO] [stderr] 20 | | /// [INFO] [stderr] 21 | | /// The values contained in `vals` should be less than `u64::MAX`. [INFO] [stderr] ... | [INFO] [stderr] 864 | | } [INFO] [stderr] 865 | | } [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/wavelet_matrix.rs:26:22 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn new(vals: &Vec) -> WaveletMatrix { [INFO] [stderr] | ^^^^^^^^^ [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] help: change this to [INFO] [stderr] | [INFO] [stderr] 26 | pub fn new(vals: &[u64]) -> WaveletMatrix { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] help: change `vals.clone()` to [INFO] [stderr] | [INFO] [stderr] 35 | let mut zeros: Vec = vals.to_owned(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [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/wavelet_matrix.rs:66:21 [INFO] [stderr] | [INFO] [stderr] 66 | fn filter(vals: &Vec, [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `next`. [INFO] [stderr] --> src/wavelet_matrix.rs:407:26 [INFO] [stderr] | [INFO] [stderr] 407 | for i in 0..next.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] 407 | for in &next { [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/wavelet_matrix.rs:441:27 [INFO] [stderr] | [INFO] [stderr] 441 | res.push((qon.prefix_char..qon.prefix_char + 1, qon.pos_end - qon.pos_start)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `qon.prefix_char..=qon.prefix_char` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `next`. [INFO] [stderr] --> src/wavelet_matrix.rs:444:26 [INFO] [stderr] | [INFO] [stderr] 444 | for i in 0..next.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [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] 444 | for in &next { [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/wavelet_matrix.rs:662:10 [INFO] [stderr] | [INFO] [stderr] 662 | (sum_min..sum_max + 1, count) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: use: `sum_min..=sum_max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/wavelet_matrix.rs:840:13 [INFO] [stderr] | [INFO] [stderr] 840 | value = value << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `value <<= 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `wavelet_matrix::WaveletMatrixBuilder` [INFO] [stderr] --> src/wavelet_matrix.rs:894:5 [INFO] [stderr] | [INFO] [stderr] 894 | / pub fn new() -> WaveletMatrixBuilder { [INFO] [stderr] 895 | | WaveletMatrixBuilder { vals: Vec::new() } [INFO] [stderr] 896 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 888 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Checking num v0.1.42 [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/node_range.rs:19:13 [INFO] [stderr] | [INFO] [stderr] 19 | prefix_char: prefix_char, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `prefix_char` [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/node_range.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | depth: depth, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `depth` [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/node_range.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | bit_len: bit_len, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `bit_len` [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/wavelet_matrix.rs:59:13 [INFO] [stderr] | [INFO] [stderr] 59 | layers: layers, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `layers` [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/wavelet_matrix.rs:60:13 [INFO] [stderr] | [INFO] [stderr] 60 | dim: dim, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `dim` [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/wavelet_matrix.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | num: num, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `num` [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/wavelet_matrix.rs:62:13 [INFO] [stderr] | [INFO] [stderr] 62 | bit_len: bit_len, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `bit_len` [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/wavelet_matrix.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | rank: rank, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `rank` [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/wavelet_matrix.rs:212:13 [INFO] [stderr] | [INFO] [stderr] 212 | value: value, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [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/wavelet_matrix.rs:213:13 [INFO] [stderr] | [INFO] [stderr] 213 | ignore_bit: ignore_bit, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ignore_bit` [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] --> benches/easybench.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | 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: using `println!("")` [INFO] [stderr] --> benches/easybench.rs:204:5 [INFO] [stderr] | [INFO] [stderr] 204 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> benches/easybench.rs:213:5 [INFO] [stderr] | [INFO] [stderr] 213 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> benches/easybench.rs:216:5 [INFO] [stderr] | [INFO] [stderr] 216 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> benches/easybench.rs:326:5 [INFO] [stderr] | [INFO] [stderr] 326 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: literal with an empty format string [INFO] [stderr] --> benches/easybench.rs:358:13 [INFO] [stderr] | [INFO] [stderr] 358 | "(bench omitted)" //bench(|| wm.sum_experiment3(0..wm.len(), 0..wm.dim(), k)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::print_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stderr] [INFO] [stderr] warning: using `println!("")` [INFO] [stderr] --> benches/easybench.rs:368:5 [INFO] [stderr] | [INFO] [stderr] 368 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> benches/easybench.rs:395:5 [INFO] [stderr] | [INFO] [stderr] 395 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> benches/easybench.rs:397:5 [INFO] [stderr] | [INFO] [stderr] 397 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> benches/easybench.rs:400:5 [INFO] [stderr] | [INFO] [stderr] 400 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> benches/easybench.rs:411:5 [INFO] [stderr] | [INFO] [stderr] 411 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> benches/easybench.rs:413:5 [INFO] [stderr] | [INFO] [stderr] 413 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: using `println!("")` [INFO] [stderr] --> benches/easybench.rs:417:5 [INFO] [stderr] | [INFO] [stderr] 417 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [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: long literal lacking separators [INFO] [stderr] --> benches/easybench.rs:220:24 [INFO] [stderr] | [INFO] [stderr] 220 | overall_helper(10000000, "16-bit values", std::u16::MAX as u64, 50); [INFO] [stderr] | ^^^^^^^^ help: consider: `10_000_000` [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: long literal lacking separators [INFO] [stderr] --> benches/easybench.rs:222:24 [INFO] [stderr] | [INFO] [stderr] 222 | overall_helper(1000000, "16-bit values", std::u16::MAX as u64, 5); [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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] --> benches/easybench.rs:225:20 [INFO] [stderr] | [INFO] [stderr] 225 | overall_helper(100000, "16-bit values", std::u16::MAX as u64, 1); [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [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] --> benches/easybench.rs:236:24 [INFO] [stderr] | [INFO] [stderr] 236 | overall_helper(10000000, "32-bit values", std::u32::MAX as u64, 100); [INFO] [stderr] | ^^^^^^^^ help: consider: `10_000_000` [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] --> benches/easybench.rs:238:24 [INFO] [stderr] | [INFO] [stderr] 238 | overall_helper(1000000, "32-bit values", std::u32::MAX as u64, 10); [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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] --> benches/easybench.rs:241:20 [INFO] [stderr] | [INFO] [stderr] 241 | overall_helper(100000, "32-bit values", std::u32::MAX as u64, 3); [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [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] --> benches/easybench.rs:252:24 [INFO] [stderr] | [INFO] [stderr] 252 | overall_helper(10000000, "64-bit values", std::u64::MAX as u64, 200); [INFO] [stderr] | ^^^^^^^^ help: consider: `10_000_000` [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] --> benches/easybench.rs:254:24 [INFO] [stderr] | [INFO] [stderr] 254 | overall_helper(1000000, "64-bit values", std::u64::MAX as u64, 20); [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [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] --> benches/easybench.rs:257:20 [INFO] [stderr] | [INFO] [stderr] 257 | overall_helper(100000, "64-bit values", std::u64::MAX as u64, 6); [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [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: operator precedence can trip the unwary [INFO] [stderr] --> src/wavelet_matrix.rs:452:49 [INFO] [stderr] | [INFO] [stderr] 452 | res.push((qon.prefix_char << shift..qon.prefix_char + 1 << shift, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(qon.prefix_char + 1) << shift` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: unused variable: `limit_secs` [INFO] [stderr] --> benches/easybench.rs:57:55 [INFO] [stderr] | [INFO] [stderr] 57 | fn overall_helper(num: usize, desc: &str, upper: u64, limit_secs: u64) { [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_limit_secs` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `errorpct` is never read [INFO] [stderr] --> benches/easybench.rs:332:13 [INFO] [stderr] | [INFO] [stderr] 332 | let mut errorpct = 0.0; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> benches/easybench.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | let mut rng = rand::weak_rng(); [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: function is never used: `statstical_helper` [INFO] [stderr] --> benches/easybench.rs:264:1 [INFO] [stderr] | [INFO] [stderr] 264 | fn statstical_helper(num: usize, lower: u64, upper: u64, k: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `sum_uniform_find_sufficient_k` [INFO] [stderr] --> benches/easybench.rs:330:1 [INFO] [stderr] | [INFO] [stderr] 330 | fn sum_uniform_find_sufficient_k(num: usize, lower: u64, upper: u64, accuracy_pct: f64) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `average` [INFO] [stderr] --> benches/easybench.rs:373:1 [INFO] [stderr] | [INFO] [stderr] 373 | fn average(r: &std::ops::Range) -> u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `error_pct` [INFO] [stderr] --> benches/easybench.rs:377:1 [INFO] [stderr] | [INFO] [stderr] 377 | fn error_pct(computed: u64, actual: u64) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `statistical_performance` [INFO] [stderr] --> benches/easybench.rs:392:1 [INFO] [stderr] | [INFO] [stderr] 392 | fn statistical_performance() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `statistical_sufficient_k` [INFO] [stderr] --> benches/easybench.rs:421:1 [INFO] [stderr] | [INFO] [stderr] 421 | fn statistical_sufficient_k() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> benches/easybench.rs:73:47 [INFO] [stderr] | [INFO] [stderr] 73 | let dur_ns = dur.as_secs() as f64 * 1e9 + dur.subsec_nanos() as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(dur.subsec_nanos())` [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 u16 to u64 may become silently lossy if types change [INFO] [stderr] --> benches/easybench.rs:220:51 [INFO] [stderr] | [INFO] [stderr] 220 | overall_helper(10000000, "16-bit values", std::u16::MAX as u64, 50); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(std::u16::MAX)` [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] --> benches/easybench.rs:222:50 [INFO] [stderr] | [INFO] [stderr] 222 | overall_helper(1000000, "16-bit values", std::u16::MAX as u64, 5); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(std::u16::MAX)` [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] --> benches/easybench.rs:225:45 [INFO] [stderr] | [INFO] [stderr] 225 | overall_helper(100000, "16-bit values", std::u16::MAX as u64, 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(std::u16::MAX)` [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] --> benches/easybench.rs:227:44 [INFO] [stderr] | [INFO] [stderr] 227 | overall_helper(10000, "16-bit values", std::u16::MAX as u64, 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(std::u16::MAX)` [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] --> benches/easybench.rs:229:43 [INFO] [stderr] | [INFO] [stderr] 229 | overall_helper(1000, "16-bit values", std::u16::MAX as u64, 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(std::u16::MAX)` [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] --> benches/easybench.rs:236:51 [INFO] [stderr] | [INFO] [stderr] 236 | overall_helper(10000000, "32-bit values", std::u32::MAX as u64, 100); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(std::u32::MAX)` [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] --> benches/easybench.rs:238:50 [INFO] [stderr] | [INFO] [stderr] 238 | overall_helper(1000000, "32-bit values", std::u32::MAX as u64, 10); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(std::u32::MAX)` [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] --> benches/easybench.rs:241:45 [INFO] [stderr] | [INFO] [stderr] 241 | overall_helper(100000, "32-bit values", std::u32::MAX as u64, 3); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(std::u32::MAX)` [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] --> benches/easybench.rs:243:44 [INFO] [stderr] | [INFO] [stderr] 243 | overall_helper(10000, "32-bit values", std::u32::MAX as u64, 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(std::u32::MAX)` [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] --> benches/easybench.rs:245:43 [INFO] [stderr] | [INFO] [stderr] 245 | overall_helper(1000, "32-bit values", std::u32::MAX as u64, 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(std::u32::MAX)` [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] --> benches/easybench.rs:276:19 [INFO] [stderr] | [INFO] [stderr] 276 | if wm.dim() < std::u32::MAX as u64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(std::u32::MAX)` [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: item `wavelet_matrix::WaveletMatrix` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/wavelet_matrix.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | / impl WaveletMatrix { [INFO] [stderr] 19 | | /// Create a new WaveletMatrix struct from a Vec `vals`. [INFO] [stderr] 20 | | /// [INFO] [stderr] 21 | | /// The values contained in `vals` should be less than `u64::MAX`. [INFO] [stderr] ... | [INFO] [stderr] 864 | | } [INFO] [stderr] 865 | | } [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/wavelet_matrix.rs:26:22 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn new(vals: &Vec) -> WaveletMatrix { [INFO] [stderr] | ^^^^^^^^^ [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] help: change this to [INFO] [stderr] | [INFO] [stderr] 26 | pub fn new(vals: &[u64]) -> WaveletMatrix { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] help: change `vals.clone()` to [INFO] [stderr] | [INFO] [stderr] 35 | let mut zeros: Vec = vals.to_owned(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [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/wavelet_matrix.rs:66:21 [INFO] [stderr] | [INFO] [stderr] 66 | fn filter(vals: &Vec, [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `next`. [INFO] [stderr] --> src/wavelet_matrix.rs:407:26 [INFO] [stderr] | [INFO] [stderr] 407 | for i in 0..next.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] 407 | for in &next { [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/wavelet_matrix.rs:441:27 [INFO] [stderr] | [INFO] [stderr] 441 | res.push((qon.prefix_char..qon.prefix_char + 1, qon.pos_end - qon.pos_start)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `qon.prefix_char..=qon.prefix_char` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `next`. [INFO] [stderr] --> src/wavelet_matrix.rs:444:26 [INFO] [stderr] | [INFO] [stderr] 444 | for i in 0..next.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [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] 444 | for in &next { [INFO] [stderr] | ^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/wavelet_matrix.rs:662:10 [INFO] [stderr] | [INFO] [stderr] 662 | (sum_min..sum_max + 1, count) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: use: `sum_min..=sum_max` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/wavelet_matrix.rs:840:13 [INFO] [stderr] | [INFO] [stderr] 840 | value = value << 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `value <<= 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `wavelet_matrix::WaveletMatrixBuilder` [INFO] [stderr] --> src/wavelet_matrix.rs:894:5 [INFO] [stderr] | [INFO] [stderr] 894 | / pub fn new() -> WaveletMatrixBuilder { [INFO] [stderr] 895 | | WaveletMatrixBuilder { vals: Vec::new() } [INFO] [stderr] 896 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 888 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 32 [INFO] [stderr] --> src/wavelet_matrix.rs:966:5 [INFO] [stderr] | [INFO] [stderr] 966 | / fn example() { [INFO] [stderr] 967 | | let vec: Vec = vec![1, 2, 4, 5, 1, 0, 4, 6, 2, 9, 2, 0]; [INFO] [stderr] 968 | | // 0 1 2 3 4 5 6 7 8 9 10 11 (length = 12) [INFO] [stderr] 969 | | let wm = WaveletMatrix::new(&vec); [INFO] [stderr] ... | [INFO] [stderr] 1025 | | assert_eq!(wm.select(2, 2), 10); [INFO] [stderr] 1026 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [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/wavelet_matrix.rs:1079:28 [INFO] [stderr] | [INFO] [stderr] 1079 | vec: &Vec, [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [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/wavelet_matrix.rs:1101:29 [INFO] [stderr] | [INFO] [stderr] 1101 | vec: &Vec, [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [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/wavelet_matrix.rs:1124:29 [INFO] [stderr] | [INFO] [stderr] 1124 | vec: &Vec, [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/wavelet_matrix.rs:1127:36 [INFO] [stderr] | [INFO] [stderr] 1127 | let mut sorted: Vec = vec[range.clone()].iter().map(|x| *x).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `vec[range.clone()].iter().cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/wavelet_matrix.rs:1130:12 [INFO] [stderr] | [INFO] [stderr] 1130 | if sorted.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!sorted.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: the loop variable `pos` is used to index `vec` [INFO] [stderr] --> src/wavelet_matrix.rs:1141:20 [INFO] [stderr] | [INFO] [stderr] 1141 | for pos in 0..vec.len() { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [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] 1141 | for (pos, ) in vec.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/wavelet_matrix.rs:1143:13 [INFO] [stderr] | [INFO] [stderr] 1143 | entry.0 = entry.0 + 1; // count += 1 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `entry.0 += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [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/wavelet_matrix.rs:1150:26 [INFO] [stderr] | [INFO] [stderr] 1150 | vec: &Vec, [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u64]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/wavelet_matrix.rs:1156:20 [INFO] [stderr] | [INFO] [stderr] 1156 | / value_count(&vec[range.clone()]).iter() [INFO] [stderr] 1157 | | .into_iter() [INFO] [stderr] | |___________________________________^ help: consider removing `.into_iter()`: `value_count(&vec[range.clone()]).iter()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/wavelet_matrix.rs:1164:20 [INFO] [stderr] | [INFO] [stderr] 1164 | / value_count(&vec[range.clone()]).iter() [INFO] [stderr] 1165 | | .into_iter() [INFO] [stderr] | |___________________________________^ help: consider removing `.into_iter()`: `value_count(&vec[range.clone()]).iter()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/wavelet_matrix.rs:1176:20 [INFO] [stderr] | [INFO] [stderr] 1176 | / value_count(&vec[range.clone()]).iter() [INFO] [stderr] 1177 | | .into_iter() [INFO] [stderr] | |___________________________________^ help: consider removing `.into_iter()`: `value_count(&vec[range.clone()]).iter()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/wavelet_matrix.rs:1205:42 [INFO] [stderr] | [INFO] [stderr] 1205 | let ignore_bit = random_upto(wm.bit_len as u64) as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u64::from(wm.bit_len)` [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] Finished dev [unoptimized + debuginfo] target(s) in 8.18s [INFO] running `"docker" "inspect" "7c9f44b80ff59d5cb95538e020d33beedae65f9b576a2264cf326901b473c3cf"` [INFO] running `"docker" "rm" "-f" "7c9f44b80ff59d5cb95538e020d33beedae65f9b576a2264cf326901b473c3cf"` [INFO] [stdout] 7c9f44b80ff59d5cb95538e020d33beedae65f9b576a2264cf326901b473c3cf