[INFO] crate deflate 0.7.19 is already in cache [INFO] extracting crate deflate 0.7.19 into work/ex/clippy-test-run/sources/stable/reg/deflate/0.7.19 [INFO] extracting crate deflate 0.7.19 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/deflate/0.7.19 [INFO] validating manifest of deflate-0.7.19 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 deflate-0.7.19 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 deflate-0.7.19 [INFO] finished frobbing deflate-0.7.19 [INFO] frobbed toml for deflate-0.7.19 written to work/ex/clippy-test-run/sources/stable/reg/deflate/0.7.19/Cargo.toml [INFO] started frobbing deflate-0.7.19 [INFO] finished frobbing deflate-0.7.19 [INFO] frobbed toml for deflate-0.7.19 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/deflate/0.7.19/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 deflate-0.7.19 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/deflate/0.7.19:/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] cea6ce0f835c680599932399ab4568d83c397aee0decf304c76da3eaf334c780 [INFO] running `"docker" "start" "-a" "cea6ce0f835c680599932399ab4568d83c397aee0decf304c76da3eaf334c780"` [INFO] [stderr] Checking deflate v0.7.19 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/huffman_table.rs:1290:9 [INFO] [stderr] | [INFO] [stderr] 1290 | num_bits: num_bits, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `num_bits` [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/huffman_table.rs:1349:13 [INFO] [stderr] | [INFO] [stderr] 1349 | code: code, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `code` [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/huffman_table.rs:1350:13 [INFO] [stderr] | [INFO] [stderr] 1350 | length: length, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `length` [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/lz77.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | max_hash_checks: max_hash_checks, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `max_hash_checks` [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/lz77.rs:91:13 [INFO] [stderr] | [INFO] [stderr] 91 | lazy_if_less_than: lazy_if_less_than, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lazy_if_less_than` [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/lz77.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | matching_type: matching_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `matching_type` [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/lzvalue.rs:62:13 [INFO] [stderr] | [INFO] [stderr] 62 | distance: distance, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `distance` [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/huffman_lengths.rs:293:13 [INFO] [stderr] | [INFO] [stderr] 293 | huffman_table_lengths: huffman_table_lengths, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `huffman_table_lengths` [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/huffman_lengths.rs:294:13 [INFO] [stderr] | [INFO] [stderr] 294 | used_hclens: used_hclens, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `used_hclens` [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/deflate_state.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | compression_options: compression_options, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `compression_options` [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/huffman_table.rs:1290:9 [INFO] [stderr] | [INFO] [stderr] 1290 | num_bits: num_bits, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `num_bits` [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/huffman_table.rs:1349:13 [INFO] [stderr] | [INFO] [stderr] 1349 | code: code, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `code` [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/huffman_table.rs:1350:13 [INFO] [stderr] | [INFO] [stderr] 1350 | length: length, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `length` [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/lz77.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | max_hash_checks: max_hash_checks, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `max_hash_checks` [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/lz77.rs:91:13 [INFO] [stderr] | [INFO] [stderr] 91 | lazy_if_less_than: lazy_if_less_than, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lazy_if_less_than` [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/lz77.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | matching_type: matching_type, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `matching_type` [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/lzvalue.rs:62:13 [INFO] [stderr] | [INFO] [stderr] 62 | distance: distance, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `distance` [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/huffman_lengths.rs:293:13 [INFO] [stderr] | [INFO] [stderr] 293 | huffman_table_lengths: huffman_table_lengths, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `huffman_table_lengths` [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/huffman_lengths.rs:294:13 [INFO] [stderr] | [INFO] [stderr] 294 | used_hclens: used_hclens, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `used_hclens` [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/deflate_state.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | compression_options: compression_options, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `compression_options` [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/zlib.rs:44:21 [INFO] [stderr] | [INFO] [stderr] 44 | let flg = flg & 0b11100000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1110_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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/writer.rs:13:17 [INFO] [stderr] | [INFO] [stderr] 13 | const ERR_STR: &'static str = "Error! The wrapped writer is missing.\ [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: long literal lacking separators [INFO] [stderr] --> src/huffman_table.rs:1644:36 [INFO] [stderr] | [INFO] [stderr] 1644 | assert_eq!(table.codes[0], 0b00001100); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_1100` [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] --> src/huffman_table.rs:1645:38 [INFO] [stderr] | [INFO] [stderr] 1645 | assert_eq!(table.codes[143], 0b11111101); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1111_1101` [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/huffman_table.rs:1646:38 [INFO] [stderr] | [INFO] [stderr] 1646 | assert_eq!(table.codes[144], 0b000010011); [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b0_0001_0011` [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/huffman_table.rs:1647:38 [INFO] [stderr] | [INFO] [stderr] 1647 | assert_eq!(table.codes[255], 0b111111111); [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0b1_1111_1111` [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/huffman_table.rs:1648:38 [INFO] [stderr] | [INFO] [stderr] 1648 | assert_eq!(table.codes[256], 0b0000000); [INFO] [stderr] | ^^^^^^^^^ help: consider: `0b000_0000` [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/huffman_table.rs:1649:38 [INFO] [stderr] | [INFO] [stderr] 1649 | assert_eq!(table.codes[279], 0b1110100); [INFO] [stderr] | ^^^^^^^^^ help: consider: `0b111_0100` [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/huffman_table.rs:1650:38 [INFO] [stderr] | [INFO] [stderr] 1650 | assert_eq!(table.codes[280], 0b00000011); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0000_0011` [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/huffman_table.rs:1651:38 [INFO] [stderr] | [INFO] [stderr] 1651 | assert_eq!(table.codes[287], 0b11100011); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1110_0011` [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/huffman_table.rs:1658:41 [INFO] [stderr] | [INFO] [stderr] 1658 | assert_eq!(ld.length_code.code, 0b00100000); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b0010_0000` [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/chained_hash_table.rs:356:30 [INFO] [stderr] | [INFO] [stderr] 356 | assert_eq!(input[pos as usize & window_size - 1], end_byte); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `pos as usize & (window_size - 1)` [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: long literal lacking separators [INFO] [stderr] --> src/zlib.rs:44:21 [INFO] [stderr] | [INFO] [stderr] 44 | let flg = flg & 0b11100000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0b1110_0000` [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: unnecessary parentheses around function argument [INFO] [stderr] --> src/matching.rs:211:31 [INFO] [stderr] | [INFO] [stderr] 211 | let max_length = cmp::min((data.len() - position), MAX_MATCH); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/huffman_table.rs:1397:17 [INFO] [stderr] | [INFO] [stderr] 1397 | for bits in 1..max_length + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use: `1..=max_length` [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: an inclusive range would be more readable [INFO] [stderr] --> src/huffman_table.rs:1402:14 [INFO] [stderr] | [INFO] [stderr] 1402 | for n in 0..max_length_pos + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=max_length_pos` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/writer.rs:13:17 [INFO] [stderr] | [INFO] [stderr] 13 | const ERR_STR: &'static str = "Error! The wrapped writer is missing.\ [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: long literal lacking separators [INFO] [stderr] --> src/lib.rs:455:22 [INFO] [stderr] | [INFO] [stderr] 455 | &vec![5; 100000], [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: this function has too many arguments (8/7) [INFO] [stderr] --> src/lz77.rs:192:1 [INFO] [stderr] | [INFO] [stderr] 192 | / fn process_chunk( [INFO] [stderr] 193 | | data: &[u8], [INFO] [stderr] 194 | | iterated_data: &Range, [INFO] [stderr] 195 | | mut match_state: &mut ChunkState, [INFO] [stderr] ... | [INFO] [stderr] 231 | | } [INFO] [stderr] 232 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lzvalue.rs:25:26 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn stored_length(&self) -> u8 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lzvalue.rs:67:18 [INFO] [stderr] | [INFO] [stderr] 67 | pub fn value(&self) -> LZType { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/chained_hash_table.rs:82:32 [INFO] [stderr] | [INFO] [stderr] 82 | ((current_hash << shift) ^ (to_insert as u16)) & mask [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(to_insert)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/length_encode.rs:189:46 [INFO] [stderr] | [INFO] [stderr] 189 | acc + if n != 0 { 2f64.powi(-(n as i32)) } else { 0f64 } [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(n)` [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: The use of negated comparison operators on partially ordered types produces code that is hard to read and refactor. Please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable. [INFO] [stderr] --> src/length_encode.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | !(v > 1.0) [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::neg_cmp_op_on_partial_ord)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/length_encode.rs:292:22 [INFO] [stderr] | [INFO] [stderr] 292 | for i in (1..max_len + 1).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `(1..=max_len)` [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: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/length_encode.rs:296:26 [INFO] [stderr] | [INFO] [stderr] 296 | total += (num_codes[i] as u32) << (max_len - i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(num_codes[i])` [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/length_encode.rs:356:28 [INFO] [stderr] | [INFO] [stderr] 356 | value: *f as WeightType, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(*f)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/length_encode.rs:392:40 [INFO] [stderr] | [INFO] [stderr] 392 | for (&n_codes, i) in num_codes[1..max_len + 1].iter().zip(1..(max_len as u8) + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `1..=max_len` [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: an inclusive range would be more readable [INFO] [stderr] --> src/length_encode.rs:392:67 [INFO] [stderr] | [INFO] [stderr] 392 | for (&n_codes, i) in num_codes[1..max_len + 1].iter().zip(1..(max_len as u8) + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=(max_len as u8)` [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/huffman_lengths.rs:337:27 [INFO] [stderr] | [INFO] [stderr] 337 | writer.write_bits(huffman_table_lengths[usize::from(*n)] as u16, 3); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(huffman_table_lengths[usize::from(*n)])` [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/bitstream.rs:89:21 [INFO] [stderr] | [INFO] [stderr] 89 | self.acc |= (v as AccType) << self.bits; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u64::from(v)` [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/bitstream.rs:101:21 [INFO] [stderr] | [INFO] [stderr] 101 | self.acc |= (v as AccType) << self.bits; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u64::from(v)` [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/bitstream.rs:126:33 [INFO] [stderr] | [INFO] [stderr] 126 | self.write_bits(byte as u16, 8) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(byte)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/matching.rs:144:17 [INFO] [stderr] | [INFO] [stderr] 144 | if data[position + best_length - 1..position + best_length + 1] == [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `position + best_length - 1..=position + best_length` [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: an inclusive range would be more readable [INFO] [stderr] --> src/matching.rs:145:18 [INFO] [stderr] | [INFO] [stderr] 145 | data[current_head + best_length - 1..current_head + best_length + 1] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `current_head + best_length - 1..=current_head + best_length` [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: The function/method `write_huffman_lengths` doesn't need a mutable reference [INFO] [stderr] --> src/compress.rs:197:21 [INFO] [stderr] | [INFO] [stderr] 197 | &mut deflate_state.length_buffers.length_buf, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] error[E0554]: #![feature] may not be used on the stable release channel [INFO] [stderr] --> benches/bench.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(test)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0554`. [INFO] [stderr] error: Could not compile `deflate`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/huffman_table.rs:1397:17 [INFO] [stderr] | [INFO] [stderr] 1397 | for bits in 1..max_length + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use: `1..=max_length` [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: an inclusive range would be more readable [INFO] [stderr] --> src/huffman_table.rs:1402:14 [INFO] [stderr] | [INFO] [stderr] 1402 | for n in 0..max_length_pos + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=max_length_pos` [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> tests/test.rs:117:5 [INFO] [stderr] | [INFO] [stderr] 117 | fp.write( &[0] ).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> tests/test.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | fp.write( &[0] ).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> tests/test.rs:120:5 [INFO] [stderr] | [INFO] [stderr] 120 | fp.write( &[0, 0] ).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `DISTANCE_EXTRA_BITS` [INFO] [stderr] --> src/huffman_table.rs:1667:18 [INFO] [stderr] | [INFO] [stderr] 1667 | for i in 0..NUM_DISTANCE_CODES { [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] 1667 | for (i, ) in DISTANCE_EXTRA_BITS.iter().enumerate().take(NUM_DISTANCE_CODES) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (8/7) [INFO] [stderr] --> src/lz77.rs:192:1 [INFO] [stderr] | [INFO] [stderr] 192 | / fn process_chunk( [INFO] [stderr] 193 | | data: &[u8], [INFO] [stderr] 194 | | iterated_data: &Range, [INFO] [stderr] 195 | | mut match_state: &mut ChunkState, [INFO] [stderr] ... | [INFO] [stderr] 231 | | } [INFO] [stderr] 232 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] error: Could not compile `deflate`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/lz77.rs:1024:17 [INFO] [stderr] | [INFO] [stderr] 1024 | assert!(&decompressed == &input); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [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] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 1024 | assert!(decompressed == input); [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lz77.rs:1214:17 [INFO] [stderr] | [INFO] [stderr] 1214 | assert!(state.writer.get_buffer().len() > 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!state.writer.get_buffer().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: needlessly taken reference of both operands [INFO] [stderr] --> src/lz77.rs:1228:13 [INFO] [stderr] | [INFO] [stderr] 1228 | / &data[..BYTES_USED] == [INFO] [stderr] 1229 | | &decompress_lz77(&lz77_compress_conf( [INFO] [stderr] 1230 | | &data[..BYTES_USED], [INFO] [stderr] 1231 | | 0, [INFO] [stderr] ... | [INFO] [stderr] 1234 | | ).unwrap()) [INFO] [stderr] 1235 | | [..] [INFO] [stderr] | |________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 1228 | data[..BYTES_USED] == [INFO] [stderr] 1229 | decompress_lz77(&lz77_compress_conf( [INFO] [stderr] 1230 | &data[..BYTES_USED], [INFO] [stderr] 1231 | 0, [INFO] [stderr] 1232 | NO_RLE, [INFO] [stderr] 1233 | matching_type, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/lz77.rs:1238:13 [INFO] [stderr] | [INFO] [stderr] 1238 | / &data[..BYTES_USED + 1] == [INFO] [stderr] 1239 | | &decompress_lz77(&lz77_compress_conf( [INFO] [stderr] 1240 | | &data[..BYTES_USED + 1], [INFO] [stderr] 1241 | | 0, [INFO] [stderr] ... | [INFO] [stderr] 1244 | | ).unwrap()) [INFO] [stderr] 1245 | | [..] [INFO] [stderr] | |________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 1238 | data[..BYTES_USED + 1] == [INFO] [stderr] 1239 | decompress_lz77(&lz77_compress_conf( [INFO] [stderr] 1240 | &data[..BYTES_USED + 1], [INFO] [stderr] 1241 | 0, [INFO] [stderr] 1242 | NO_RLE, [INFO] [stderr] 1243 | matching_type, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/lz77.rs:1238:19 [INFO] [stderr] | [INFO] [stderr] 1238 | &data[..BYTES_USED + 1] == [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `..=BYTES_USED` [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: an inclusive range would be more readable [INFO] [stderr] --> src/lz77.rs:1240:27 [INFO] [stderr] | [INFO] [stderr] 1240 | &data[..BYTES_USED + 1], [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `..=BYTES_USED` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lzvalue.rs:25:26 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn stored_length(&self) -> u8 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lzvalue.rs:30:26 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn actual_length(&self) -> u16 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lzvalue.rs:67:18 [INFO] [stderr] | [INFO] [stderr] 67 | pub fn value(&self) -> LZType { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/lzvalue.rs:92:18 [INFO] [stderr] | [INFO] [stderr] 92 | for i in 0..255 as usize + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `0..=255 as usize` [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: an inclusive range would be more readable [INFO] [stderr] --> src/lzvalue.rs:101:18 [INFO] [stderr] | [INFO] [stderr] 101 | for i in MIN_MATCH..MAX_MATCH + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `MIN_MATCH..=MAX_MATCH` [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: an inclusive range would be more readable [INFO] [stderr] --> src/lzvalue.rs:110:18 [INFO] [stderr] | [INFO] [stderr] 110 | for i in MIN_DISTANCE..MAX_DISTANCE + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `MIN_DISTANCE..=MAX_DISTANCE` [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/chained_hash_table.rs:82:32 [INFO] [stderr] | [INFO] [stderr] 82 | ((current_hash << shift) ^ (to_insert as u16)) & mask [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u16::from(to_insert)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/length_encode.rs:189:46 [INFO] [stderr] | [INFO] [stderr] 189 | acc + if n != 0 { 2f64.powi(-(n as i32)) } else { 0f64 } [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(n)` [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: The use of negated comparison operators on partially ordered types produces code that is hard to read and refactor. Please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable. [INFO] [stderr] --> src/length_encode.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | !(v > 1.0) [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::neg_cmp_op_on_partial_ord)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_cmp_op_on_partial_ord [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/length_encode.rs:292:22 [INFO] [stderr] | [INFO] [stderr] 292 | for i in (1..max_len + 1).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `(1..=max_len)` [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: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/length_encode.rs:296:26 [INFO] [stderr] | [INFO] [stderr] 296 | total += (num_codes[i] as u32) << (max_len - i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(num_codes[i])` [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/length_encode.rs:356:28 [INFO] [stderr] | [INFO] [stderr] 356 | value: *f as WeightType, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(*f)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/length_encode.rs:392:40 [INFO] [stderr] | [INFO] [stderr] 392 | for (&n_codes, i) in num_codes[1..max_len + 1].iter().zip(1..(max_len as u8) + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `1..=max_len` [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: an inclusive range would be more readable [INFO] [stderr] --> src/length_encode.rs:392:67 [INFO] [stderr] | [INFO] [stderr] 392 | for (&n_codes, i) in num_codes[1..max_len + 1].iter().zip(1..(max_len as u8) + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=(max_len as u8)` [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/length_encode.rs:1484:41 [INFO] [stderr] | [INFO] [stderr] 1484 | .fold(0, |a, (&f, &l)| a + (f as u16 * l)); [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(f)` [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: unused comparison that must be used [INFO] [stderr] --> src/output_writer.rs:147:13 [INFO] [stderr] | [INFO] [stderr] 147 | get_length_code(i) < w.frequencies.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/output_writer.rs:147:13 [INFO] [stderr] | [INFO] [stderr] 147 | get_length_code(i) < w.frequencies.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `get_length_code(i);w.frequencies.len();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_operation)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] warning: unused comparison that must be used [INFO] [stderr] --> src/output_writer.rs:151:13 [INFO] [stderr] | [INFO] [stderr] 151 | get_distance_code(i) < w.distance_frequencies.len() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: statement can be reduced [INFO] [stderr] --> src/output_writer.rs:151:13 [INFO] [stderr] | [INFO] [stderr] 151 | get_distance_code(i) < w.distance_frequencies.len() as u8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `get_distance_code(i);w.distance_frequencies.len() as u8;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/stored_block.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | output.write(&[first_byte]).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/huffman_lengths.rs:337:27 [INFO] [stderr] | [INFO] [stderr] 337 | writer.write_bits(huffman_table_lengths[usize::from(*n)] as u16, 3); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(huffman_table_lengths[usize::from(*n)])` [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/bitstream.rs:89:21 [INFO] [stderr] | [INFO] [stderr] 89 | self.acc |= (v as AccType) << self.bits; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u64::from(v)` [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/bitstream.rs:101:21 [INFO] [stderr] | [INFO] [stderr] 101 | self.acc |= (v as AccType) << self.bits; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `u64::from(v)` [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/bitstream.rs:126:33 [INFO] [stderr] | [INFO] [stderr] 126 | self.write_bits(byte as u16, 8) [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(byte)` [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: an inclusive range would be more readable [INFO] [stderr] --> src/matching.rs:144:17 [INFO] [stderr] | [INFO] [stderr] 144 | if data[position + best_length - 1..position + best_length + 1] == [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `position + best_length - 1..=position + best_length` [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: an inclusive range would be more readable [INFO] [stderr] --> src/matching.rs:145:18 [INFO] [stderr] | [INFO] [stderr] 145 | data[current_head + best_length - 1..current_head + best_length + 1] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `current_head + best_length - 1..=current_head + best_length` [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: an inclusive range would be more readable [INFO] [stderr] --> src/matching.rs:244:17 [INFO] [stderr] | [INFO] [stderr] 244 | if data[position + best_length - 1..position + best_length + 1] == [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `position + best_length - 1..=position + best_length` [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: an inclusive range would be more readable [INFO] [stderr] --> src/matching.rs:245:18 [INFO] [stderr] | [INFO] [stderr] 245 | data[offset_head + best_length - 1..offset_head + best_length + 1] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `offset_head + best_length - 1..=offset_head + best_length` [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: an inclusive range would be more readable [INFO] [stderr] --> src/matching.rs:374:54 [INFO] [stderr] | [INFO] [stderr] 374 | let hash_table = filled_hash_table(&data[..start_pos + 1]); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `..=start_pos` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/input_buffer.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | / pub fn new<'a>(data: &'a [u8]) -> (InputBuffer, Option<&[u8]>) { [INFO] [stderr] 18 | | let mut b = InputBuffer::empty(); [INFO] [stderr] 19 | | let rem = b.add_data(data); [INFO] [stderr] 20 | | (b, rem) [INFO] [stderr] 21 | | } [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: taken reference of right operand [INFO] [stderr] --> src/input_buffer.rs:109:17 [INFO] [stderr] | [INFO] [stderr] 109 | assert!(extra.unwrap() == &[10; 10]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^--------- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `[10; 10]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: The function/method `write_huffman_lengths` doesn't need a mutable reference [INFO] [stderr] --> src/compress.rs:197:21 [INFO] [stderr] | [INFO] [stderr] 197 | &mut deflate_state.length_buffers.length_buf, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/test_utils.rs:18:38 [INFO] [stderr] | [INFO] [stderr] 18 | let path = env::var("TEST_FILE").unwrap_or("tests/pg11.txt".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "tests/pg11.txt".to_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_ok()` [INFO] [stderr] --> src/test_utils.rs:52:12 [INFO] [stderr] | [INFO] [stderr] 52 | if let Ok(_) = res { [INFO] [stderr] | _____- ^^^^^ [INFO] [stderr] 53 | | // println!("{} bytes decompressed successfully", n); [INFO] [stderr] 54 | | } else { [INFO] [stderr] 55 | | println!("result size: {}", result.len()); [INFO] [stderr] 56 | | res.unwrap(); [INFO] [stderr] 57 | | } [INFO] [stderr] | |_____- help: try this: `if res.is_ok()` [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: needlessly taken reference of both operands [INFO] [stderr] --> src/lib.rs:372:17 [INFO] [stderr] | [INFO] [stderr] 372 | assert!(&test_data == &result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 372 | assert!(test_data == result); [INFO] [stderr] | ^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/lib.rs:455:13 [INFO] [stderr] | [INFO] [stderr] 455 | &vec![5; 100000], [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[5; 100000]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `deflate`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "cea6ce0f835c680599932399ab4568d83c397aee0decf304c76da3eaf334c780"` [INFO] running `"docker" "rm" "-f" "cea6ce0f835c680599932399ab4568d83c397aee0decf304c76da3eaf334c780"` [INFO] [stdout] cea6ce0f835c680599932399ab4568d83c397aee0decf304c76da3eaf334c780