[INFO] fetching crate omnizip-brotli 0.21.117...
[INFO] testing omnizip-brotli-0.21.117 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate omnizip-brotli 0.21.117 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate omnizip-brotli 0.21.117
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate omnizip-brotli 0.21.117
[INFO] tweaked toml for crates.io crate omnizip-brotli 0.21.117 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate omnizip-brotli 0.21.117 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate omnizip-brotli 0.21.117 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" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] dea4e0898506198217af93ae81864d2209f8244327fba99635c7620504f86420
[INFO] running `Command { std: "docker" "start" "dea4e0898506198217af93ae81864d2209f8244327fba99635c7620504f86420", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dea4e0898506198217af93ae81864d2209f8244327fba99635c7620504f86420", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dea4e0898506198217af93ae81864d2209f8244327fba99635c7620504f86420" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dea4e0898506198217af93ae81864d2209f8244327fba99635c7620504f86420", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dea4e0898506198217af93ae81864d2209f8244327fba99635c7620504f86420" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling omnizip-codecs v0.21.117
[INFO] [stderr]    Compiling omnizip-brotli v0.21.117 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/decoder.rs:734:1
[INFO] [stdout]     |
[INFO] [stdout] 734 | / /// Read a Huffman table from the bitstream (RFC 7932 §9.5).
[INFO] [stdout] 735 | | ///
[INFO] [stdout] 736 | | /// Dispatches on the 2-bit HSKIP prefix:
[INFO] [stdout] 737 | | /// - HSKIP = 1 → simple form (NSYM = 1/2/3/4 with optional tree select)
[INFO] [stdout] ...   |
[INFO] [stdout] 742 | | /// (e.g. 256 for literals, 704 for commands, 64 for distances).
[INFO] [stdout] 743 | | /// `max_bits` caps the code-length code's symbol bit width.
[INFO] [stdout]     | |_-----------------------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/decoder_full.rs:552:1
[INFO] [stdout]     |
[INFO] [stdout] 552 | / /// Decode a Huffman-coded metablock using the full RFC 7932 grammar
[INFO] [stdout] 553 | | /// (block-type machinery, context maps, multi-tree groups, context
[INFO] [stdout] 554 | | /// modes, static dictionary).
[INFO] [stdout] 555 | | ///
[INFO] [stdout] ...   |
[INFO] [stdout] 559 | | ///
[INFO] [stdout] 560 | | /// Returns `(new_bit_pos, output_bytes)`.
[INFO] [stdout]     | |_-----------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]    --> src/decoder_full.rs:561:1
[INFO] [stdout]     |
[INFO] [stdout] 561 | #[allow(clippy::too_many_lines)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `thread_local`
[INFO] [stdout]    --> src/decoder_full.rs:562:1
[INFO] [stdout]     |
[INFO] [stdout] 562 | thread_local! {
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/encoder/emission.rs:263:1
[INFO] [stdout]     |
[INFO] [stdout] 263 | / /// Emission stage shared by the real encoder and parse-candidate
[INFO] [stdout] 264 | | /// scoring: everything from the parsed command list to the last
[INFO] [stdout]     | |_---------------------------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/from_spec_encoder.rs:3052:1
[INFO] [stdout]      |
[INFO] [stdout] 3052 | / /// Iterated Zopfli parse. Pass 1 uses default cost models; each
[INFO] [stdout] 3053 | | /// subsequent pass refines the literal/command costs and the
[INFO] [stdout] 3054 | | /// distance-code cost model from the previous pass's actual
[INFO] [stdout] 3055 | | /// distribution, and keeps whichever parse scores best. Iterates until
[INFO] [stdout] ...    |
[INFO] [stdout] 3059 | | /// Header bits for ISLAST and MLEN are constant across candidates, so
[INFO] [stdout] 3060 | | /// the comparison is unaffected by the is_last/ctx_in approximations.
[INFO] [stdout]      | |_---------------------------------------------------------------------^
[INFO] [stdout]      |   |
[INFO] [stdout]      |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]      |
[INFO] [stdout]      = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]     --> src/from_spec_encoder.rs:3061:1
[INFO] [stdout]      |
[INFO] [stdout] 3061 | #[allow(clippy::type_complexity)]
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `thread_local`
[INFO] [stdout]     --> src/from_spec_encoder.rs:3062:1
[INFO] [stdout]      |
[INFO] [stdout] 3062 | thread_local! {
[INFO] [stdout]      | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `must_use` attribute cannot be used on macro defs
[INFO] [stdout]    --> src/from_spec_encoder.rs:461:3
[INFO] [stdout]     |
[INFO] [stdout] 461 | #[must_use]
[INFO] [stdout]     |   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the `must_use` attribute can be applied to data types, functions, and traits
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd_pos`
[INFO] [stdout]     --> src/decoder_full.rs:1173:21
[INFO] [stdout]      |
[INFO] [stdout] 1173 |                 let cmd_pos = pos;
[INFO] [stdout]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cmd_pos`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data_size`
[INFO] [stdout]    --> src/encoder/block_splitter.rs:230:9
[INFO] [stdout]     |
[INFO] [stdout] 230 |     let data_size = a.data.len();
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data_size`
[INFO] [stdout]    --> src/encoder/block_splitter.rs:550:9
[INFO] [stdout]     |
[INFO] [stdout] 550 |     let data_size = input.first().map_or(256, |h| h.data.len());
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbols_size`
[INFO] [stdout]    --> src/encoder/block_splitter.rs:864:5
[INFO] [stdout]     |
[INFO] [stdout] 864 |     symbols_size: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbols_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/encoder/emission.rs:665:9
[INFO] [stdout]     |
[INFO] [stdout] 665 |     let mut lit_block_type: usize = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/encoder/emission.rs:1278:13
[INFO] [stdout]      |
[INFO] [stdout] 1278 |         let mut hists: Vec<crate::encoder::block_splitter::Hist> = dist_bc_hists
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/encoder/emission.rs:1506:17
[INFO] [stdout]      |
[INFO] [stdout] 1506 |             let mut di = stream.dist_symbols.iter();
[INFO] [stdout]      |                 ----^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/encoder/emission.rs:501:14
[INFO] [stdout]     |
[INFO] [stdout] 501 |         for (i, (len, &ty)) in split.lengths.iter().zip(split.types.iter()).enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lit_block_type`
[INFO] [stdout]    --> src/encoder/emission.rs:665:9
[INFO] [stdout]     |
[INFO] [stdout] 665 |     let mut lit_block_type: usize = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lit_block_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `dist_sym_idx` is assigned to, but never used
[INFO] [stdout]     --> src/encoder/emission.rs:1671:9
[INFO] [stdout]      |
[INFO] [stdout] 1671 |     let mut dist_sym_idx = 0usize;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_dist_sym_idx` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ntrees_d_out` is never read
[INFO] [stdout]     --> src/encoder/emission.rs:1335:9
[INFO] [stdout]      |
[INFO] [stdout] 1335 |         ntrees_d_out = shared_k as u32;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1359 |         ntrees_d_out = next as u32;
[INFO] [stdout]      |         -------------------------- `ntrees_d_out` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `dist_sym_idx` is never read
[INFO] [stdout]     --> src/encoder/emission.rs:1860:21
[INFO] [stdout]      |
[INFO] [stdout] 1860 |                     dist_sym_idx += 1;
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gap`
[INFO] [stdout]    --> src/encoder/zopfli_hq.rs:795:76
[INFO] [stdout]     |
[INFO] [stdout] 795 | fn compute_distance_cache(pos: usize, starting: &[i32; 4], nodes: &[Node], gap: usize) -> [i32; 4] {
[INFO] [stdout]     |                                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_gap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `len` is never read
[INFO] [stdout]    --> src/encoder/zopfli_hq.rs:867:27
[INFO] [stdout]     |
[INFO] [stdout] 867 |             let mut len = 0usize;
[INFO] [stdout]     |                           ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 882 |             len = l;
[INFO] [stdout]     |             ------- `len` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `prev_was_implicit` is assigned to, but never used
[INFO] [stdout]    --> src/from_spec_encoder.rs:904:9
[INFO] [stdout]     |
[INFO] [stdout] 904 |     let mut prev_was_implicit = false;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_prev_was_implicit` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `prev_was_implicit` is never read
[INFO] [stdout]     --> src/from_spec_encoder.rs:1028:9
[INFO] [stdout]      |
[INFO] [stdout] 1028 |         prev_was_implicit = this_was_implicit;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]     --> src/from_spec_encoder.rs:3368:9
[INFO] [stdout]      |
[INFO] [stdout] 3368 |     let config = omnizip_codecs::HashChainConfig {
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cmd_count` is assigned to, but never used
[INFO] [stdout]     --> src/from_spec_encoder.rs:4356:9
[INFO] [stdout]      |
[INFO] [stdout] 4356 |     let mut cmd_count = 0u64;
[INFO] [stdout]      |         ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_cmd_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cmd_count` is never read
[INFO] [stdout]     --> src/from_spec_encoder.rs:4367:13
[INFO] [stdout]      |
[INFO] [stdout] 4367 |             cmd_count += 1;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `literal_count` is assigned to, but never used
[INFO] [stdout]     --> src/from_spec_encoder.rs:4510:9
[INFO] [stdout]      |
[INFO] [stdout] 4510 |     let mut literal_count = 0u64;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_literal_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `literal_count` is never read
[INFO] [stdout]     --> src/from_spec_encoder.rs:4529:13
[INFO] [stdout]      |
[INFO] [stdout] 4529 |             literal_count += 1;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/from_spec_encoder.rs:5281:42
[INFO] [stdout]      |
[INFO] [stdout] 5281 |         let (bt, mut bt_bits, mut bt_bw, mut bt_split) = if run_bt {
[INFO] [stdout]      |                                          ----^^^^^^^^
[INFO] [stdout]      |                                          |
[INFO] [stdout]      |                                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `win_bits` is never read
[INFO] [stdout]     --> src/from_spec_encoder.rs:5513:17
[INFO] [stdout]      |
[INFO] [stdout] 5513 |                 win_bits = c_bits;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/from_spec_encoder.rs:6369:9
[INFO] [stdout]      |
[INFO] [stdout] 6369 |     let mut finish = |i: usize,
[INFO] [stdout]      |         ----^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sub_bits` is never read
[INFO] [stdout]    --> src/decoder.rs:529:5
[INFO] [stdout]     |
[INFO] [stdout] 519 | pub struct HuffmanTable {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 529 |     sub_bits: u32,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HuffmanTable` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `huffman_cost_estimate` is never used
[INFO] [stdout]    --> src/encoder/distance_config.rs:209:4
[INFO] [stdout]     |
[INFO] [stdout] 209 | fn huffman_cost_estimate(syms: &[u32], alphabet: usize) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `huff_cost` is never used
[INFO] [stdout]     --> src/from_spec_encoder.rs:6237:4
[INFO] [stdout]      |
[INFO] [stdout] 6237 | fn huff_cost(freq: &[u32; 704]) -> f64 {
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_cmd_symbols` is never used
[INFO] [stdout]     --> src/from_spec_encoder.rs:6740:4
[INFO] [stdout]      |
[INFO] [stdout] 6740 | fn split_cmd_symbols(cmd_symbols: &[usize], max_blocks: usize) -> Vec<usize> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_block_type_trees` is never used
[INFO] [stdout]     --> src/from_spec_encoder.rs:6837:15
[INFO] [stdout]      |
[INFO] [stdout] 6837 | pub(crate) fn write_block_type_trees(bw: &mut BitWriter, _nbltypes: u32) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `WINDOW` should have a snake case name
[INFO] [stdout]     --> src/from_spec_encoder.rs:6753:9
[INFO] [stdout]      |
[INFO] [stdout] 6753 |     let WINDOW: usize = window;
[INFO] [stdout]      |         ^^^^^^ help: convert the identifier to snake case: `window`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SWITCH_COST` should have a snake case name
[INFO] [stdout]     --> src/from_spec_encoder.rs:6754:9
[INFO] [stdout]      |
[INFO] [stdout] 6754 |     let SWITCH_COST: f64 = switch_cost;
[INFO] [stdout]      |         ^^^^^^^^^^^ help: convert the identifier to snake case: `switch_cost`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 19.89s
[INFO] running `Command { std: "docker" "inspect" "dea4e0898506198217af93ae81864d2209f8244327fba99635c7620504f86420", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dea4e0898506198217af93ae81864d2209f8244327fba99635c7620504f86420" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling omnizip-brotli v0.21.117 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/decoder.rs:734:1
[INFO] [stdout]     |
[INFO] [stdout] 734 | / /// Read a Huffman table from the bitstream (RFC 7932 §9.5).
[INFO] [stdout] 735 | | ///
[INFO] [stdout] 736 | | /// Dispatches on the 2-bit HSKIP prefix:
[INFO] [stdout] 737 | | /// - HSKIP = 1 → simple form (NSYM = 1/2/3/4 with optional tree select)
[INFO] [stdout] ...   |
[INFO] [stdout] 742 | | /// (e.g. 256 for literals, 704 for commands, 64 for distances).
[INFO] [stdout] 743 | | /// `max_bits` caps the code-length code's symbol bit width.
[INFO] [stdout]     | |_-----------------------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/decoder_full.rs:552:1
[INFO] [stdout]     |
[INFO] [stdout] 552 | / /// Decode a Huffman-coded metablock using the full RFC 7932 grammar
[INFO] [stdout] 553 | | /// (block-type machinery, context maps, multi-tree groups, context
[INFO] [stdout] 554 | | /// modes, static dictionary).
[INFO] [stdout] 555 | | ///
[INFO] [stdout] ...   |
[INFO] [stdout] 559 | | ///
[INFO] [stdout] 560 | | /// Returns `(new_bit_pos, output_bytes)`.
[INFO] [stdout]     | |_-----------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]    --> src/decoder_full.rs:561:1
[INFO] [stdout]     |
[INFO] [stdout] 561 | #[allow(clippy::too_many_lines)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `thread_local`
[INFO] [stdout]    --> src/decoder_full.rs:562:1
[INFO] [stdout]     |
[INFO] [stdout] 562 | thread_local! {
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/encoder/emission.rs:263:1
[INFO] [stdout]     |
[INFO] [stdout] 263 | / /// Emission stage shared by the real encoder and parse-candidate
[INFO] [stdout] 264 | | /// scoring: everything from the parsed command list to the last
[INFO] [stdout]     | |_---------------------------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/from_spec_encoder.rs:3052:1
[INFO] [stdout]      |
[INFO] [stdout] 3052 | / /// Iterated Zopfli parse. Pass 1 uses default cost models; each
[INFO] [stdout] 3053 | | /// subsequent pass refines the literal/command costs and the
[INFO] [stdout] 3054 | | /// distance-code cost model from the previous pass's actual
[INFO] [stdout] 3055 | | /// distribution, and keeps whichever parse scores best. Iterates until
[INFO] [stdout] ...    |
[INFO] [stdout] 3059 | | /// Header bits for ISLAST and MLEN are constant across candidates, so
[INFO] [stdout] 3060 | | /// the comparison is unaffected by the is_last/ctx_in approximations.
[INFO] [stdout]      | |_---------------------------------------------------------------------^
[INFO] [stdout]      |   |
[INFO] [stdout]      |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]      |
[INFO] [stdout]      = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]     --> src/from_spec_encoder.rs:3061:1
[INFO] [stdout]      |
[INFO] [stdout] 3061 | #[allow(clippy::type_complexity)]
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `thread_local`
[INFO] [stdout]     --> src/from_spec_encoder.rs:3062:1
[INFO] [stdout]      |
[INFO] [stdout] 3062 | thread_local! {
[INFO] [stdout]      | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `must_use` attribute cannot be used on macro defs
[INFO] [stdout]    --> src/from_spec_encoder.rs:461:3
[INFO] [stdout]     |
[INFO] [stdout] 461 | #[must_use]
[INFO] [stdout]     |   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the `must_use` attribute can be applied to data types, functions, and traits
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd_pos`
[INFO] [stdout]     --> src/decoder_full.rs:1173:21
[INFO] [stdout]      |
[INFO] [stdout] 1173 |                 let cmd_pos = pos;
[INFO] [stdout]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cmd_pos`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data_size`
[INFO] [stdout]    --> src/encoder/block_splitter.rs:230:9
[INFO] [stdout]     |
[INFO] [stdout] 230 |     let data_size = a.data.len();
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data_size`
[INFO] [stdout]    --> src/encoder/block_splitter.rs:550:9
[INFO] [stdout]     |
[INFO] [stdout] 550 |     let data_size = input.first().map_or(256, |h| h.data.len());
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbols_size`
[INFO] [stdout]    --> src/encoder/block_splitter.rs:864:5
[INFO] [stdout]     |
[INFO] [stdout] 864 |     symbols_size: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbols_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/encoder/emission.rs:665:9
[INFO] [stdout]     |
[INFO] [stdout] 665 |     let mut lit_block_type: usize = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/encoder/emission.rs:1278:13
[INFO] [stdout]      |
[INFO] [stdout] 1278 |         let mut hists: Vec<crate::encoder::block_splitter::Hist> = dist_bc_hists
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/encoder/emission.rs:1506:17
[INFO] [stdout]      |
[INFO] [stdout] 1506 |             let mut di = stream.dist_symbols.iter();
[INFO] [stdout]      |                 ----^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/encoder/emission.rs:501:14
[INFO] [stdout]     |
[INFO] [stdout] 501 |         for (i, (len, &ty)) in split.lengths.iter().zip(split.types.iter()).enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lit_block_type`
[INFO] [stdout]    --> src/encoder/emission.rs:665:9
[INFO] [stdout]     |
[INFO] [stdout] 665 |     let mut lit_block_type: usize = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lit_block_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `dist_sym_idx` is assigned to, but never used
[INFO] [stdout]     --> src/encoder/emission.rs:1671:9
[INFO] [stdout]      |
[INFO] [stdout] 1671 |     let mut dist_sym_idx = 0usize;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_dist_sym_idx` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ntrees_d_out` is never read
[INFO] [stdout]     --> src/encoder/emission.rs:1335:9
[INFO] [stdout]      |
[INFO] [stdout] 1335 |         ntrees_d_out = shared_k as u32;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1359 |         ntrees_d_out = next as u32;
[INFO] [stdout]      |         -------------------------- `ntrees_d_out` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `dist_sym_idx` is never read
[INFO] [stdout]     --> src/encoder/emission.rs:1860:21
[INFO] [stdout]      |
[INFO] [stdout] 1860 |                     dist_sym_idx += 1;
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gap`
[INFO] [stdout]    --> src/encoder/zopfli_hq.rs:795:76
[INFO] [stdout]     |
[INFO] [stdout] 795 | fn compute_distance_cache(pos: usize, starting: &[i32; 4], nodes: &[Node], gap: usize) -> [i32; 4] {
[INFO] [stdout]     |                                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_gap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `len` is never read
[INFO] [stdout]    --> src/encoder/zopfli_hq.rs:867:27
[INFO] [stdout]     |
[INFO] [stdout] 867 |             let mut len = 0usize;
[INFO] [stdout]     |                           ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 882 |             len = l;
[INFO] [stdout]     |             ------- `len` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `prev_was_implicit` is assigned to, but never used
[INFO] [stdout]    --> src/from_spec_encoder.rs:904:9
[INFO] [stdout]     |
[INFO] [stdout] 904 |     let mut prev_was_implicit = false;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_prev_was_implicit` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `prev_was_implicit` is never read
[INFO] [stdout]     --> src/from_spec_encoder.rs:1028:9
[INFO] [stdout]      |
[INFO] [stdout] 1028 |         prev_was_implicit = this_was_implicit;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]     --> src/from_spec_encoder.rs:3368:9
[INFO] [stdout]      |
[INFO] [stdout] 3368 |     let config = omnizip_codecs::HashChainConfig {
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cmd_count` is assigned to, but never used
[INFO] [stdout]     --> src/from_spec_encoder.rs:4356:9
[INFO] [stdout]      |
[INFO] [stdout] 4356 |     let mut cmd_count = 0u64;
[INFO] [stdout]      |         ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_cmd_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cmd_count` is never read
[INFO] [stdout]     --> src/from_spec_encoder.rs:4367:13
[INFO] [stdout]      |
[INFO] [stdout] 4367 |             cmd_count += 1;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `literal_count` is assigned to, but never used
[INFO] [stdout]     --> src/from_spec_encoder.rs:4510:9
[INFO] [stdout]      |
[INFO] [stdout] 4510 |     let mut literal_count = 0u64;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_literal_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `literal_count` is never read
[INFO] [stdout]     --> src/from_spec_encoder.rs:4529:13
[INFO] [stdout]      |
[INFO] [stdout] 4529 |             literal_count += 1;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/from_spec_encoder.rs:5281:42
[INFO] [stdout]      |
[INFO] [stdout] 5281 |         let (bt, mut bt_bits, mut bt_bw, mut bt_split) = if run_bt {
[INFO] [stdout]      |                                          ----^^^^^^^^
[INFO] [stdout]      |                                          |
[INFO] [stdout]      |                                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `win_bits` is never read
[INFO] [stdout]     --> src/from_spec_encoder.rs:5513:17
[INFO] [stdout]      |
[INFO] [stdout] 5513 |                 win_bits = c_bits;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/from_spec_encoder.rs:6369:9
[INFO] [stdout]      |
[INFO] [stdout] 6369 |     let mut finish = |i: usize,
[INFO] [stdout]      |         ----^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sub_bits` is never read
[INFO] [stdout]    --> src/decoder.rs:529:5
[INFO] [stdout]     |
[INFO] [stdout] 519 | pub struct HuffmanTable {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 529 |     sub_bits: u32,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HuffmanTable` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `huffman_cost_estimate` is never used
[INFO] [stdout]    --> src/encoder/distance_config.rs:209:4
[INFO] [stdout]     |
[INFO] [stdout] 209 | fn huffman_cost_estimate(syms: &[u32], alphabet: usize) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `huff_cost` is never used
[INFO] [stdout]     --> src/from_spec_encoder.rs:6237:4
[INFO] [stdout]      |
[INFO] [stdout] 6237 | fn huff_cost(freq: &[u32; 704]) -> f64 {
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_cmd_symbols` is never used
[INFO] [stdout]     --> src/from_spec_encoder.rs:6740:4
[INFO] [stdout]      |
[INFO] [stdout] 6740 | fn split_cmd_symbols(cmd_symbols: &[usize], max_blocks: usize) -> Vec<usize> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_block_type_trees` is never used
[INFO] [stdout]     --> src/from_spec_encoder.rs:6837:15
[INFO] [stdout]      |
[INFO] [stdout] 6837 | pub(crate) fn write_block_type_trees(bw: &mut BitWriter, _nbltypes: u32) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `WINDOW` should have a snake case name
[INFO] [stdout]     --> src/from_spec_encoder.rs:6753:9
[INFO] [stdout]      |
[INFO] [stdout] 6753 |     let WINDOW: usize = window;
[INFO] [stdout]      |         ^^^^^^ help: convert the identifier to snake case: `window`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SWITCH_COST` should have a snake case name
[INFO] [stdout]     --> src/from_spec_encoder.rs:6754:9
[INFO] [stdout]      |
[INFO] [stdout] 6754 |     let SWITCH_COST: f64 = switch_cost;
[INFO] [stdout]      |         ^^^^^^^^^^^ help: convert the identifier to snake case: `switch_cost`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cuts`
[INFO] [stdout]   --> examples/splitter_check.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let cuts: Vec<usize> = (0..=m).map(|i| i * step).collect();
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_cuts`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `out_len` is never read
[INFO] [stdout]   --> examples/decode_prof.rs:13:23
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut out_len = 0usize;
[INFO] [stdout]    |                       ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 34 |     out_len = warm.len();
[INFO] [stdout]    |     -------------------- `out_len` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> examples/bench_vs_ref.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/decoder.rs:734:1
[INFO] [stdout]     |
[INFO] [stdout] 734 | / /// Read a Huffman table from the bitstream (RFC 7932 §9.5).
[INFO] [stdout] 735 | | ///
[INFO] [stdout] 736 | | /// Dispatches on the 2-bit HSKIP prefix:
[INFO] [stdout] 737 | | /// - HSKIP = 1 → simple form (NSYM = 1/2/3/4 with optional tree select)
[INFO] [stdout] ...   |
[INFO] [stdout] 742 | | /// (e.g. 256 for literals, 704 for commands, 64 for distances).
[INFO] [stdout] 743 | | /// `max_bits` caps the code-length code's symbol bit width.
[INFO] [stdout]     | |_-----------------------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/decoder_full.rs:552:1
[INFO] [stdout]     |
[INFO] [stdout] 552 | / /// Decode a Huffman-coded metablock using the full RFC 7932 grammar
[INFO] [stdout] 553 | | /// (block-type machinery, context maps, multi-tree groups, context
[INFO] [stdout] 554 | | /// modes, static dictionary).
[INFO] [stdout] 555 | | ///
[INFO] [stdout] ...   |
[INFO] [stdout] 559 | | ///
[INFO] [stdout] 560 | | /// Returns `(new_bit_pos, output_bytes)`.
[INFO] [stdout]     | |_-----------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]    --> src/decoder_full.rs:561:1
[INFO] [stdout]     |
[INFO] [stdout] 561 | #[allow(clippy::too_many_lines)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `thread_local`
[INFO] [stdout]    --> src/decoder_full.rs:562:1
[INFO] [stdout]     |
[INFO] [stdout] 562 | thread_local! {
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/encoder/emission.rs:263:1
[INFO] [stdout]     |
[INFO] [stdout] 263 | / /// Emission stage shared by the real encoder and parse-candidate
[INFO] [stdout] 264 | | /// scoring: everything from the parsed command list to the last
[INFO] [stdout]     | |_---------------------------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::from_spec_encoder::empty_frame_terminator_into`
[INFO] [stdout]   --> src/encoder/emission.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::from_spec_encoder::empty_frame_terminator_into;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]     --> src/from_spec_encoder.rs:3052:1
[INFO] [stdout]      |
[INFO] [stdout] 3052 | / /// Iterated Zopfli parse. Pass 1 uses default cost models; each
[INFO] [stdout] 3053 | | /// subsequent pass refines the literal/command costs and the
[INFO] [stdout] 3054 | | /// distance-code cost model from the previous pass's actual
[INFO] [stdout] 3055 | | /// distribution, and keeps whichever parse scores best. Iterates until
[INFO] [stdout] ...    |
[INFO] [stdout] 3059 | | /// Header bits for ISLAST and MLEN are constant across candidates, so
[INFO] [stdout] 3060 | | /// the comparison is unaffected by the is_last/ctx_in approximations.
[INFO] [stdout]      | |_---------------------------------------------------------------------^
[INFO] [stdout]      |   |
[INFO] [stdout]      |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]      |
[INFO] [stdout]      = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `allow`
[INFO] [stdout]     --> src/from_spec_encoder.rs:3061:1
[INFO] [stdout]      |
[INFO] [stdout] 3061 | #[allow(clippy::type_complexity)]
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `thread_local`
[INFO] [stdout]     --> src/from_spec_encoder.rs:3062:1
[INFO] [stdout]      |
[INFO] [stdout] 3062 | thread_local! {
[INFO] [stdout]      | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `must_use` attribute cannot be used on macro defs
[INFO] [stdout]    --> src/from_spec_encoder.rs:461:3
[INFO] [stdout]     |
[INFO] [stdout] 461 | #[must_use]
[INFO] [stdout]     |   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the `must_use` attribute can be applied to data types, functions, and traits
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd_pos`
[INFO] [stdout]     --> src/decoder_full.rs:1173:21
[INFO] [stdout]      |
[INFO] [stdout] 1173 |                 let cmd_pos = pos;
[INFO] [stdout]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cmd_pos`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data_size`
[INFO] [stdout]    --> src/encoder/block_splitter.rs:230:9
[INFO] [stdout]     |
[INFO] [stdout] 230 |     let data_size = a.data.len();
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data_size`
[INFO] [stdout]    --> src/encoder/block_splitter.rs:550:9
[INFO] [stdout]     |
[INFO] [stdout] 550 |     let data_size = input.first().map_or(256, |h| h.data.len());
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbols_size`
[INFO] [stdout]    --> src/encoder/block_splitter.rs:864:5
[INFO] [stdout]     |
[INFO] [stdout] 864 |     symbols_size: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbols_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]    --> src/encoder/dict_hash.rs:225:13
[INFO] [stdout]     |
[INFO] [stdout] 225 |         let table = get_table();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/encoder/emission.rs:665:9
[INFO] [stdout]     |
[INFO] [stdout] 665 |     let mut lit_block_type: usize = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/encoder/emission.rs:1278:13
[INFO] [stdout]      |
[INFO] [stdout] 1278 |         let mut hists: Vec<crate::encoder::block_splitter::Hist> = dist_bc_hists
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/encoder/emission.rs:1506:17
[INFO] [stdout]      |
[INFO] [stdout] 1506 |             let mut di = stream.dist_symbols.iter();
[INFO] [stdout]      |                 ----^^
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/encoder/emission.rs:501:14
[INFO] [stdout]     |
[INFO] [stdout] 501 |         for (i, (len, &ty)) in split.lengths.iter().zip(split.types.iter()).enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lit_block_type`
[INFO] [stdout]    --> src/encoder/emission.rs:665:9
[INFO] [stdout]     |
[INFO] [stdout] 665 |     let mut lit_block_type: usize = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lit_block_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `dist_sym_idx` is assigned to, but never used
[INFO] [stdout]     --> src/encoder/emission.rs:1671:9
[INFO] [stdout]      |
[INFO] [stdout] 1671 |     let mut dist_sym_idx = 0usize;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_dist_sym_idx` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ntrees_d_out` is never read
[INFO] [stdout]     --> src/encoder/emission.rs:1335:9
[INFO] [stdout]      |
[INFO] [stdout] 1335 |         ntrees_d_out = shared_k as u32;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1359 |         ntrees_d_out = next as u32;
[INFO] [stdout]      |         -------------------------- `ntrees_d_out` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `dist_sym_idx` is never read
[INFO] [stdout]     --> src/encoder/emission.rs:1860:21
[INFO] [stdout]      |
[INFO] [stdout] 1860 |                     dist_sym_idx += 1;
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gap`
[INFO] [stdout]    --> src/encoder/zopfli_hq.rs:795:76
[INFO] [stdout]     |
[INFO] [stdout] 795 | fn compute_distance_cache(pos: usize, starting: &[i32; 4], nodes: &[Node], gap: usize) -> [i32; 4] {
[INFO] [stdout]     |                                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_gap`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `len` is never read
[INFO] [stdout]    --> src/encoder/zopfli_hq.rs:867:27
[INFO] [stdout]     |
[INFO] [stdout] 867 |             let mut len = 0usize;
[INFO] [stdout]     |                           ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 882 |             len = l;
[INFO] [stdout]     |             ------- `len` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out`
[INFO] [stdout]     --> src/encoder/zopfli_hq.rs:1365:13
[INFO] [stdout]      |
[INFO] [stdout] 1365 |         let out = crate::from_spec_encoder::compress_with_quality(&zeros, 11);
[INFO] [stdout]      |             ^^^ help: if this is intentional, prefix it with an underscore: `_out`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `prev_was_implicit` is assigned to, but never used
[INFO] [stdout]    --> src/from_spec_encoder.rs:904:9
[INFO] [stdout]     |
[INFO] [stdout] 904 |     let mut prev_was_implicit = false;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_prev_was_implicit` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `prev_was_implicit` is never read
[INFO] [stdout]     --> src/from_spec_encoder.rs:1028:9
[INFO] [stdout]      |
[INFO] [stdout] 1028 |         prev_was_implicit = this_was_implicit;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]     --> src/from_spec_encoder.rs:3368:9
[INFO] [stdout]      |
[INFO] [stdout] 3368 |     let config = omnizip_codecs::HashChainConfig {
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cmd_count` is assigned to, but never used
[INFO] [stdout]     --> src/from_spec_encoder.rs:4356:9
[INFO] [stdout]      |
[INFO] [stdout] 4356 |     let mut cmd_count = 0u64;
[INFO] [stdout]      |         ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_cmd_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cmd_count` is never read
[INFO] [stdout]     --> src/from_spec_encoder.rs:4367:13
[INFO] [stdout]      |
[INFO] [stdout] 4367 |             cmd_count += 1;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `literal_count` is assigned to, but never used
[INFO] [stdout]     --> src/from_spec_encoder.rs:4510:9
[INFO] [stdout]      |
[INFO] [stdout] 4510 |     let mut literal_count = 0u64;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: consider using `_literal_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `literal_count` is never read
[INFO] [stdout]     --> src/from_spec_encoder.rs:4529:13
[INFO] [stdout]      |
[INFO] [stdout] 4529 |             literal_count += 1;
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/from_spec_encoder.rs:5281:42
[INFO] [stdout]      |
[INFO] [stdout] 5281 |         let (bt, mut bt_bits, mut bt_bw, mut bt_split) = if run_bt {
[INFO] [stdout]      |                                          ----^^^^^^^^
[INFO] [stdout]      |                                          |
[INFO] [stdout]      |                                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `win_bits` is never read
[INFO] [stdout]     --> src/from_spec_encoder.rs:5513:17
[INFO] [stdout]      |
[INFO] [stdout] 5513 |                 win_bits = c_bits;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/from_spec_encoder.rs:6369:9
[INFO] [stdout]      |
[INFO] [stdout] 6369 |     let mut finish = |i: usize,
[INFO] [stdout]      |         ----^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lo`
[INFO] [stdout]     --> src/from_spec_encoder.rs:7363:17
[INFO] [stdout]      |
[INFO] [stdout] 7363 |             let lo = compress_with_quality(input, 0);
[INFO] [stdout]      |                 ^^ help: if this is intentional, prefix it with an underscore: `_lo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sub_bits` is never read
[INFO] [stdout]    --> src/decoder.rs:529:5
[INFO] [stdout]     |
[INFO] [stdout] 519 | pub struct HuffmanTable {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 529 |     sub_bits: u32,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HuffmanTable` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `huffman_cost_estimate` is never used
[INFO] [stdout]    --> src/encoder/distance_config.rs:209:4
[INFO] [stdout]     |
[INFO] [stdout] 209 | fn huffman_cost_estimate(syms: &[u32], alphabet: usize) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `huff_cost` is never used
[INFO] [stdout]     --> src/from_spec_encoder.rs:6237:4
[INFO] [stdout]      |
[INFO] [stdout] 6237 | fn huff_cost(freq: &[u32; 704]) -> f64 {
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_cmd_symbols` is never used
[INFO] [stdout]     --> src/from_spec_encoder.rs:6740:4
[INFO] [stdout]      |
[INFO] [stdout] 6740 | fn split_cmd_symbols(cmd_symbols: &[usize], max_blocks: usize) -> Vec<usize> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_block_type_trees` is never used
[INFO] [stdout]     --> src/from_spec_encoder.rs:6837:15
[INFO] [stdout]      |
[INFO] [stdout] 6837 | pub(crate) fn write_block_type_trees(bw: &mut BitWriter, _nbltypes: u32) {
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `WINDOW` should have a snake case name
[INFO] [stdout]     --> src/from_spec_encoder.rs:6753:9
[INFO] [stdout]      |
[INFO] [stdout] 6753 |     let WINDOW: usize = window;
[INFO] [stdout]      |         ^^^^^^ help: convert the identifier to snake case: `window`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `SWITCH_COST` should have a snake case name
[INFO] [stdout]     --> src/from_spec_encoder.rs:6754:9
[INFO] [stdout]      |
[INFO] [stdout] 6754 |     let SWITCH_COST: f64 = switch_cost;
[INFO] [stdout]      |         ^^^^^^^^^^^ help: convert the identifier to snake case: `switch_cost`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 22.34s
[INFO] running `Command { std: "docker" "inspect" "dea4e0898506198217af93ae81864d2209f8244327fba99635c7620504f86420", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dea4e0898506198217af93ae81864d2209f8244327fba99635c7620504f86420" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/decoder.rs:734:1
[INFO] [stderr]     |
[INFO] [stderr] 734 | / /// Read a Huffman table from the bitstream (RFC 7932 §9.5).
[INFO] [stderr] 735 | | ///
[INFO] [stderr] 736 | | /// Dispatches on the 2-bit HSKIP prefix:
[INFO] [stderr] 737 | | /// - HSKIP = 1 → simple form (NSYM = 1/2/3/4 with optional tree select)
[INFO] [stderr] ...   |
[INFO] [stderr] 742 | | /// (e.g. 256 for literals, 704 for commands, 64 for distances).
[INFO] [stderr] 743 | | /// `max_bits` caps the code-length code's symbol bit width.
[INFO] [stderr]     | |_-----------------------------------------------------------^
[INFO] [stderr]     |   |
[INFO] [stderr]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stderr]     |
[INFO] [stderr]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/decoder_full.rs:552:1
[INFO] [stderr]     |
[INFO] [stderr] 552 | / /// Decode a Huffman-coded metablock using the full RFC 7932 grammar
[INFO] [stderr] 553 | | /// (block-type machinery, context maps, multi-tree groups, context
[INFO] [stderr] 554 | | /// modes, static dictionary).
[INFO] [stderr] 555 | | ///
[INFO] [stderr] ...   |
[INFO] [stderr] 559 | | ///
[INFO] [stderr] 560 | | /// Returns `(new_bit_pos, output_bytes)`.
[INFO] [stderr]     | |_-----------------------------------------^
[INFO] [stderr]     |   |
[INFO] [stderr]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stderr]     |
[INFO] [stderr]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr] 
[INFO] [stderr] warning: unused attribute `allow`
[INFO] [stderr]    --> src/decoder_full.rs:561:1
[INFO] [stderr]     |
[INFO] [stderr] 561 | #[allow(clippy::too_many_lines)]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `thread_local`
[INFO] [stderr]    --> src/decoder_full.rs:562:1
[INFO] [stderr]     |
[INFO] [stderr] 562 | thread_local! {
[INFO] [stderr]     | ^^^^^^^^^^^^
[INFO] [stderr]     = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/encoder/emission.rs:263:1
[INFO] [stderr]     |
[INFO] [stderr] 263 | / /// Emission stage shared by the real encoder and parse-candidate
[INFO] [stderr] 264 | | /// scoring: everything from the parsed command list to the last
[INFO] [stderr]     | |_---------------------------------------------------------------^
[INFO] [stderr]     |   |
[INFO] [stderr]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stderr]     |
[INFO] [stderr]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]     --> src/from_spec_encoder.rs:3052:1
[INFO] [stderr]      |
[INFO] [stderr] 3052 | / /// Iterated Zopfli parse. Pass 1 uses default cost models; each
[INFO] [stderr] 3053 | | /// subsequent pass refines the literal/command costs and the
[INFO] [stderr] 3054 | | /// distance-code cost model from the previous pass's actual
[INFO] [stderr] 3055 | | /// distribution, and keeps whichever parse scores best. Iterates until
[INFO] [stderr] ...    |
[INFO] [stderr] 3059 | | /// Header bits for ISLAST and MLEN are constant across candidates, so
[INFO] [stderr] 3060 | | /// the comparison is unaffected by the is_last/ctx_in approximations.
[INFO] [stderr]      | |_---------------------------------------------------------------------^
[INFO] [stderr]      |   |
[INFO] [stderr]      |   rustdoc does not generate documentation for macro invocations
[INFO] [stderr]      |
[INFO] [stderr]      = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr] 
[INFO] [stderr] warning: unused attribute `allow`
[INFO] [stderr]     --> src/from_spec_encoder.rs:3061:1
[INFO] [stderr]      |
[INFO] [stderr] 3061 | #[allow(clippy::type_complexity)]
[INFO] [stderr]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr] note: the built-in attribute `allow` will be ignored, since it's applied to the macro invocation `thread_local`
[INFO] [stderr]     --> src/from_spec_encoder.rs:3062:1
[INFO] [stderr]      |
[INFO] [stderr] 3062 | thread_local! {
[INFO] [stderr]      | ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: the `must_use` attribute cannot be used on macro defs
[INFO] [stderr]    --> src/from_spec_encoder.rs:461:3
[INFO] [stderr]     |
[INFO] [stderr] 461 | #[must_use]
[INFO] [stderr]     |   ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: the `must_use` attribute can be applied to data types, functions, and traits
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cmd_pos`
[INFO] [stderr]     --> src/decoder_full.rs:1173:21
[INFO] [stderr]      |
[INFO] [stderr] 1173 |                 let cmd_pos = pos;
[INFO] [stderr]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cmd_pos`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `data_size`
[INFO] [stderr]    --> src/encoder/block_splitter.rs:230:9
[INFO] [stderr]     |
[INFO] [stderr] 230 |     let data_size = a.data.len();
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_size`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `data_size`
[INFO] [stderr]    --> src/encoder/block_splitter.rs:550:9
[INFO] [stderr]     |
[INFO] [stderr] 550 |     let data_size = input.first().map_or(256, |h| h.data.len());
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_size`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `symbols_size`
[INFO] [stderr]    --> src/encoder/block_splitter.rs:864:5
[INFO] [stderr]     |
[INFO] [stderr] 864 |     symbols_size: usize,
[INFO] [stderr]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbols_size`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/encoder/emission.rs:665:9
[INFO] [stderr]     |
[INFO] [stderr] 665 |     let mut lit_block_type: usize = 0;
[INFO] [stderr]     |         ----^^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/encoder/emission.rs:1278:13
[INFO] [stderr]      |
[INFO] [stderr] 1278 |         let mut hists: Vec<crate::encoder::block_splitter::Hist> = dist_bc_hists
[INFO] [stderr]      |             ----^^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/encoder/emission.rs:1506:17
[INFO] [stderr]      |
[INFO] [stderr] 1506 |             let mut di = stream.dist_symbols.iter();
[INFO] [stderr]      |                 ----^^
[INFO] [stderr]      |                 |
[INFO] [stderr]      |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/encoder/emission.rs:501:14
[INFO] [stderr]     |
[INFO] [stderr] 501 |         for (i, (len, &ty)) in split.lengths.iter().zip(split.types.iter()).enumerate() {
[INFO] [stderr]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `lit_block_type`
[INFO] [stderr]    --> src/encoder/emission.rs:665:9
[INFO] [stderr]     |
[INFO] [stderr] 665 |     let mut lit_block_type: usize = 0;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lit_block_type`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `dist_sym_idx` is assigned to, but never used
[INFO] [stderr]     --> src/encoder/emission.rs:1671:9
[INFO] [stderr]      |
[INFO] [stderr] 1671 |     let mut dist_sym_idx = 0usize;
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: consider using `_dist_sym_idx` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `ntrees_d_out` is never read
[INFO] [stderr]     --> src/encoder/emission.rs:1335:9
[INFO] [stderr]      |
[INFO] [stderr] 1335 |         ntrees_d_out = shared_k as u32;
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 1359 |         ntrees_d_out = next as u32;
[INFO] [stderr]      |         -------------------------- `ntrees_d_out` is overwritten here before the previous value is read
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `dist_sym_idx` is never read
[INFO] [stderr]     --> src/encoder/emission.rs:1860:21
[INFO] [stderr]      |
[INFO] [stderr] 1860 |                     dist_sym_idx += 1;
[INFO] [stderr]      |                     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `gap`
[INFO] [stderr]    --> src/encoder/zopfli_hq.rs:795:76
[INFO] [stderr]     |
[INFO] [stderr] 795 | fn compute_distance_cache(pos: usize, starting: &[i32; 4], nodes: &[Node], gap: usize) -> [i32; 4] {
[INFO] [stderr]     |                                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_gap`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `len` is never read
[INFO] [stderr]    --> src/encoder/zopfli_hq.rs:867:27
[INFO] [stderr]     |
[INFO] [stderr] 867 |             let mut len = 0usize;
[INFO] [stderr]     |                           ^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 882 |             len = l;
[INFO] [stderr]     |             ------- `len` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: variable `prev_was_implicit` is assigned to, but never used
[INFO] [stderr]    --> src/from_spec_encoder.rs:904:9
[INFO] [stderr]     |
[INFO] [stderr] 904 |     let mut prev_was_implicit = false;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_prev_was_implicit` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `prev_was_implicit` is never read
[INFO] [stderr]     --> src/from_spec_encoder.rs:1028:9
[INFO] [stderr]      |
[INFO] [stderr] 1028 |         prev_was_implicit = this_was_implicit;
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `config`
[INFO] [stderr]     --> src/from_spec_encoder.rs:3368:9
[INFO] [stderr]      |
[INFO] [stderr] 3368 |     let config = omnizip_codecs::HashChainConfig {
[INFO] [stderr]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `cmd_count` is assigned to, but never used
[INFO] [stderr]     --> src/from_spec_encoder.rs:4356:9
[INFO] [stderr]      |
[INFO] [stderr] 4356 |     let mut cmd_count = 0u64;
[INFO] [stderr]      |         ^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: consider using `_cmd_count` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `cmd_count` is never read
[INFO] [stderr]     --> src/from_spec_encoder.rs:4367:13
[INFO] [stderr]      |
[INFO] [stderr] 4367 |             cmd_count += 1;
[INFO] [stderr]      |             ^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable `literal_count` is assigned to, but never used
[INFO] [stderr]     --> src/from_spec_encoder.rs:4510:9
[INFO] [stderr]      |
[INFO] [stderr] 4510 |     let mut literal_count = 0u64;
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: consider using `_literal_count` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `literal_count` is never read
[INFO] [stderr]     --> src/from_spec_encoder.rs:4529:13
[INFO] [stderr]      |
[INFO] [stderr] 4529 |             literal_count += 1;
[INFO] [stderr]      |             ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/from_spec_encoder.rs:5281:42
[INFO] [stderr]      |
[INFO] [stderr] 5281 |         let (bt, mut bt_bits, mut bt_bw, mut bt_split) = if run_bt {
[INFO] [stderr]      |                                          ----^^^^^^^^
[INFO] [stderr]      |                                          |
[INFO] [stderr]      |                                          help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `win_bits` is never read
[INFO] [stderr]     --> src/from_spec_encoder.rs:5513:17
[INFO] [stderr]      |
[INFO] [stderr] 5513 |                 win_bits = c_bits;
[INFO] [stderr]      |                 ^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/from_spec_encoder.rs:6369:9
[INFO] [stderr]      |
[INFO] [stderr] 6369 |     let mut finish = |i: usize,
[INFO] [stderr]      |         ----^^^^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: field `sub_bits` is never read
[INFO] [stderr]    --> src/decoder.rs:529:5
[INFO] [stderr]     |
[INFO] [stderr] 519 | pub struct HuffmanTable {
[INFO] [stderr]     |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 529 |     sub_bits: u32,
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `HuffmanTable` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `huffman_cost_estimate` is never used
[INFO] [stderr]    --> src/encoder/distance_config.rs:209:4
[INFO] [stderr]     |
[INFO] [stderr] 209 | fn huffman_cost_estimate(syms: &[u32], alphabet: usize) -> u64 {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `huff_cost` is never used
[INFO] [stderr]     --> src/from_spec_encoder.rs:6237:4
[INFO] [stderr]      |
[INFO] [stderr] 6237 | fn huff_cost(freq: &[u32; 704]) -> f64 {
[INFO] [stderr]      |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `split_cmd_symbols` is never used
[INFO] [stderr]     --> src/from_spec_encoder.rs:6740:4
[INFO] [stderr]      |
[INFO] [stderr] 6740 | fn split_cmd_symbols(cmd_symbols: &[usize], max_blocks: usize) -> Vec<usize> {
[INFO] [stderr]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `write_block_type_trees` is never used
[INFO] [stderr]     --> src/from_spec_encoder.rs:6837:15
[INFO] [stderr]      |
[INFO] [stderr] 6837 | pub(crate) fn write_block_type_trees(bw: &mut BitWriter, _nbltypes: u32) {
[INFO] [stderr]      |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable `WINDOW` should have a snake case name
[INFO] [stderr]     --> src/from_spec_encoder.rs:6753:9
[INFO] [stderr]      |
[INFO] [stderr] 6753 |     let WINDOW: usize = window;
[INFO] [stderr]      |         ^^^^^^ help: convert the identifier to snake case: `window`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `SWITCH_COST` should have a snake case name
[INFO] [stderr]     --> src/from_spec_encoder.rs:6754:9
[INFO] [stderr]      |
[INFO] [stderr] 6754 |     let SWITCH_COST: f64 = switch_cost;
[INFO] [stderr]      |         ^^^^^^^^^^^ help: convert the identifier to snake case: `switch_cost`
[INFO] [stderr] 
[INFO] [stderr] warning: `omnizip-brotli` (lib) generated 38 warnings (run `cargo fix --lib -p omnizip-brotli` to apply 16 suggestions)
[INFO] [stderr] warning: value assigned to `out_len` is never read
[INFO] [stderr]   --> examples/decode_prof.rs:13:23
[INFO] [stderr]    |
[INFO] [stderr] 13 |     let mut out_len = 0usize;
[INFO] [stderr]    |                       ^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 34 |     out_len = warm.len();
[INFO] [stderr]    |     -------------------- `out_len` is overwritten here before the previous value is read
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cuts`
[INFO] [stderr]   --> examples/splitter_check.rs:57:9
[INFO] [stderr]    |
[INFO] [stderr] 57 |     let cuts: Vec<usize> = (0..=m).map(|i| i * step).collect();
[INFO] [stderr]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_cuts`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `omnizip-brotli` (example "decode_prof") generated 1 warning
[INFO] [stderr] warning: `omnizip-brotli` (example "splitter_check") generated 1 warning (run `cargo fix --example "splitter_check" -p omnizip-brotli` to apply 1 suggestion)
[INFO] [stderr] warning: unused import: `std::io::Write`
[INFO] [stderr]  --> examples/bench_vs_ref.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::io::Write;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::from_spec_encoder::empty_frame_terminator_into`
[INFO] [stderr]   --> src/encoder/emission.rs:27:5
[INFO] [stderr]    |
[INFO] [stderr] 27 | use crate::from_spec_encoder::empty_frame_terminator_into;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `table`
[INFO] [stderr]    --> src/encoder/dict_hash.rs:225:13
[INFO] [stderr]     |
[INFO] [stderr] 225 |         let table = get_table();
[INFO] [stderr]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `out`
[INFO] [stderr]     --> src/encoder/zopfli_hq.rs:1365:13
[INFO] [stderr]      |
[INFO] [stderr] 1365 |         let out = crate::from_spec_encoder::compress_with_quality(&zeros, 11);
[INFO] [stderr]      |             ^^^ help: if this is intentional, prefix it with an underscore: `_out`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `lo`
[INFO] [stderr]     --> src/from_spec_encoder.rs:7363:17
[INFO] [stderr]      |
[INFO] [stderr] 7363 |             let lo = compress_with_quality(input, 0);
[INFO] [stderr]      |                 ^^ help: if this is intentional, prefix it with an underscore: `_lo`
[INFO] [stderr] 
[INFO] [stderr] warning: `omnizip-brotli` (example "bench_vs_ref") generated 1 warning (run `cargo fix --example "bench_vs_ref" -p omnizip-brotli` to apply 1 suggestion)
[INFO] [stderr] warning: `omnizip-brotli` (lib test) generated 42 warnings (38 duplicates) (run `cargo fix --lib -p omnizip-brotli --tests` to apply 4 suggestions)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/omnizip-brotli/67917228e24c7aef/out/omnizip_brotli-67917228e24c7aef)
[INFO] [stdout] 
[INFO] [stdout] running 105 tests
[INFO] [stdout] test decoder::tests::bit_reader_reads_lsb_first ... ok
[INFO] [stdout] test decoder::tests::bit_reader_returns_zero_past_end ... ok
[INFO] [stdout] test decoder::tests::decode_upstream_brotli_hello ... ok
[INFO] [stdout] test decoder::tests::context_mode_msb6_uses_high_6_bits ... ok
[INFO] [stdout] test decoder::tests::decode_uncompressed_metablock_for_two_bytes ... ok
[INFO] [stdout] test decoder::tests::context_mode_signed_uses_lookup_table ... ok
[INFO] [stdout] test decoder::tests::complex_huffman_table_decodes_simple_alphabet ... ok
[INFO] [stdout] test decoder::tests::context_mode_lsb6_uses_low_6_bits ... ok
[INFO] [stdout] test decoder::tests::decode_uncompressed_metablock_for_one_byte ... ok
[INFO] [stdout] test decoder::tests::decode_distance_from_code_reads_extra_bit_for_first_long_code ... ok
[INFO] [stdout] test decoder::tests::decode_larger_uncompressed_metablock ... ok
[INFO] [stdout] test decoder::tests::decode_empty_input ... ok
[INFO] [stdout] test decoder::tests::huffman_table_from_lengths_assigns_canonical_codes ... ok
[INFO] [stdout] test decoder::tests::huffman_table_read_symbol_walks_canonical_assignment ... ok
[INFO] [stdout] test decoder::tests::decode_terminator_only_stream ... ok
[INFO] [stdout] test decoder::tests::decoder_exits_after_final_insert_only_command ... ok
[INFO] [stdout] test decoder::tests::bit_reader_handles_multi_byte ... ok
[INFO] [stdout] test decoder::tests::parse_block_type_header_single_type ... ok
[INFO] [stdout] test decoder::tests::parse_block_type_header_two_types ... ok
[INFO] [stdout] test decoder::tests::ceil_log2_handles_small_values ... ok
[INFO] [stdout] test decoder::tests::context_mode_utf8_uses_lookup_table ... ok
[INFO] [stdout] test decoder::tests::parse_metablock_header_islast_empty ... ok
[INFO] [stdout] test decoder::tests::parse_metablock_header_not_last ... ok
[INFO] [stdout] test decoder::tests::parse_context_mode_decodes_2bit_field ... ok
[INFO] [stdout] test decoder::tests::parse_metablock_header_islast_with_size ... ok
[INFO] [stdout] test decoder::tests::parse_distance_header_reads_npostfix_and_ndirect ... ok
[INFO] [stdout] test dict_encoder::tests::dict_hash_returns_none_for_random ... ok
[INFO] [stdout] test decoder::tests::parse_metablock_header_islast_no_reserved_bit ... ok
[INFO] [stdout] test dictionary::tests::dictionary_lookup_rejects_invalid_transform ... ok
[INFO] [stdout] test decoder::tests::code_length_code_order_starts_with_one ... ok
[INFO] [stdout] test decoder::tests::parse_frame_header_rejects_empty ... ok
[INFO] [stdout] test dict_encoder::tests::dict_hash_finds_words ... ok
[INFO] [stdout] test dictionary::tests::dictionary_lookup_rejects_invalid_word_length ... ok
[INFO] [stdout] test dictionary::tests::dictionary_lookup_resolves_simple_word ... ok
[INFO] [stdout] test decoder::tests::parse_frame_header_lgwin_10_for_tiny_input ... ok
[INFO] [stdout] test decoder::tests::parse_frame_header_window_with_nbl ... ok
[INFO] [stdout] test decoder::tests::parse_frame_header_window_16 ... ok
[INFO] [stdout] test decoder::tests::read_huffman_table_simple_single_symbol ... ok
[INFO] [stdout] test dictionary::tests::identity_transform_emits_word_unchanged ... ok
[INFO] [stdout] test dictionary::tests::offsets_table_is_monotonic ... ok
[INFO] [stdout] test dictionary::tests::dictionary_size_is_correct ... ok
[INFO] [stdout] test dictionary::tests::transform_count_is_121 ... ok
[INFO] [stdout] test dictionary::tests::uppercase_first_transform_works ... ok
[INFO] [stdout] test dictionary::tests::prefix_suffix_map_entries_are_in_bounds ... ok
[INFO] [stdout] test decoder::tests::decode_upstream_brotli_q1_text ... ok
[INFO] [stdout] test dictionary::tests::word_length_4_first_word_is_valid ... ok
[INFO] [stdout] test encoder::zopfli_hq::mlen_cap_tests::match_len_cap_default_is_bounded ... ok
[INFO] [stdout] test dictionary::tests::find_dictionary_match_matches_linear_scan_reference ... ok
[INFO] [stdout] test from_spec_encoder::cluster_debug_tests::clustered_trees_round_trip ... ok
[INFO] [stdout] test fast_encoder::tests::create_huffman_tree_simple ... ok
[INFO] [stdout] test from_spec_encoder::cluster_debug_tests::context_map_round_trips_arbitrary ... ok
[INFO] [stdout] test from_spec_encoder::cmap_roundtrip_repro ... ok
[INFO] [stdout] test from_spec_encoder::cmdtree_roundtrip_repro ... ok
[INFO] [stdout] test fast_encoder::tests::vendored_compress_round_trips_via_cli ... ok
[INFO] [stdout] test from_spec_encoder::fcs_rep0_audit ... ok
[INFO] [stdout] test from_spec_encoder::littree_roundtrip_repro ... ok
[INFO] [stdout] test from_spec_encoder::cmd_symbol_356_covers_38_26 ... ok
[INFO] [stdout] test from_spec_encoder::fcs_audit ... ok
[INFO] [stdout] test from_spec_encoder::tests::bit_writer_lsb_first ... ok
[INFO] [stdout] test from_spec_encoder::tests::binary_round_trips ... ok
[INFO] [stdout] test from_spec_encoder::tests::compresses_repetitive_input ... ok
[INFO] [stdout] test from_spec_encoder::tests::compresses_csv_input ... ok
[INFO] [stdout] test from_spec_encoder::tests::compresses_text_input ... ok
[INFO] [stdout] test from_spec_encoder::tests::constant_256_round_trips ... ok
[INFO] [stdout] test from_spec_encoder::tests::determinism ... ok
[INFO] [stdout] test from_spec_encoder::tests::csv_round_trips ... ok
[INFO] [stdout] test from_spec_encoder::tests::dictionary_transform_helps_mixed_case ... ok
[INFO] [stdout] test from_spec_encoder::tests::distance_round_trips_in_decoder_formula ... ok
[INFO] [stdout] test from_spec_encoder::tests::huffman_table_complex_form_round_trips ... ok
[INFO] [stdout] test from_spec_encoder::tests::empty_round_trips ... ok
[INFO] [stdout] test encoder::dict_hash::tests::finds_identity_dictionary_word ... ok
[INFO] [stdout] test encoder::dict_hash::tests::finds_transform_with_prefix ... ok
[INFO] [stdout] test from_spec_encoder::tests::multi_metablock_uncompressed_round_trips ... ok
[INFO] [stdout] test from_spec_encoder::tests::multi_metablock_huffman_round_trips ... ok
[INFO] [stdout] test encoder::dict_hash::tests::no_false_match_on_random_data ... ok
[INFO] [stdout] test from_spec_encoder::tests::quality_distinguishes_output ... ok
[INFO] [stdout] test from_spec_encoder::tests::random_single_metablock_huffman_round_trips ... ok
[INFO] [stdout] test from_spec_encoder::tests::reverse_bits_works ... ok
[INFO] [stdout] test from_spec_encoder::tests::repetitive_round_trips ... ok
[INFO] [stdout] test from_spec_encoder::tests::short_round_trips ... ok
[INFO] [stdout] test encoder::btopt::tests::covers_dict_word_input ... ok
[INFO] [stdout] test from_spec_encoder::tests::wbits_decodes_to_22 ... ok
[INFO] [stdout] test static_codes::tests::command_bits_are_distinct_per_length ... ok
[INFO] [stdout] test static_codes::tests::command_depths_match_expected_distribution ... ok
[INFO] [stdout] test static_codes::tests::distance_depths_all_six_bits ... ok
[INFO] [stdout] test static_codes::tests::tables_have_correct_lengths ... ok
[INFO] [stdout] test tests::compress_is_deterministic ... ok
[INFO] [stdout] test encoder::btopt::tests::covers_binary_input ... ok
[INFO] [stdout] test tests::rejects_huffman_coded_metablock ... ok
[INFO] [stdout] test tests::rejects_truncated_input ... ok
[INFO] [stdout] test tests::compress_produces_output ... ok
[INFO] [stdout] test from_spec_encoder::tests::two_chunk_random_input_round_trips ... ok
[INFO] [stdout] test encoder::btopt::tests::deterministic ... ok
[INFO] [stdout] test from_spec_encoder::tests::near_max_metablock_round_trips ... ok
[INFO] [stdout] test from_spec_encoder::tests::two_chunk_input_round_trips ... ok
[INFO] [stdout] test from_spec_encoder::tests::all_qualities_round_trip ... ok
[INFO] [stdout] test encoder::dict_hash::tests::all_121_transforms_represented ... ok
[INFO] [stdout] test encoder::dict_hash::tests::hash_table_covers_all_word_lengths ... ok
[INFO] [stdout] test from_spec_encoder::tests::multi_metablock_huffman_large_input ... ok
[INFO] [stdout] test encoder::btopt::tests::covers_csv_like_input ... ok
[INFO] [stdout] test from_spec_encoder::tests::large_repetitive_input_round_trips ... ok
[INFO] [stdout] test encoder::btopt::tests::encode_deterministic_and_round_trips_q10_q11 ... ok
[INFO] [stdout] test encoder::zopfli_hq::mlen_cap_tests::repetitive_structured_text_q11_completes_and_round_trips ... ok
[INFO] [stdout] test encoder::zopfli_hq::mlen_cap_tests::dp_work_budgets_on_pathological_content ... ok
[INFO] [stdout] test encoder::btopt::tests::covers_repetitive_input ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 105 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.42s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests omnizip_brotli
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/lib.rs - BrotliOptions (line 68) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "dea4e0898506198217af93ae81864d2209f8244327fba99635c7620504f86420", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dea4e0898506198217af93ae81864d2209f8244327fba99635c7620504f86420", kill_on_drop: false }`
[INFO] [stdout] dea4e0898506198217af93ae81864d2209f8244327fba99635c7620504f86420
