[INFO] crate zopfli 0.4.0 is already in cache [INFO] extracting crate zopfli 0.4.0 into work/ex/clippy-test-run/sources/stable/reg/zopfli/0.4.0 [INFO] extracting crate zopfli 0.4.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/zopfli/0.4.0 [INFO] validating manifest of zopfli-0.4.0 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 zopfli-0.4.0 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 zopfli-0.4.0 [INFO] finished frobbing zopfli-0.4.0 [INFO] frobbed toml for zopfli-0.4.0 written to work/ex/clippy-test-run/sources/stable/reg/zopfli/0.4.0/Cargo.toml [INFO] started frobbing zopfli-0.4.0 [INFO] finished frobbing zopfli-0.4.0 [INFO] frobbed toml for zopfli-0.4.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/zopfli/0.4.0/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 zopfli-0.4.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/zopfli/0.4.0:/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] c782ff0b632089478739907a520f36e49ab46d00a555397215bb89a69154364d [INFO] running `"docker" "start" "-a" "c782ff0b632089478739907a520f36e49ab46d00a555397215bb89a69154364d"` [INFO] [stderr] Checking zopfli v0.4.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/deflate.rs:939:13 [INFO] [stderr] | [INFO] [stderr] 939 | out: out, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `out` [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/deflate.rs:939:13 [INFO] [stderr] | [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/hash.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | prev: prev, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `prev` [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] 939 | out: out, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `out` [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] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lz77.rs:358:13 [INFO] [stderr] | [INFO] [stderr] 358 | options: options, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `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/lz77.rs:359:13 [INFO] [stderr] | [INFO] [stderr] 359 | blockstart: blockstart, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `blockstart` [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:360:13 [INFO] [stderr] | [INFO] [stderr] 360 | blockend: blockend, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `blockend` [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:369:13 [INFO] [stderr] | [INFO] [stderr] 369 | options: options, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `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/lz77.rs:370:13 [INFO] [stderr] | [INFO] [stderr] 370 | blockstart: blockstart, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `blockstart` [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:371:13 [INFO] [stderr] | [INFO] [stderr] 371 | blockend: blockend, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `blockend` [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] --> src/hash.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | prev: prev, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `prev` [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:358:13 [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lz77.rs:408:13 [INFO] [stderr] | [INFO] [stderr] 408 | limit: limit, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `limit` [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] 358 | options: options, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `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/lz77.rs:359:13 [INFO] [stderr] | [INFO] [stderr] 359 | blockstart: blockstart, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `blockstart` [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:360:13 [INFO] [stderr] | [INFO] [stderr] 360 | blockend: blockend, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `blockend` [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:369:13 [INFO] [stderr] | [INFO] [stderr] 369 | options: options, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `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/lz77.rs:370:13 [INFO] [stderr] | [INFO] [stderr] 370 | blockstart: blockstart, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `blockstart` [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:371:13 [INFO] [stderr] | [INFO] [stderr] 371 | blockend: blockend, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `blockend` [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:408:13 [INFO] [stderr] | [INFO] [stderr] 408 | limit: limit, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `limit` [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] [INFO] [stderr] warning: Unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stderr] --> src/squeeze.rs:313:12 [INFO] [stderr] | [INFO] [stderr] 313 | if i + 1 <= inend { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::int_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stderr] help: change `>= y + 1` to `> y` as shown [INFO] [stderr] | [INFO] [stderr] 313 | if i < inend { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:40:45 [INFO] [stderr] | [INFO] [stderr] 40 | pub const ZOPFLI_MASTER_BLOCK_SIZE: usize = 1000000; [INFO] [stderr] | ^^^^^^^ help: consider: `1_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: Unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stderr] --> src/squeeze.rs:313:12 [INFO] [stderr] | [INFO] [stderr] 313 | if i + 1 <= inend { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::int_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stderr] help: change `>= y + 1` to `> y` as shown [INFO] [stderr] | [INFO] [stderr] 313 | if i < inend { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:40:45 [INFO] [stderr] | [INFO] [stderr] 40 | pub const ZOPFLI_MASTER_BLOCK_SIZE: usize = 1000000; [INFO] [stderr] | ^^^^^^^ help: consider: `1_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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/cache.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | self.sublen[start + ((ZOPFLI_CACHE_LENGTH - 1) * 3)] as u32 + 3 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.sublen[start + ((ZOPFLI_CACHE_LENGTH - 1) * 3)])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/cache.rs:100:24 [INFO] [stderr] | [INFO] [stderr] 100 | let dist = self.sublen[start + (j * 3 + 1)] as u16 + 256 * self.sublen[start + (j * 3 + 2)] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.sublen[start + (j * 3 + 1)])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cache.rs:100:72 [INFO] [stderr] | [INFO] [stderr] 100 | let dist = self.sublen[start + (j * 3 + 1)] as u16 + 256 * self.sublen[start + (j * 3 + 2)] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.sublen[start + (j * 3 + 2)])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/cache.rs:149:36 [INFO] [stderr] | [INFO] [stderr] 149 | if sublen.is_none() || length_lmcpos as u32 <= max_sublen { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(length_lmcpos)` [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: this boolean expression can be simplified [INFO] [stderr] --> src/deflate.rs:119:16 [INFO] [stderr] | [INFO] [stderr] 119 | if (symbol == 0 && stride >= 5) || (symbol != 0 && stride >= 7) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `symbol == 0 && stride >= 5 || symbol != 0 && stride >= 7` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/deflate.rs:135:14 [INFO] [stderr] | [INFO] [stderr] 135 | for i in 0..(length + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `0..=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: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/deflate.rs:214:48 [INFO] [stderr] | [INFO] [stderr] 214 | let d_symbol = get_dist_symbol(dists_i as i32); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i32::from(dists_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: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/deflate.rs:404:1 [INFO] [stderr] | [INFO] [stderr] 404 | / fn encode_tree(ll_lengths: &[u32], d_lengths: &[u32], use_16: bool, use_17: bool, use_18: bool, bitwise_writer: &mut BitwiseWriter) -> io::Result [INFO] [stderr] 405 | | where W: Write [INFO] [stderr] 406 | | { [INFO] [stderr] 407 | | let mut hlit = 29; /* 286 - 257 */ [INFO] [stderr] ... | [INFO] [stderr] 565 | | Ok(result_size) [INFO] [stderr] 566 | | } [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: this function has too many arguments (9/7) [INFO] [stderr] --> src/deflate.rs:598:1 [INFO] [stderr] | [INFO] [stderr] 598 | / fn add_lz77_block(options: &Options, btype: BlockType, final_block: bool, in_data: &[u8], lz77: &Lz77Store, lstart: usize, lend: usize, expected_data_size: usize, bitwise_writer: &mut BitwiseWriter) -> io::Result<()> [INFO] [stderr] 599 | | where W: Write [INFO] [stderr] 600 | | { [INFO] [stderr] 601 | | if btype == BlockType::Uncompressed { [INFO] [stderr] ... | [INFO] [stderr] 649 | | Ok(()) [INFO] [stderr] 650 | | } [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 function has too many arguments (9/7) [INFO] [stderr] --> src/deflate.rs:730:1 [INFO] [stderr] | [INFO] [stderr] 730 | / fn add_lz77_data(lz77: &Lz77Store, lstart: usize, lend: usize, expected_data_size: usize , ll_symbols: &[u32], ll_lengths: &[u32], d_symbols: &[u32], d_lengths: &[u32], bitwise_writer: &mut BitwiseWriter) -> io::Result<()> [INFO] [stderr] 731 | | where W: Write [INFO] [stderr] 732 | | { [INFO] [stderr] 733 | | let mut testlength = 0; [INFO] [stderr] ... | [INFO] [stderr] 760 | | Ok(()) [INFO] [stderr] 761 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/deflate.rs:747:42 [INFO] [stderr] | [INFO] [stderr] 747 | let ds = get_dist_symbol(dist as i32) as u32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(dist)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/deflate.rs:754:72 [INFO] [stderr] | [INFO] [stderr] 754 | try!(bitwise_writer.add_bits(get_dist_extra_bits_value(dist as i32) as u32, get_dist_extra_bits(dist as i32) as u32)); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(dist)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/deflate.rs:754:113 [INFO] [stderr] | [INFO] [stderr] 754 | try!(bitwise_writer.add_bits(get_dist_extra_bits_value(dist as i32) as u32, get_dist_extra_bits(dist as i32) as u32)); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(dist)` [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: this function has too many arguments (8/7) [INFO] [stderr] --> src/deflate.rs:763:1 [INFO] [stderr] | [INFO] [stderr] 763 | / fn add_lz77_block_auto_type(options: &Options, final_block: bool, in_data: &[u8], lz77: &Lz77Store, lstart: usize, lend: usize, expected_data_size: usize, bitwise_writer: &mut BitwiseWriter) -> io::Result<()> [INFO] [stderr] 764 | | where W: Write [INFO] [stderr] 765 | | { [INFO] [stderr] 766 | | let uncompressedcost = calculate_block_size(lz77, lstart, lend, BlockType::Uncompressed); [INFO] [stderr] ... | [INFO] [stderr] 803 | | } [INFO] [stderr] 804 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/hash.rs:105:60 [INFO] [stderr] | [INFO] [stderr] 105 | self.hash1.val = ((self.hash1.val << HASH_SHIFT) ^ c as u16) & HASH_MASK; [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(c)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/hash.rs:150:33 [INFO] [stderr] | [INFO] [stderr] 150 | hashval.map_or(-1, |hv| hv as i32) [INFO] [stderr] | ^^^^^^^^^ help: try: `i32::from(hv)` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lz77.rs:16:17 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn size(&self) -> usize { [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: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:108:52 [INFO] [stderr] | [INFO] [stderr] 108 | self.d_symbol.push(get_dist_symbol(dist as i32) as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(dist)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:110:56 [INFO] [stderr] | [INFO] [stderr] 110 | self.d_counts[dstart + get_dist_symbol(dist as i32) as usize] += 1; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(dist)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:162:44 [INFO] [stderr] | [INFO] [stderr] 162 | lengthscore = get_length_score(leng as i32, dist as i32); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(leng)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:162:57 [INFO] [stderr] | [INFO] [stderr] 162 | lengthscore = get_length_score(leng as i32, dist as i32); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(dist)` [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/lz77.rs:169:39 [INFO] [stderr] | [INFO] [stderr] 169 | self.lit_len_dist(arr[i - 1] as u16, 0, i - 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(arr[i - 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:172:39 [INFO] [stderr] | [INFO] [stderr] 172 | prev_length = leng as u32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u32::from(leng)` [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/lz77.rs:173:38 [INFO] [stderr] | [INFO] [stderr] 173 | prev_match = dist as u32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u32::from(dist)` [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/lz77.rs:194:31 [INFO] [stderr] | [INFO] [stderr] 194 | prev_length = leng as u32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u32::from(leng)` [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/lz77.rs:195:30 [INFO] [stderr] | [INFO] [stderr] 195 | prev_match = dist as u32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u32::from(dist)` [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/lz77.rs:207:35 [INFO] [stderr] | [INFO] [stderr] 207 | self.lit_len_dist(arr[i] as u16, 0, i); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(arr[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 u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:255:35 [INFO] [stderr] | [INFO] [stderr] 255 | self.lit_len_dist(arr[pos] as u16, 0, pos); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(arr[pos])` [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 function has a cyclomatic complexity of 26 [INFO] [stderr] --> src/lz77.rs:482:1 [INFO] [stderr] | [INFO] [stderr] 482 | / fn find_longest_match_loop(h: &mut ZopfliHash, array: &[u8], pos: usize, size: usize, limit: usize, sublen: &mut Option<&mut [u16]>) -> (i32, usize) { [INFO] [stderr] 483 | | let mut which_hash = Which::Hash1; [INFO] [stderr] 484 | | let mut pp = h.head_at(h.val(which_hash) as usize, which_hash); /* During the whole loop, p == hprev[pp]. */ [INFO] [stderr] 485 | | let mut p = h.prev_at(pp as usize, which_hash); [INFO] [stderr] ... | [INFO] [stderr] 570 | | (bestdist, bestlength) [INFO] [stderr] 571 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/cache.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | self.sublen[start + ((ZOPFLI_CACHE_LENGTH - 1) * 3)] as u32 + 3 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.sublen[start + ((ZOPFLI_CACHE_LENGTH - 1) * 3)])` [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:490:23 [INFO] [stderr] | [INFO] [stderr] 490 | let mut dist = if (p as i32) < pp { [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(p)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:491:14 [INFO] [stderr] | [INFO] [stderr] 491 | pp - (p as i32) [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(p)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:509:65 [INFO] [stderr] | [INFO] [stderr] 509 | debug_assert_eq!(h.hash_val_at(p as usize, which_hash), h.val(which_hash) as i32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(h.val(which_hash))` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:548:13 [INFO] [stderr] | [INFO] [stderr] 548 | h.val(Which::Hash2) as i32 == h.hash_val_at(p as usize, Which::Hash2) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(h.val(Which::Hash2))` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:553:14 [INFO] [stderr] | [INFO] [stderr] 553 | pp = p as i32; [INFO] [stderr] | ^^^^^^^^ help: try: `i32::from(p)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:555:12 [INFO] [stderr] | [INFO] [stderr] 555 | if (p as i32) == pp { [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(p)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:559:20 [INFO] [stderr] | [INFO] [stderr] 559 | dist += if (p as i32) < pp { [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(p)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:560:18 [INFO] [stderr] | [INFO] [stderr] 560 | pp - (p as i32) [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(p)` [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] | [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/cache.rs:100:24 [INFO] [stderr] | [INFO] [stderr] 100 | let dist = self.sublen[start + (j * 3 + 1)] as u16 + 256 * self.sublen[start + (j * 3 + 2)] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.sublen[start + (j * 3 + 1)])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/cache.rs:100:72 [INFO] [stderr] | [INFO] [stderr] 100 | let dist = self.sublen[start + (j * 3 + 1)] as u16 + 256 * self.sublen[start + (j * 3 + 2)] as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.sublen[start + (j * 3 + 2)])` [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | result as f64 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(result)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:51:21 [INFO] [stderr] | [INFO] [stderr] 51 | let lbits = get_length_extra_bits(litlen as usize) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(get_length_extra_bits(litlen as usize))` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:53:21 [INFO] [stderr] | [INFO] [stderr] 53 | let dbits = get_dist_extra_bits(dist as i32) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(get_dist_extra_bits(dist as i32))` [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] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/squeeze.rs:139:35 [INFO] [stderr] | [INFO] [stderr] 139 | let sum = count.iter().fold(0, |acc, &x| acc + x); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.sum()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_fold)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/cache.rs:149:36 [INFO] [stderr] | [INFO] [stderr] 149 | if sublen.is_none() || length_lmcpos as u32 <= max_sublen { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(length_lmcpos)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:176:48 [INFO] [stderr] | [INFO] [stderr] 176 | self.dists[get_dist_symbol(dist as i32) as usize] += 1; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(dist)` [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: this boolean expression can be simplified [INFO] [stderr] --> src/deflate.rs:119:16 [INFO] [stderr] | [INFO] [stderr] 119 | if (symbol == 0 && stride >= 5) || (symbol != 0 && stride >= 7) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `symbol == 0 && stride >= 5 || symbol != 0 && stride >= 7` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:314:38 [INFO] [stderr] | [INFO] [stderr] 314 | let new_cost = costmodel(arr[i] as u32, 0) + costs[j] as f64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(arr[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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:314:58 [INFO] [stderr] | [INFO] [stderr] 314 | let new_cost = costmodel(arr[i] as u32, 0) + costs[j] as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(costs[j])` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:316:27 [INFO] [stderr] | [INFO] [stderr] 316 | if new_cost < costs[j + 1] as f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(costs[j + 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:323:41 [INFO] [stderr] | [INFO] [stderr] 323 | let mincostaddcostj = mincost + costs[j] as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(costs[j])` [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/deflate.rs:135:14 [INFO] [stderr] | [INFO] [stderr] 135 | for i in 0..(length + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: use: `0..=length` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:328:16 [INFO] [stderr] | [INFO] [stderr] 328 | if costs[j + k] as f64 <= mincostaddcostj { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(costs[j + k])` [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] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:332:48 [INFO] [stderr] | [INFO] [stderr] 332 | let new_cost = costmodel(k as u32, sublength as u32) + costs[j] as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(sublength)` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:332:68 [INFO] [stderr] | [INFO] [stderr] 332 | let new_cost = costmodel(k as u32, sublength as u32) + costs[j] as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(costs[j])` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:334:27 [INFO] [stderr] | [INFO] [stderr] 334 | if new_cost < costs[j + k] as f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(costs[j + k])` [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] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:344:6 [INFO] [stderr] | [INFO] [stderr] 344 | (costs[blocksize] as f64, length_array) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(costs[blocksize])` [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: this function has too many arguments (8/7) [INFO] [stderr] --> src/squeeze.rs:384:1 [INFO] [stderr] | [INFO] [stderr] 384 | / fn lz77_optimal_run(s: &mut ZopfliBlockState, in_data: &[u8], instart: usize, inend: usize, costmodel: F, store: &mut Lz77Store, h: &mut ZopfliHash, costs: &mut Vec) [INFO] [stderr] 385 | | where F: Fn(u32, u32) -> f64, [INFO] [stderr] 386 | | C: Cache, [INFO] [stderr] 387 | | { [INFO] [stderr] ... | [INFO] [stderr] 391 | | debug_assert!(cost < f64::MAX); [INFO] [stderr] 392 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/deflate.rs:214:48 [INFO] [stderr] | [INFO] [stderr] 214 | let d_symbol = get_dist_symbol(dists_i as i32); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try: `i32::from(dists_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: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/deflate.rs:404:1 [INFO] [stderr] | [INFO] [stderr] 404 | / fn encode_tree(ll_lengths: &[u32], d_lengths: &[u32], use_16: bool, use_17: bool, use_18: bool, bitwise_writer: &mut BitwiseWriter) -> io::Result [INFO] [stderr] 405 | | where W: Write [INFO] [stderr] 406 | | { [INFO] [stderr] 407 | | let mut hlit = 29; /* 286 - 257 */ [INFO] [stderr] ... | [INFO] [stderr] 565 | | Ok(result_size) [INFO] [stderr] 566 | | } [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: an inclusive range would be more readable [INFO] [stderr] --> src/tree.rs:18:17 [INFO] [stderr] | [INFO] [stderr] 18 | for bits in 1..(max_bits + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use: `1..=max_bits` [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 function has too many arguments (9/7) [INFO] [stderr] --> src/deflate.rs:598:1 [INFO] [stderr] | [INFO] [stderr] 598 | / fn add_lz77_block(options: &Options, btype: BlockType, final_block: bool, in_data: &[u8], lz77: &Lz77Store, lstart: usize, lend: usize, expected_data_size: usize, bitwise_writer: &mut BitwiseWriter) -> io::Result<()> [INFO] [stderr] 599 | | where W: Write [INFO] [stderr] 600 | | { [INFO] [stderr] 601 | | if btype == BlockType::Uncompressed { [INFO] [stderr] ... | [INFO] [stderr] 649 | | Ok(()) [INFO] [stderr] 650 | | } [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 function has too many arguments (9/7) [INFO] [stderr] --> src/deflate.rs:730:1 [INFO] [stderr] | [INFO] [stderr] 730 | / fn add_lz77_data(lz77: &Lz77Store, lstart: usize, lend: usize, expected_data_size: usize , ll_symbols: &[u32], ll_lengths: &[u32], d_symbols: &[u32], d_lengths: &[u32], bitwise_writer: &mut BitwiseWriter) -> io::Result<()> [INFO] [stderr] 731 | | where W: Write [INFO] [stderr] 732 | | { [INFO] [stderr] 733 | | let mut testlength = 0; [INFO] [stderr] ... | [INFO] [stderr] 760 | | Ok(()) [INFO] [stderr] 761 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/deflate.rs:747:42 [INFO] [stderr] | [INFO] [stderr] 747 | let ds = get_dist_symbol(dist as i32) as u32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(dist)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/deflate.rs:754:72 [INFO] [stderr] | [INFO] [stderr] 754 | try!(bitwise_writer.add_bits(get_dist_extra_bits_value(dist as i32) as u32, get_dist_extra_bits(dist as i32) as u32)); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(dist)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/deflate.rs:754:113 [INFO] [stderr] | [INFO] [stderr] 754 | try!(bitwise_writer.add_bits(get_dist_extra_bits_value(dist as i32) as u32, get_dist_extra_bits(dist as i32) as u32)); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(dist)` [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: this function has too many arguments (8/7) [INFO] [stderr] --> src/deflate.rs:763:1 [INFO] [stderr] | [INFO] [stderr] 763 | / fn add_lz77_block_auto_type(options: &Options, final_block: bool, in_data: &[u8], lz77: &Lz77Store, lstart: usize, lend: usize, expected_data_size: usize, bitwise_writer: &mut BitwiseWriter) -> io::Result<()> [INFO] [stderr] 764 | | where W: Write [INFO] [stderr] 765 | | { [INFO] [stderr] 766 | | let uncompressedcost = calculate_block_size(lz77, lstart, lend, BlockType::Uncompressed); [INFO] [stderr] ... | [INFO] [stderr] 803 | | } [INFO] [stderr] 804 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/hash.rs:105:60 [INFO] [stderr] | [INFO] [stderr] 105 | self.hash1.val = ((self.hash1.val << HASH_SHIFT) ^ c as u16) & HASH_MASK; [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(c)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/hash.rs:150:33 [INFO] [stderr] | [INFO] [stderr] 150 | hashval.map_or(-1, |hv| hv as i32) [INFO] [stderr] | ^^^^^^^^^ help: try: `i32::from(hv)` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lz77.rs:16:17 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn size(&self) -> usize { [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: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:108:52 [INFO] [stderr] | [INFO] [stderr] 108 | self.d_symbol.push(get_dist_symbol(dist as i32) as u16); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(dist)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:110:56 [INFO] [stderr] | [INFO] [stderr] 110 | self.d_counts[dstart + get_dist_symbol(dist as i32) as usize] += 1; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(dist)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:162:44 [INFO] [stderr] | [INFO] [stderr] 162 | lengthscore = get_length_score(leng as i32, dist as i32); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(leng)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:162:57 [INFO] [stderr] | [INFO] [stderr] 162 | lengthscore = get_length_score(leng as i32, dist as i32); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(dist)` [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/lz77.rs:169:39 [INFO] [stderr] | [INFO] [stderr] 169 | self.lit_len_dist(arr[i - 1] as u16, 0, i - 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u16::from(arr[i - 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:172:39 [INFO] [stderr] | [INFO] [stderr] 172 | prev_length = leng as u32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u32::from(leng)` [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/lz77.rs:173:38 [INFO] [stderr] | [INFO] [stderr] 173 | prev_match = dist as u32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u32::from(dist)` [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/lz77.rs:194:31 [INFO] [stderr] | [INFO] [stderr] 194 | prev_length = leng as u32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u32::from(leng)` [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/lz77.rs:195:30 [INFO] [stderr] | [INFO] [stderr] 195 | prev_match = dist as u32; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u32::from(dist)` [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/lz77.rs:207:35 [INFO] [stderr] | [INFO] [stderr] 207 | self.lit_len_dist(arr[i] as u16, 0, i); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(arr[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 u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:255:35 [INFO] [stderr] | [INFO] [stderr] 255 | self.lit_len_dist(arr[pos] as u16, 0, pos); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(arr[pos])` [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 function has a cyclomatic complexity of 26 [INFO] [stderr] --> src/lz77.rs:482:1 [INFO] [stderr] | [INFO] [stderr] 482 | / fn find_longest_match_loop(h: &mut ZopfliHash, array: &[u8], pos: usize, size: usize, limit: usize, sublen: &mut Option<&mut [u16]>) -> (i32, usize) { [INFO] [stderr] 483 | | let mut which_hash = Which::Hash1; [INFO] [stderr] 484 | | let mut pp = h.head_at(h.val(which_hash) as usize, which_hash); /* During the whole loop, p == hprev[pp]. */ [INFO] [stderr] 485 | | let mut p = h.prev_at(pp as usize, which_hash); [INFO] [stderr] ... | [INFO] [stderr] 570 | | (bestdist, bestlength) [INFO] [stderr] 571 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:490:23 [INFO] [stderr] | [INFO] [stderr] 490 | let mut dist = if (p as i32) < pp { [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(p)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:491:14 [INFO] [stderr] | [INFO] [stderr] 491 | pp - (p as i32) [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(p)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:509:65 [INFO] [stderr] | [INFO] [stderr] 509 | debug_assert_eq!(h.hash_val_at(p as usize, which_hash), h.val(which_hash) as i32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(h.val(which_hash))` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:548:13 [INFO] [stderr] | [INFO] [stderr] 548 | h.val(Which::Hash2) as i32 == h.hash_val_at(p as usize, Which::Hash2) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(h.val(Which::Hash2))` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:553:14 [INFO] [stderr] | [INFO] [stderr] 553 | pp = p as i32; [INFO] [stderr] | ^^^^^^^^ help: try: `i32::from(p)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:555:12 [INFO] [stderr] | [INFO] [stderr] 555 | if (p as i32) == pp { [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(p)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:559:20 [INFO] [stderr] | [INFO] [stderr] 559 | dist += if (p as i32) < pp { [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(p)` [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 i32 may become silently lossy if types change [INFO] [stderr] --> src/lz77.rs:560:18 [INFO] [stderr] | [INFO] [stderr] 560 | pp - (p as i32) [INFO] [stderr] | ^^^^^^^^^^ help: try: `i32::from(p)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | result as f64 [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(result)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:51:21 [INFO] [stderr] | [INFO] [stderr] 51 | let lbits = get_length_extra_bits(litlen as usize) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(get_length_extra_bits(litlen as usize))` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:53:21 [INFO] [stderr] | [INFO] [stderr] 53 | let dbits = get_dist_extra_bits(dist as i32) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(get_dist_extra_bits(dist as i32))` [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: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/squeeze.rs:139:35 [INFO] [stderr] | [INFO] [stderr] 139 | let sum = count.iter().fold(0, |acc, &x| acc + x); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.sum()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_fold)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stderr] [INFO] [stderr] warning: casting u16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:176:48 [INFO] [stderr] | [INFO] [stderr] 176 | self.dists[get_dist_symbol(dist as i32) as usize] += 1; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i32::from(dist)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:314:38 [INFO] [stderr] | [INFO] [stderr] 314 | let new_cost = costmodel(arr[i] as u32, 0) + costs[j] as f64; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u32::from(arr[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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:314:58 [INFO] [stderr] | [INFO] [stderr] 314 | let new_cost = costmodel(arr[i] as u32, 0) + costs[j] as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(costs[j])` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:316:27 [INFO] [stderr] | [INFO] [stderr] 316 | if new_cost < costs[j + 1] as f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(costs[j + 1])` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:323:41 [INFO] [stderr] | [INFO] [stderr] 323 | let mincostaddcostj = mincost + costs[j] as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(costs[j])` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:328:16 [INFO] [stderr] | [INFO] [stderr] 328 | if costs[j + k] as f64 <= mincostaddcostj { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(costs[j + k])` [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/squeeze.rs:332:48 [INFO] [stderr] | [INFO] [stderr] 332 | let new_cost = costmodel(k as u32, sublength as u32) + costs[j] as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u32::from(sublength)` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:332:68 [INFO] [stderr] | [INFO] [stderr] 332 | let new_cost = costmodel(k as u32, sublength as u32) + costs[j] as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(costs[j])` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:334:27 [INFO] [stderr] | [INFO] [stderr] 334 | if new_cost < costs[j + k] as f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(costs[j + k])` [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/squeeze.rs:344:6 [INFO] [stderr] | [INFO] [stderr] 344 | (costs[blocksize] as f64, length_array) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(costs[blocksize])` [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: this function has too many arguments (8/7) [INFO] [stderr] --> src/squeeze.rs:384:1 [INFO] [stderr] | [INFO] [stderr] 384 | / fn lz77_optimal_run(s: &mut ZopfliBlockState, in_data: &[u8], instart: usize, inend: usize, costmodel: F, store: &mut Lz77Store, h: &mut ZopfliHash, costs: &mut Vec) [INFO] [stderr] 385 | | where F: Fn(u32, u32) -> f64, [INFO] [stderr] 386 | | C: Cache, [INFO] [stderr] 387 | | { [INFO] [stderr] ... | [INFO] [stderr] 391 | | debug_assert!(cost < f64::MAX); [INFO] [stderr] 392 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: an inclusive range would be more readable [INFO] [stderr] --> src/tree.rs:18:17 [INFO] [stderr] | [INFO] [stderr] 18 | for bits in 1..(max_bits + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use: `1..=max_bits` [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: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | inner: inner, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | inner: inner, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [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] Finished dev [unoptimized + debuginfo] target(s) in 4.04s [INFO] running `"docker" "inspect" "c782ff0b632089478739907a520f36e49ab46d00a555397215bb89a69154364d"` [INFO] running `"docker" "rm" "-f" "c782ff0b632089478739907a520f36e49ab46d00a555397215bb89a69154364d"` [INFO] [stdout] c782ff0b632089478739907a520f36e49ab46d00a555397215bb89a69154364d