[INFO] cloning repository https://github.com/itamarsch/deflate-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/itamarsch/deflate-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fitamarsch%2Fdeflate-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fitamarsch%2Fdeflate-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] bbb3eb306e29a8cd103360cc57a3a36f25123d28 [INFO] linting itamarsch/deflate-rs against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fitamarsch%2Fdeflate-rs" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/itamarsch/deflate-rs [INFO] finished tweaking git repo https://github.com/itamarsch/deflate-rs [INFO] tweaked toml for git repo https://github.com/itamarsch/deflate-rs written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/itamarsch/deflate-rs on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/itamarsch/deflate-rs already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded console v0.15.10 [INFO] [stderr] Downloaded indicatif v0.17.9 [INFO] [stderr] Downloaded portable-atomic v1.10.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ca6070d9e82960e55adfbadef9fe4db10c78a8591212743b2ee5d1dad76c201d [INFO] running `Command { std: "docker" "start" "-a" "ca6070d9e82960e55adfbadef9fe4db10c78a8591212743b2ee5d1dad76c201d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ca6070d9e82960e55adfbadef9fe4db10c78a8591212743b2ee5d1dad76c201d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ca6070d9e82960e55adfbadef9fe4db10c78a8591212743b2ee5d1dad76c201d", kill_on_drop: false }` [INFO] [stdout] ca6070d9e82960e55adfbadef9fe4db10c78a8591212743b2ee5d1dad76c201d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4da76b367d94586a2bbd5acf1db366daae4eb167c6bdd087f86603861c62fe54 [INFO] running `Command { std: "docker" "start" "-a" "4da76b367d94586a2bbd5acf1db366daae4eb167c6bdd087f86603861c62fe54", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.87 [INFO] [stderr] Compiling libc v0.2.169 [INFO] [stderr] Checking anstyle-parse v0.2.6 [INFO] [stderr] Checking anstyle-query v1.1.2 [INFO] [stderr] Checking colorchoice v1.0.3 [INFO] [stderr] Compiling portable-atomic v1.10.0 [INFO] [stderr] Checking anstyle v1.0.10 [INFO] [stderr] Checking clap_lex v0.7.4 [INFO] [stderr] Compiling thiserror v2.0.9 [INFO] [stderr] Checking unicode-width v0.2.0 [INFO] [stderr] Checking number_prefix v0.4.0 [INFO] [stderr] Checking anstream v0.6.18 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking minimal-lexical v0.2.1 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking adler v1.0.2 [INFO] [stderr] Checking clap_builder v4.5.23 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking console v0.15.10 [INFO] [stderr] Checking indicatif v0.17.9 [INFO] [stderr] Compiling thiserror-impl v2.0.9 [INFO] [stderr] Compiling clap_derive v4.5.18 [INFO] [stderr] Checking clap v4.5.23 [INFO] [stderr] Checking deflate v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/bit_reader.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | if self.bit_position % 8 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!self.bit_position.is_multiple_of(8)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/bit_reader.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | assert!(self.bit_position % 8 == 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `self.bit_position.is_multiple_of(8)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/deflate/blocks/dynamic_huffman.rs:18:52 [INFO] [stdout] | [INFO] [stdout] 18 | code_length_code_lengths[CODE_LENGTH_ORDER[i as usize] as usize] = len; [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `literals` [INFO] [stdout] --> src/deflate/blocks/fixed_huffman.rs:8:18 [INFO] [stdout] | [INFO] [stdout] 8 | for i in 0..144 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 8 - for i in 0..144 { [INFO] [stdout] 8 + for in literals.iter_mut().take(144) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `literals` [INFO] [stdout] --> src/deflate/blocks/fixed_huffman.rs:12:18 [INFO] [stdout] | [INFO] [stdout] 12 | for i in 144..256 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 12 - for i in 144..256 { [INFO] [stdout] 12 + for in literals.iter_mut().take(256).skip(144) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `literals` [INFO] [stdout] --> src/deflate/blocks/fixed_huffman.rs:16:18 [INFO] [stdout] | [INFO] [stdout] 16 | for i in 256..280 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 16 - for i in 256..280 { [INFO] [stdout] 16 + for in literals.iter_mut().take(280).skip(256) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `literals` [INFO] [stdout] --> src/deflate/blocks/fixed_huffman.rs:20:18 [INFO] [stdout] | [INFO] [stdout] 20 | for i in 280..288 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 20 - for i in 280..288 { [INFO] [stdout] 20 + for in literals.iter_mut().skip(280) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually filling a slice [INFO] [stdout] --> src/deflate/blocks/fixed_huffman.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | / for i in 0..distances.len() { [INFO] [stdout] 25 | | distances[i] = 5; [INFO] [stdout] 26 | | } [INFO] [stdout] | |_________^ help: try: `distances.fill(5);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_slice_fill [INFO] [stdout] = note: `#[warn(clippy::manual_slice_fill)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `distances` [INFO] [stdout] --> src/deflate/blocks/fixed_huffman.rs:24:18 [INFO] [stdout] | [INFO] [stdout] 24 | for i in 0..distances.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 24 - for i in 0..distances.len() { [INFO] [stdout] 24 + for in &mut distances { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> src/deflate/blocks/uncompressed.rs:5:30 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn read_uncompressed<'a, 'b>(reader: &'b mut BitReader<'a>) -> Result<&'a [u8], DeflateError> { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 5 - pub fn read_uncompressed<'a, 'b>(reader: &'b mut BitReader<'a>) -> Result<&'a [u8], DeflateError> { [INFO] [stdout] 5 + pub fn read_uncompressed<'a>(reader: &mut BitReader<'a>) -> Result<&'a [u8], DeflateError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/deflate/length_distance.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | if !(257 <= length_byte && length_byte <= 285) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(257..=285).contains(&length_byte)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/deflate/length_distance.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | if !(distance_byte <= 29) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `(distance_byte > 29)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/deflate.rs:58:36 [INFO] [stdout] | [INFO] [stdout] 58 | update_bar(start_time, &bar); [INFO] [stdout] | ^^^^ help: change this to: `bar` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `VMS` contains a capitalized acronym [INFO] [stdout] --> src/gzip/os.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | VMS, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Vms` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `HPFS` contains a capitalized acronym [INFO] [stdout] --> src/gzip/os.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | HPFS, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Hpfs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NTFS` contains a capitalized acronym [INFO] [stdout] --> src/gzip/os.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | NTFS, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Ntfs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `QDOS` contains a capitalized acronym [INFO] [stdout] --> src/gzip/os.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | QDOS, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Qdos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/gzip.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | if input.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!input.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FIFO` contains a capitalized acronym [INFO] [stdout] --> src/tar/header.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | FIFO, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Fifo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/zlib.rs:10:21 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn inflate_zlib<'a, 'b>(rest: &'a [u8], display_progress: bool) -> Result, ZlibError> { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 10 - pub fn inflate_zlib<'a, 'b>(rest: &'a [u8], display_progress: bool) -> Result, ZlibError> { [INFO] [stdout] 10 + pub fn inflate_zlib<'b>(rest: &[u8], display_progress: bool) -> Result, ZlibError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/zlib.rs:10:25 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn inflate_zlib<'a, 'b>(rest: &'a [u8], display_progress: bool) -> Result, ZlibError> { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/zlib.rs:26:16 [INFO] [stdout] | [INFO] [stdout] 26 | fn read_header<'a, 'b>(header: &'a [u8]) -> Result<&'a [u8], ZlibError> { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 26 - fn read_header<'a, 'b>(header: &'a [u8]) -> Result<&'a [u8], ZlibError> { [INFO] [stdout] 26 + fn read_header<'b>(header: &[u8]) -> Result<&[u8], ZlibError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/zlib.rs:26:20 [INFO] [stdout] | [INFO] [stdout] 26 | fn read_header<'a, 'b>(header: &'a [u8]) -> Result<&'a [u8], ZlibError> { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/zlib.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 55 | if check % 31 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace with: `!check.is_multiple_of(31)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/gzip.rs:29:28 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn inflate_gzip(input: &[u8], display_progress: bool) -> Result { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 29 | pub fn inflate_gzip(input: &[u8], display_progress: bool) -> Result, GzipError> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/tar/header.rs:29:25 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn parse(input: &[u8]) -> IResult<&[u8], TarHeader> { [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 29 | pub fn parse(input: &[u8]) -> IResult<&[u8], TarHeader<'_>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/bit_reader.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | if self.bit_position % 8 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!self.bit_position.is_multiple_of(8)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/bit_reader.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | assert!(self.bit_position % 8 == 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `self.bit_position.is_multiple_of(8)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/deflate/blocks/dynamic_huffman.rs:18:52 [INFO] [stdout] | [INFO] [stdout] 18 | code_length_code_lengths[CODE_LENGTH_ORDER[i as usize] as usize] = len; [INFO] [stdout] | ^^^^^^^^^^ help: try: `i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `literals` [INFO] [stdout] --> src/deflate/blocks/fixed_huffman.rs:8:18 [INFO] [stdout] | [INFO] [stdout] 8 | for i in 0..144 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 8 - for i in 0..144 { [INFO] [stdout] 8 + for in literals.iter_mut().take(144) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `literals` [INFO] [stdout] --> src/deflate/blocks/fixed_huffman.rs:12:18 [INFO] [stdout] | [INFO] [stdout] 12 | for i in 144..256 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 12 - for i in 144..256 { [INFO] [stdout] 12 + for in literals.iter_mut().take(256).skip(144) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `literals` [INFO] [stdout] --> src/deflate/blocks/fixed_huffman.rs:16:18 [INFO] [stdout] | [INFO] [stdout] 16 | for i in 256..280 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 16 - for i in 256..280 { [INFO] [stdout] 16 + for in literals.iter_mut().take(280).skip(256) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `literals` [INFO] [stdout] --> src/deflate/blocks/fixed_huffman.rs:20:18 [INFO] [stdout] | [INFO] [stdout] 20 | for i in 280..288 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 20 - for i in 280..288 { [INFO] [stdout] 20 + for in literals.iter_mut().skip(280) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually filling a slice [INFO] [stdout] --> src/deflate/blocks/fixed_huffman.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | / for i in 0..distances.len() { [INFO] [stdout] 25 | | distances[i] = 5; [INFO] [stdout] 26 | | } [INFO] [stdout] | |_________^ help: try: `distances.fill(5);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_slice_fill [INFO] [stdout] = note: `#[warn(clippy::manual_slice_fill)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `distances` [INFO] [stdout] --> src/deflate/blocks/fixed_huffman.rs:24:18 [INFO] [stdout] | [INFO] [stdout] 24 | for i in 0..distances.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 24 - for i in 0..distances.len() { [INFO] [stdout] 24 + for in &mut distances { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'b [INFO] [stdout] --> src/deflate/blocks/uncompressed.rs:5:30 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn read_uncompressed<'a, 'b>(reader: &'b mut BitReader<'a>) -> Result<&'a [u8], DeflateError> { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 5 - pub fn read_uncompressed<'a, 'b>(reader: &'b mut BitReader<'a>) -> Result<&'a [u8], DeflateError> { [INFO] [stdout] 5 + pub fn read_uncompressed<'a>(reader: &mut BitReader<'a>) -> Result<&'a [u8], DeflateError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/deflate/length_distance.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | if !(257 <= length_byte && length_byte <= 285) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(257..=285).contains(&length_byte)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/deflate/length_distance.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | if !(distance_byte <= 29) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `(distance_byte > 29)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/deflate.rs:58:36 [INFO] [stdout] | [INFO] [stdout] 58 | update_bar(start_time, &bar); [INFO] [stdout] | ^^^^ help: change this to: `bar` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `VMS` contains a capitalized acronym [INFO] [stdout] --> src/gzip/os.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | VMS, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Vms` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `HPFS` contains a capitalized acronym [INFO] [stdout] --> src/gzip/os.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | HPFS, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Hpfs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NTFS` contains a capitalized acronym [INFO] [stdout] --> src/gzip/os.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | NTFS, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Ntfs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `QDOS` contains a capitalized acronym [INFO] [stdout] --> src/gzip/os.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | QDOS, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Qdos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/gzip.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | if input.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!input.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `command` [INFO] [stdout] --> src/main.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | use clap::{command, Parser}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FIFO` contains a capitalized acronym [INFO] [stdout] --> src/tar/header.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | FIFO, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter (notice the capitalization): `Fifo` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/zlib.rs:10:21 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn inflate_zlib<'a, 'b>(rest: &'a [u8], display_progress: bool) -> Result, ZlibError> { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 10 - pub fn inflate_zlib<'a, 'b>(rest: &'a [u8], display_progress: bool) -> Result, ZlibError> { [INFO] [stdout] 10 + pub fn inflate_zlib<'b>(rest: &[u8], display_progress: bool) -> Result, ZlibError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/zlib.rs:10:25 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn inflate_zlib<'a, 'b>(rest: &'a [u8], display_progress: bool) -> Result, ZlibError> { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/zlib.rs:26:16 [INFO] [stdout] | [INFO] [stdout] 26 | fn read_header<'a, 'b>(header: &'a [u8]) -> Result<&'a [u8], ZlibError> { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 26 - fn read_header<'a, 'b>(header: &'a [u8]) -> Result<&'a [u8], ZlibError> { [INFO] [stdout] 26 + fn read_header<'b>(header: &[u8]) -> Result<&[u8], ZlibError> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/zlib.rs:26:20 [INFO] [stdout] | [INFO] [stdout] 26 | fn read_header<'a, 'b>(header: &'a [u8]) -> Result<&'a [u8], ZlibError> { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/zlib.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 55 | if check % 31 != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace with: `!check.is_multiple_of(31)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/gzip.rs:29:28 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn inflate_gzip(input: &[u8], display_progress: bool) -> Result { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 29 | pub fn inflate_gzip(input: &[u8], display_progress: bool) -> Result, GzipError> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/tar/header.rs:29:25 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn parse(input: &[u8]) -> IResult<&[u8], TarHeader> { [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 29 | pub fn parse(input: &[u8]) -> IResult<&[u8], TarHeader<'_>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `command` [INFO] [stdout] --> src/main.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | use clap::{command, Parser}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.70s [INFO] running `Command { std: "docker" "inspect" "4da76b367d94586a2bbd5acf1db366daae4eb167c6bdd087f86603861c62fe54", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4da76b367d94586a2bbd5acf1db366daae4eb167c6bdd087f86603861c62fe54", kill_on_drop: false }` [INFO] [stdout] 4da76b367d94586a2bbd5acf1db366daae4eb167c6bdd087f86603861c62fe54