[INFO] fetching crate divans 0.0.1...
[INFO] testing divans-0.0.1 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] extracting crate divans 0.0.1 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate divans 0.0.1
[INFO] finished tweaking crates.io crate divans 0.0.1
[INFO] tweaked toml for crates.io crate divans 0.0.1 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate divans 0.0.1 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 11 packages to latest compatible versions
[INFO] [stderr]       Adding alloc-no-stdlib v1.3.0 (available: v2.0.4)
[INFO] [stderr]       Adding brotli v2.5.1 (available: v8.0.2)
[INFO] [stderr]       Adding brotli-decompressor v1.3.1 (available: v1.5.0)
[INFO] [stderr]       Adding vergen v0.1.1 (available: v9.0.6)
[INFO] [stderr]       Adding wasi v0.10.0+wasi-snapshot-preview1 (available: v0.10.2+wasi-snapshot-preview1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded vergen v0.1.1
[INFO] [stderr]   Downloaded alloc-no-stdlib v1.3.0
[INFO] [stderr]   Downloaded brotli-decompressor v1.3.1
[INFO] [stderr]   Downloaded brotli v2.5.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6732e1e1b24d394c4901c505e86e69f2fd4435fef7c4902687533ad5a2161caa
[INFO] running `Command { std: "docker" "start" "-a" "6732e1e1b24d394c4901c505e86e69f2fd4435fef7c4902687533ad5a2161caa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6732e1e1b24d394c4901c505e86e69f2fd4435fef7c4902687533ad5a2161caa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6732e1e1b24d394c4901c505e86e69f2fd4435fef7c4902687533ad5a2161caa", kill_on_drop: false }`
[INFO] [stdout] 6732e1e1b24d394c4901c505e86e69f2fd4435fef7c4902687533ad5a2161caa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 839d8c65ab81c4a418172ce9c91e18584ae053b5ab2e8a2df6e5aa46f8165f7d
[INFO] running `Command { std: "docker" "start" "-a" "839d8c65ab81c4a418172ce9c91e18584ae053b5ab2e8a2df6e5aa46f8165f7d", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling bitflags v0.7.0
[INFO] [stderr]    Compiling alloc-no-stdlib v1.3.0
[INFO] [stderr]    Compiling brotli-decompressor v1.3.1
[INFO] [stderr]    Compiling brotli v2.5.1
[INFO] [stderr]    Compiling time v0.1.45
[INFO] [stderr]    Compiling vergen v0.1.1
[INFO] [stderr]    Compiling divans v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stdout]  --> src/probability/numeric.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[cfg(not(feature="division_table_gen"))]
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]   = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stdout]  --> src/probability/numeric.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[cfg(not(feature="division_table_gen"))]
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]   = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stdout]  --> src/probability/numeric.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[cfg(feature="division_table_gen")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]   = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stdout]   --> src/probability/numeric.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[cfg(not(feature="division_table_gen"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stdout]   --> src/probability/numeric.rs:54:11
[INFO] [stdout]    |
[INFO] [stdout] 54 | #[cfg(not(feature="division_table_gen"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/arithmetic_coder.rs:25:29
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn push_data(&mut self, &[u8]) -> usize;
[INFO] [stdout]    |                             ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &[u8]`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/arithmetic_coder.rs:27:28
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn pop_data(&mut self, &mut [u8]) -> usize;
[INFO] [stdout]    |                            ^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &mut [u8]`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory`, `Allocator`, and `StackAllocator`
[INFO] [stdout]   --> src/cmd_to_raw/mod.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[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 imports: `FeatureFlagSliceType` and `LiteralCommand`
[INFO] [stdout]   --> src/cmd_to_raw/mod.rs:22:49
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use super::interface::{Command, Compressor, LiteralCommand, CopyCommand, DictCommand, FeatureFlagSliceType};
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^                            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory`, `SliceWrapperMut`, `SliceWrapper`, and `StackAllocator`
[INFO] [stdout]   --> src/raw_to_cmd/hash_match.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^             ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory` and `StackAllocator`
[INFO] [stdout]   --> src/raw_to_cmd/mod.rs:19:17
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::slice_util::SliceReference`
[INFO] [stdout]   --> src/raw_to_cmd/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use super::slice_util::SliceReference;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CopyCommand` and `DictCommand`
[INFO] [stdout]   --> src/raw_to_cmd/mod.rs:22:91
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use super::interface::{PredictionModeContextMap, Command, Compressor, LiteralCommand, CopyCommand, DictCommand, FeatureFlagSlice...
[INFO] [stdout]    |                                                                                           ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `features`
[INFO] [stdout]   --> src/codec/weights.rs:84:7
[INFO] [stdout]    |
[INFO] [stdout] 84 | #[cfg(features="floating_point_context_mixing")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] help: there is a config with a similar name and different values
[INFO] [stdout]    |
[INFO] [stdout] 84 - #[cfg(features="floating_point_context_mixing")]
[INFO] [stdout] 84 + #[cfg(feature = "avoid-divide")]
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `features`
[INFO] [stdout]    --> src/codec/weights.rs:108:11
[INFO] [stdout]     |
[INFO] [stdout] 108 | #[cfg(not(features="floating_point_context_mixing"))]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] help: there is a config with a similar name and different values
[INFO] [stdout]     |
[INFO] [stdout] 108 - #[cfg(not(features="floating_point_context_mixing"))]
[INFO] [stdout] 108 + #[cfg(not(feature = "avoid-divide"))]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CrossCommandBookKeeping`
[INFO] [stdout]  --> src/codec/specializations.rs:3:28
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use super::interface::{CrossCommandBookKeeping,LiteralBookKeeping};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:87:68
[INFO] [stdout]    |
[INFO] [stdout] 87 |     fn get_source_copy_command<'a, ISlice:SliceWrapper<u8>>(&self, &'a Command<ISlice>, &'a CopyCommand) -> &'a CopyCommand;
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command<ISlice>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:87:89
[INFO] [stdout]    |
[INFO] [stdout] 87 |     fn get_source_copy_command<'a, ISlice:SliceWrapper<u8>>(&self, &'a Command<ISlice>, &'a CopyCommand) -> &'a CopyCommand;
[INFO] [stdout]    |                                                                                         ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a CopyCommand`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:88:79
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn get_source_literal_command<'a, ISlice:SliceWrapper<u8>+Default>(&self, &'a Command<ISlice>,
[INFO] [stdout]    |                                                                               ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command<ISlice>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:89:72
[INFO] [stdout]    |
[INFO] [stdout] 89 | ...                   &'a LiteralCommand<ISlice>) -> &'a LiteralCommand<ISlice>;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a LiteralCommand<ISlice>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:90:68
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn get_source_dict_command<'a, ISlice:SliceWrapper<u8>>(&self, &'a Command<ISlice>, &'a DictCommand) -> &'a DictCommand;
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command<ISlice>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:90:89
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn get_source_dict_command<'a, ISlice:SliceWrapper<u8>>(&self, &'a Command<ISlice>, &'a DictCommand) -> &'a DictCommand;
[INFO] [stdout]    |                                                                                         ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a DictCommand`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CrossCommandBookKeeping`
[INFO] [stdout]   --> src/codec/mod.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     CrossCommandBookKeeping,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/ans.rs:139:24
[INFO] [stdout]     |
[INFO] [stdout] 139 | const SCALE_MASK:u64 = ((1u64 << LOG2_SCALE) - 1);
[INFO] [stdout]     |                        ^                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 139 - const SCALE_MASK:u64 = ((1u64 << LOG2_SCALE) - 1);
[INFO] [stdout] 139 + const SCALE_MASK:u64 = (1u64 << LOG2_SCALE) - 1;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory`, `SliceWrapperMut`, and `StackAllocator`
[INFO] [stdout]   --> src/brotli_ir_gen.rs:21:24
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use super::alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^                           ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockSwitch`, `CopyCommand`, `Decompressor`, `DictCommand`, `FeatureFlagSliceType`, `LiteralBlockSwitch`, `LiteralCommand`, `LiteralPredictionModeNibble`, `Nop`, and `free_cmd`
[INFO] [stdout]   --> src/brotli_ir_gen.rs:22:28
[INFO] [stdout]    |
[INFO] [stdout] 22 | ...::{BlockSwitch, LiteralBlockSwitch, Command, Compressor, CopyCommand, Decompressor, DictCommand, LiteralCommand, Nop, NewWithAllocator, ArithmeticEncoderOrDecoder, LiteralPredictionModeNibble, PredictionModeContextMap, free_cmd, FeatureFlagSliceType,
[INFO] [stdout]    |       ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^                       ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^                            ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EncoderOrDecoderSpecialization` and `StrideSelection`
[INFO] [stdout]   --> src/brotli_ir_gen.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use codec::{EncoderOrDecoderSpecialization, DivansCodec, StrideSelection};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory` and `StackAllocator`
[INFO] [stdout]   --> src/divans_compressor.rs:26:24
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use super::alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockSwitch`, `CopyCommand`, `Decompressor`, `DictCommand`, `LiteralBlockSwitch`, `LiteralPredictionModeNibble`, `Nop`, and `free_cmd`
[INFO] [stdout]   --> src/divans_compressor.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     BlockSwitch,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 33 |     LiteralBlockSwitch,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     CopyCommand,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 37 |     Decompressor,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 38 |     DictCommand,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 39 |     LiteralCommand,
[INFO] [stdout] 40 |     Nop,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     LiteralPredictionModeNibble,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     free_cmd,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EncoderOrDecoderSpecialization`, `StrideSelection`, and `default_crc`
[INFO] [stdout]   --> src/divans_compressor.rs:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub use codec::{EncoderOrDecoderSpecialization, DivansCodec, StrideSelection, default_crc, CommandArray, CommandSliceArray};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^               ^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub extern fn divans_new_compressor() -> *mut compressor::DivansCompressorState{
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub unsafe extern fn divans_new_compressor_with_custom_alloc(allocators:CAllocator) -> *mut DivansCompressorState{
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub unsafe extern fn divans_set_option(state_ptr: *mut DivansCompressorState,
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub unsafe extern fn divans_encode(state_ptr: *mut DivansCompressorState,
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub unsafe extern fn divans_encode_flush(state_ptr: *mut DivansCompressorState,
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub unsafe extern fn divans_compressor_malloc_u8(state_ptr: *mut DivansCompressorState, size: usize) -> *mut u8 {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub unsafe extern fn divans_compressor_free_u8(state_ptr: *mut DivansCompressorState, data: *mut u8, size: usize) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub unsafe extern fn divans_compressor_malloc_usize(state_ptr: *mut DivansCompressorState, size: usize) -> *mut usize {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub unsafe extern fn divans_compressor_free_usize(state_ptr: *mut DivansCompressorState, data: *mut usize, size: usize) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub unsafe extern fn divans_free_compressor(state_ptr: *mut DivansCompressorState) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:178:5
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub extern fn divans_new_decompressor() -> *mut DivansDecompressorState{
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub extern fn divans_new_serial_decompressor() -> *mut DivansDecompressorState{
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:213:12
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub unsafe extern fn divans_new_decompressor_with_custom_alloc(allocators:CAllocator, skip_crc:u8, multithread: u8) -> *mut DivansD...
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:236:12
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub unsafe extern fn divans_decode(state_ptr: *mut DivansDecompressorState,
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:276:12
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub unsafe extern fn divans_decompressor_malloc_u8(state_ptr: *mut DivansDecompressorState, size: usize) -> *mut u8 {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:285:12
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub unsafe extern fn divans_decompressor_free_u8(state_ptr: *mut DivansDecompressorState, data: *mut u8, size: usize) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout] 294 | pub unsafe extern fn divans_decompressor_malloc_usize(state_ptr: *mut DivansDecompressorState, size: usize) -> *mut usize {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:303:12
[INFO] [stdout]     |
[INFO] [stdout] 303 | pub unsafe extern fn divans_decompressor_free_usize(state_ptr: *mut DivansDecompressorState, data: *mut usize, size: usize) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:312:12
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub unsafe extern fn divans_free_decompressor(state_ptr: *mut DivansDecompressorState) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory` and `StackAllocator`
[INFO] [stdout]  --> src/reader.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory` and `StackAllocator`
[INFO] [stdout]  --> src/writer.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/reader.rs:24:32
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn cause(&self) -> Option<&error::Error> {None}
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn cause(&self) -> Option<&dyn error::Error> {None}
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:256:5
[INFO] [stdout]     |
[INFO] [stdout] 256 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 258 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 262 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 264 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:268:5
[INFO] [stdout]     |
[INFO] [stdout] 268 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:272:5
[INFO] [stdout]     |
[INFO] [stdout] 272 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:274:5
[INFO] [stdout]     |
[INFO] [stdout] 274 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:276:5
[INFO] [stdout]     |
[INFO] [stdout] 276 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 278 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:280:5
[INFO] [stdout]     |
[INFO] [stdout] 280 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:282:5
[INFO] [stdout]     |
[INFO] [stdout] 282 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:286:5
[INFO] [stdout]     |
[INFO] [stdout] 286 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 288 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:368:5
[INFO] [stdout]     |
[INFO] [stdout] 368 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:386:5
[INFO] [stdout]     |
[INFO] [stdout] 386 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:390:5
[INFO] [stdout]     |
[INFO] [stdout] 390 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:393:5
[INFO] [stdout]     |
[INFO] [stdout] 393 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:405:5
[INFO] [stdout]     |
[INFO] [stdout] 405 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/arithmetic_coder.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/arithmetic_coder.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/arithmetic_coder.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/arithmetic_coder.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on use statements
[INFO] [stdout]  --> src/ffi/mod.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[no_mangle]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[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]   = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on type aliases
[INFO] [stdout]  --> src/ffi/interface.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[no_mangle]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[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]   = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on structs
[INFO] [stdout]   --> src/ffi/interface.rs:41:1
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[no_mangle]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on structs
[INFO] [stdout]    --> src/ffi/compressor.rs:267:1
[INFO] [stdout]     |
[INFO] [stdout] 267 | #[no_mangle]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on structs
[INFO] [stdout]  --> src/ffi/decompressor.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[no_mangle]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[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]   = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/codec/copy.rs:91:25
[INFO] [stdout]    |
[INFO] [stdout] 91 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:112:25
[INFO] [stdout]     |
[INFO] [stdout] 112 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:129:25
[INFO] [stdout]     |
[INFO] [stdout] 129 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:145:25
[INFO] [stdout]     |
[INFO] [stdout] 145 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:175:29
[INFO] [stdout]     |
[INFO] [stdout] 175 |                         let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:204:25
[INFO] [stdout]     |
[INFO] [stdout] 204 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:231:25
[INFO] [stdout]     |
[INFO] [stdout] 231 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:250:33
[INFO] [stdout]     |
[INFO] [stdout] 250 | ...                   let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/dict.rs:84:25
[INFO] [stdout]    |
[INFO] [stdout] 84 |                     let mut nibble_prob = superstate.bk.dict_priors.get(DictCommandNibblePriorType::SizeBegNib, (ctype,));
[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/codec/dict.rs:100:25
[INFO] [stdout]     |
[INFO] [stdout] 100 |                     let mut nibble_prob = superstate.bk.dict_priors.get(DictCommandNibblePriorType::SizeLastNib, (ctype,));
[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/codec/dict.rs:119:25
[INFO] [stdout]     |
[INFO] [stdout] 119 |                     let mut nibble_prob = superstate.bk.dict_priors.get(
[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/codec/dict.rs:139:25
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     let mut nibble_prob = superstate.bk.dict_priors.get(DictCommandNibblePriorType::Transform,
[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/codec/dict.rs:150:25
[INFO] [stdout]     |
[INFO] [stdout] 150 |                     let mut nibble_prob = superstate.bk.dict_priors.get(DictCommandNibblePriorType::Transform,
[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/codec/literal.rs:294:16
[INFO] [stdout]     |
[INFO] [stdout] 294 |            let mut byte_to_encode_val = specialization.get_literal_byte(in_cmd,
[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/codec/literal.rs:572:25
[INFO] [stdout]     |
[INFO] [stdout] 572 |                     let mut nibble_prob = superstate.bk.lit_len_priors.get(
[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/codec/literal.rs:600:25
[INFO] [stdout]     |
[INFO] [stdout] 600 |                     let mut nibble_prob = superstate.bk.lit_len_priors.get(LiteralCommandPriorType::SizeBegNib, (ctype,));
[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/codec/literal.rs:625:25
[INFO] [stdout]     |
[INFO] [stdout] 625 |                     let mut nibble_prob = superstate.bk.lit_len_priors.get(LiteralCommandPriorType::SizeLastNib, (ctype,));
[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/codec/literal.rs:640:25
[INFO] [stdout]     |
[INFO] [stdout] 640 |                     let mut nibble_prob = superstate.bk.lit_len_priors.get(LiteralCommandPriorType::SizeMantissaNib, (ctype,));
[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/codec/literal.rs:707:30
[INFO] [stdout]     |
[INFO] [stdout] 707 |                         Some(mut lc) => {
[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/codec/context_map.rs:174:28
[INFO] [stdout]     |
[INFO] [stdout] 174 |                        let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::Only, (0,));
[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/codec/context_map.rs:195:28
[INFO] [stdout]     |
[INFO] [stdout] 195 |                        let mut nibble_prob = superstate.bk.prediction_priors.get(
[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/codec/context_map.rs:211:28
[INFO] [stdout]     |
[INFO] [stdout] 211 |                        let mut nibble_prob = superstate.bk.prediction_priors.get(
[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/codec/context_map.rs:235:24
[INFO] [stdout]     |
[INFO] [stdout] 235 |                    let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::ContextMapSpeedPalette,
[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/codec/context_map.rs:291:28
[INFO] [stdout]     |
[INFO] [stdout] 291 | ...   let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::Mnemonic, (context_map_type as usize,));
[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/codec/context_map.rs:320:28
[INFO] [stdout]     |
[INFO] [stdout] 320 |                        let mut out_context_map = match context_map_type {
[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/codec/context_map.rs:343:24
[INFO] [stdout]     |
[INFO] [stdout] 343 | ...   let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::FirstNibble, (context_map_type as usize,));
[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/codec/context_map.rs:363:28
[INFO] [stdout]     |
[INFO] [stdout] 363 | ...   let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::SecondNibble, (context_map_type as usize,));
[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/codec/context_map.rs:371:24
[INFO] [stdout]     |
[INFO] [stdout] 371 |                    let mut out_context_map = match context_map_type {
[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/codec/context_map.rs:395:24
[INFO] [stdout]     |
[INFO] [stdout] 395 |                    let mut prior = if index >= 256 && self.pm.has_context_speeds() {
[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/codec/context_map.rs:401:28
[INFO] [stdout]     |
[INFO] [stdout] 401 |                        let mut nibble_prob = superstate.bk.prediction_priors.get(
[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/codec/block_type.rs:72:25
[INFO] [stdout]    |
[INFO] [stdout] 72 |                     let mut nibble_prob = superstate.bk.btype_priors.get(BlockTypePriorType::Mnemonic,
[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/codec/block_type.rs:88:25
[INFO] [stdout]    |
[INFO] [stdout] 88 |                     let mut nibble_prob = superstate.bk.btype_priors.get(BlockTypePriorType::FirstNibble,
[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/codec/block_type.rs:97:25
[INFO] [stdout]    |
[INFO] [stdout] 97 |                     let mut nibble_prob = superstate.bk.btype_priors.get(BlockTypePriorType::SecondNibble,
[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/codec/block_type.rs:181:25
[INFO] [stdout]     |
[INFO] [stdout] 181 |                     let mut nibble_prob = superstate.bk.btype_priors.get(BlockTypePriorType::StrideNibble,
[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/ir_optimize/mod.rs:198:21
[INFO] [stdout]     |
[INFO] [stdout] 198 |                 let mut should_merge = match should_merge(lit, copy, index, mb, &mut actuary, &mut distance_cache) {
[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/mux.rs:463:20
[INFO] [stdout]     |
[INFO] [stdout] 463 |                let mut is_lagging = max_flush  > MAX_FLUSH_VARIANCE + self.last_flush[index];
[INFO] [stdout]     |                    ----^^^^^^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `FixedRegister` is never used
[INFO] [stdout]   --> src/arithmetic_coder.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type FixedRegister = u64;
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RegisterQueue` is never constructed
[INFO] [stdout]   --> src/arithmetic_coder.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct RegisterQueue {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `put_8bit` is never used
[INFO] [stdout]    --> src/arithmetic_coder.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout]  84 | pub trait EntropyEncoder {
[INFO] [stdout]     |           -------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 122 |     fn put_8bit(&mut self,
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DebugEncoder` is never constructed
[INFO] [stdout]   --> src/debug_encoder.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct DebugEncoder {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DebugDecoder` is never constructed
[INFO] [stdout]   --> src/debug_encoder.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct DebugDecoder {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mov_internal` is never used
[INFO] [stdout]   --> src/debug_encoder.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl DebugEncoder {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 79 |     fn mov_internal(&mut self) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/multithreading.rs:52:20
[INFO] [stdout]    |
[INFO] [stdout] 52 | struct ThreadEvent(ThreadEventType, u32, Duration);
[INFO] [stdout]    |        ----------- ^^^^^^^^^^^^^^^  ^^^  ^^^^^^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout]    = note: `ThreadEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/interface.rs:259:21
[INFO] [stdout]     |
[INFO] [stdout] 259 |     fn write_buffer(&mut self, m8: &mut AllocU8) -> [WritableBytes; NUM_STREAMS];
[INFO] [stdout]     |                     ^^^^^^^^^                        ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 259 |     fn write_buffer(&mut self, m8: &mut AllocU8) -> [WritableBytes<'_>; NUM_STREAMS];
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/interface.rs:275:20
[INFO] [stdout]     |
[INFO] [stdout] 275 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS];
[INFO] [stdout]     |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 275 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS];
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/codec/interface.rs:920:26
[INFO] [stdout]     |
[INFO] [stdout] 920 |     fn get_input_command(&self, offset: usize) -> Command<brotli::InputReference>;
[INFO] [stdout]     |                          ^^^^^                            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 920 |     fn get_input_command(&self, offset: usize) -> Command<brotli::InputReference<'_>>;
[INFO] [stdout]     |                                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/codec/interface.rs:928:26
[INFO] [stdout]     |
[INFO] [stdout] 928 |     fn get_input_command(&self, _offset: usize) -> Command<brotli::InputReference> {
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 928 |     fn get_input_command(&self, _offset: usize) -> Command<brotli::InputReference<'_>> {
[INFO] [stdout]     |                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/codec/interface.rs:940:26
[INFO] [stdout]     |
[INFO] [stdout] 940 |     fn get_input_command(&self, offset: usize) -> Command<brotli::InputReference> {
[INFO] [stdout]     |                          ^^^^^                            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 940 |     fn get_input_command(&self, offset: usize) -> Command<brotli::InputReference<'_>> {
[INFO] [stdout]     |                                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/codec/io.rs:48:20
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS] {
[INFO] [stdout]    |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS] {
[INFO] [stdout]    |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/brotli_ir_gen.rs:131:16
[INFO] [stdout]     |
[INFO] [stdout] 131 |         panic!(m)
[INFO] [stdout]     |                ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 131 |         panic!("{}", m)
[INFO] [stdout]     |                +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 131 -         panic!(m)
[INFO] [stdout] 131 +         std::panic::panic_any(m)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/brotli_ir_gen.rs:636:26
[INFO] [stdout]     |
[INFO] [stdout] 636 |     fn get_input_command(&self, offset:usize) -> Command<brotli::InputReference> {
[INFO] [stdout]     |                          ^^^^^                           ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 636 |     fn get_input_command(&self, offset:usize) -> Command<brotli::InputReference<'_>> {
[INFO] [stdout]     |                                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/divans_compressor.rs:179:26
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn get_input_command(&self, offset:usize) -> Command<InputReference> {
[INFO] [stdout]     |                          ^^^^^                           ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn get_input_command(&self, offset:usize) -> Command<InputReference<'_>> {
[INFO] [stdout]     |                                                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stdout]    --> src/divans_decompressor.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 282 | /         core::mem::replace(self,
[INFO] [stdout] 283 | |                            DivansDecompressor::Decode(
[INFO] [stdout] 284 | |                                DivansProcess::<DefaultDecoder, AllocU8, AllocCDF16, AllocCommand> {
[INFO] [stdout] 285 | |                                    codec:Some(codec),
[INFO] [stdout] ...   |
[INFO] [stdout] 288 | |                                    mcommand:mcommand,
[INFO] [stdout] 289 | |                                }));
[INFO] [stdout]     | |__________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 282 |         let _ = core::mem::replace(self,
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stdout]    --> src/ir_optimize/mod.rs:205:21
[INFO] [stdout]     |
[INFO] [stdout] 205 |                     core::mem::replace(copy, CopyCommand::nop());
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 205 |                     let _ = core::mem::replace(copy, CopyCommand::nop());
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stdout]    --> src/ir_optimize/mod.rs:219:21
[INFO] [stdout]     |
[INFO] [stdout] 219 |                     core::mem::replace(&mut item_a[0], Command::Copy(CopyCommand::nop())); // replace with a copy
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 219 |                     let _ = core::mem::replace(&mut item_a[0], Command::Copy(CopyCommand::nop())); // replace with a copy
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ir_optimize/statistics_tracking_codec.rs:174:26
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn get_input_command(&self, _offset:usize) -> brotli::interface::Command<brotli::InputReference> {
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here                   ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn get_input_command(&self, _offset:usize) -> brotli::interface::Command<brotli::InputReference<'_>> {
[INFO] [stdout]     |                                                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ir_optimize/statistics_tracking_codec.rs:185:26
[INFO] [stdout]     |
[INFO] [stdout] 185 |     fn get_input_command(&self, offset:usize) -> brotli::interface::Command<brotli::InputReference> {
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here                  ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 185 |     fn get_input_command(&self, offset:usize) -> brotli::interface::Command<brotli::InputReference<'_>> {
[INFO] [stdout]     |                                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ir_optimize/cache.rs:62:30
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn get_cache_hit_log(&mut self, cmd_offset:usize) -> CacheHitReference{
[INFO] [stdout]    |                              ^^^^^^^^^                       ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn get_cache_hit_log(&mut self, cmd_offset:usize) -> CacheHitReference<'_>{
[INFO] [stdout]    |                                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ir_optimize/cache.rs:69:30
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn get_cache_hit_log_mut(&mut self, cmd_offset:usize) -> CacheHitReferenceMut{
[INFO] [stdout]    |                              ^^^^^^^^^                       ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn get_cache_hit_log_mut(&mut self, cmd_offset:usize) -> CacheHitReferenceMut<'_>{
[INFO] [stdout]    |                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mux.rs:122:20
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS] {
[INFO] [stdout]     |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS] {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mux.rs:169:21
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn write_buffer(&mut self, m8: &mut AllocU8) -> [WritableBytes; NUM_STREAMS] { // FIXME: make this generic WRT NUM_STREAMS
[INFO] [stdout]     |                     ^^^^^^^^^                        ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn write_buffer(&mut self, m8: &mut AllocU8) -> [WritableBytes<'_>; NUM_STREAMS] { // FIXME: make this generic WRT NUM_STREAMS
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mux.rs:583:20
[INFO] [stdout]     |
[INFO] [stdout] 583 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS] {
[INFO] [stdout]     |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 583 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS] {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mux.rs:620:21
[INFO] [stdout]     |
[INFO] [stdout] 620 |     fn write_buffer(&mut self, _m8: &mut AllocU8) -> [WritableBytes; NUM_STREAMS] {
[INFO] [stdout]     |                     ^^^^^^^^^                         ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 620 |     fn write_buffer(&mut self, _m8: &mut AllocU8) -> [WritableBytes<'_>; NUM_STREAMS] {
[INFO] [stdout]     |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/threading.rs:327:20
[INFO] [stdout]     |
[INFO] [stdout] 327 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS] {
[INFO] [stdout]     |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 327 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS] {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/ffi/alloc_util.rs:213:5
[INFO] [stdout]     |
[INFO] [stdout] 213 |     Box::from_raw(slice_ref); // free on drop
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 213 |     let _ = Box::from_raw(slice_ref); // free on drop
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stdout]    --> src/ffi/compressor.rs:176:17
[INFO] [stdout]     |
[INFO] [stdout] 176 | /                 core::mem::replace(self,
[INFO] [stdout] 177 | |                                    CompressorState::InternalCompressor(
[INFO] [stdout] 178 | |                                        InternalCompressorFactory::new(
[INFO] [stdout] 179 | |                                            SubclassableAllocator::<u8>::new(allocators.clone()),
[INFO] [stdout] ...   |
[INFO] [stdout] 182 | |                                            opts,
[INFO] [stdout] 183 | |                                            ())));
[INFO] [stdout]     | |________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 176 |                 let _ = core::mem::replace(self,
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stdout]    --> src/ffi/compressor.rs:186:17
[INFO] [stdout]     |
[INFO] [stdout] 186 | /                 core::mem::replace(self,
[INFO] [stdout] 187 | |                                    CompressorState::BrotliCompressor(
[INFO] [stdout] 188 | |                                        BrotliFactory::new(
[INFO] [stdout] 189 | |                                            SubclassableAllocator::<u8>::new(allocators.clone()),
[INFO] [stdout] ...   |
[INFO] [stdout] 209 | |                                                SubclassableAllocator::<brotli::enc::StaticCommand>::new(allocators.clone()),
[INFO] [stdout] 210 | |                                            ))));
[INFO] [stdout]     | |_______________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 186 |                 let _ = core::mem::replace(self,
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `no-stdlib-rlib`
[INFO] [stdout]   --> src/bin/divans.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[cfg(feature="no-stdlib-rlib")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = help: consider adding `no-stdlib-rlib` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `no-stdlib-rlib`
[INFO] [stdout]   --> src/bin/divans.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[cfg(not(feature="no-stdlib-rlib"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = help: consider adding `no-stdlib-rlib` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `inplace-new`
[INFO] [stdout]   --> src/bin/util.rs:49:7
[INFO] [stdout]    |
[INFO] [stdout] 49 | #[cfg(feature="inplace-new")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = help: consider adding `inplace-new` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `inplace-new`
[INFO] [stdout]   --> src/bin/util.rs:73:11
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[cfg(not(feature="inplace-new"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = help: consider adding `inplace-new` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bin/divans.rs:455:20
[INFO] [stdout]     |
[INFO] [stdout] 455 |         let data = try!(util::literal_slice_to_vec(&s.as_bytes()[command_vec[0].len() + command_vec[1].len() + 2..]));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bin/divans.rs:457:24
[INFO] [stdout]     |
[INFO] [stdout] 457 |             let prob = try!(util::hex_slice_to_vec(command_vec[3].as_bytes()));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bin/divans.rs:659:21
[INFO] [stdout]     |
[INFO] [stdout] 659 |                     try!(recode_cmd_buffer(&mut state, ibuffer.split_at(i_read_index).0, w,
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bin/divans.rs:671:23
[INFO] [stdout]     |
[INFO] [stdout] 671 |                 match try!(command_parse(&line)) {
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bin/divans.rs:956:31
[INFO] [stdout]     |
[INFO] [stdout] 956 |                 window_size = try!(window_parse(&line));
[INFO] [stdout]     |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]     --> src/bin/divans.rs:1013:46
[INFO] [stdout]      |
[INFO] [stdout] 1013 |     let mut obuffer = vec![0u8; buffer_size];;
[INFO] [stdout]      |                                              ^ help: remove this semicolon
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bin/divans.rs:718:63
[INFO] [stdout]     |
[INFO] [stdout] 718 | ...                   free_state: &mut Fn(Compressor)->ItemVecAllocator<u8>) -> io::Result<()> {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 718 |                                              free_state: &mut dyn Fn(Compressor)->ItemVecAllocator<u8>) -> io::Result<()> {
[INFO] [stdout]     |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bin/divans.rs:103:32
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn cause(&self) -> Option<&error::Error> {None}
[INFO] [stdout]     |                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn cause(&self) -> Option<&dyn error::Error> {None}
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:169:43
[INFO] [stdout]     |
[INFO] [stdout] 169 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:329:47
[INFO] [stdout]     |
[INFO] [stdout] 329 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:350:60
[INFO] [stdout]     |
[INFO] [stdout] 350 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:366:47
[INFO] [stdout]     |
[INFO] [stdout] 366 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:377:47
[INFO] [stdout]     |
[INFO] [stdout] 377 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:393:47
[INFO] [stdout]     |
[INFO] [stdout] 393 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:409:47
[INFO] [stdout]     |
[INFO] [stdout] 409 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:416:47
[INFO] [stdout]     |
[INFO] [stdout] 416 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:425:55
[INFO] [stdout]     |
[INFO] [stdout] 425 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:449:51
[INFO] [stdout]     |
[INFO] [stdout] 449 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rebox` is never constructed
[INFO] [stdout]    --> src/bin/util.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct Rebox<T> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HeapAllocator` is never constructed
[INFO] [stdout]    --> src/bin/util.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub struct HeapAllocator<T: core::clone::Clone> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.36s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bitflags v0.7.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "839d8c65ab81c4a418172ce9c91e18584ae053b5ab2e8a2df6e5aa46f8165f7d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "839d8c65ab81c4a418172ce9c91e18584ae053b5ab2e8a2df6e5aa46f8165f7d", kill_on_drop: false }`
[INFO] [stdout] 839d8c65ab81c4a418172ce9c91e18584ae053b5ab2e8a2df6e5aa46f8165f7d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cf75b8c95ece97d14651038ac5160a5d7e540adc7daa0d75c0a571ed3834aa3b
[INFO] running `Command { std: "docker" "start" "-a" "cf75b8c95ece97d14651038ac5160a5d7e540adc7daa0d75c0a571ed3834aa3b", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stdout] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stdout]  --> src/probability/numeric.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[cfg(not(feature="division_table_gen"))]
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]   = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stdout]  --> src/probability/numeric.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[cfg(not(feature="division_table_gen"))]
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]   = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stdout]  --> src/probability/numeric.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[cfg(feature="division_table_gen")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]   = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stdout]   --> src/probability/numeric.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[cfg(not(feature="division_table_gen"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stdout]   --> src/probability/numeric.rs:54:11
[INFO] [stdout]    |
[INFO] [stdout] 54 | #[cfg(not(feature="division_table_gen"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/arithmetic_coder.rs:25:29
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn push_data(&mut self, &[u8]) -> usize;
[INFO] [stdout]    |                             ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &[u8]`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/arithmetic_coder.rs:27:28
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn pop_data(&mut self, &mut [u8]) -> usize;
[INFO] [stdout]    |                            ^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &mut [u8]`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory`, `Allocator`, and `StackAllocator`
[INFO] [stdout]   --> src/cmd_to_raw/mod.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[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 imports: `FeatureFlagSliceType` and `LiteralCommand`
[INFO] [stdout]   --> src/cmd_to_raw/mod.rs:22:49
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use super::interface::{Command, Compressor, LiteralCommand, CopyCommand, DictCommand, FeatureFlagSliceType};
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^                            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory`, `SliceWrapperMut`, `SliceWrapper`, and `StackAllocator`
[INFO] [stdout]   --> src/raw_to_cmd/hash_match.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^             ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory` and `StackAllocator`
[INFO] [stdout]   --> src/raw_to_cmd/mod.rs:19:17
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::slice_util::SliceReference`
[INFO] [stdout]   --> src/raw_to_cmd/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use super::slice_util::SliceReference;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CopyCommand` and `DictCommand`
[INFO] [stdout]   --> src/raw_to_cmd/mod.rs:22:91
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use super::interface::{PredictionModeContextMap, Command, Compressor, LiteralCommand, CopyCommand, DictCommand, FeatureFlagSlice...
[INFO] [stdout]    |                                                                                           ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `features`
[INFO] [stdout]   --> src/codec/weights.rs:84:7
[INFO] [stdout]    |
[INFO] [stdout] 84 | #[cfg(features="floating_point_context_mixing")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] help: there is a config with a similar name and different values
[INFO] [stdout]    |
[INFO] [stdout] 84 - #[cfg(features="floating_point_context_mixing")]
[INFO] [stdout] 84 + #[cfg(feature = "avoid-divide")]
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `features`
[INFO] [stdout]    --> src/codec/weights.rs:108:11
[INFO] [stdout]     |
[INFO] [stdout] 108 | #[cfg(not(features="floating_point_context_mixing"))]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] help: there is a config with a similar name and different values
[INFO] [stdout]     |
[INFO] [stdout] 108 - #[cfg(not(features="floating_point_context_mixing"))]
[INFO] [stdout] 108 + #[cfg(not(feature = "avoid-divide"))]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CrossCommandBookKeeping`
[INFO] [stdout]  --> src/codec/specializations.rs:3:28
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use super::interface::{CrossCommandBookKeeping,LiteralBookKeeping};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:87:68
[INFO] [stdout]    |
[INFO] [stdout] 87 |     fn get_source_copy_command<'a, ISlice:SliceWrapper<u8>>(&self, &'a Command<ISlice>, &'a CopyCommand) -> &'a CopyCommand;
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command<ISlice>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:87:89
[INFO] [stdout]    |
[INFO] [stdout] 87 |     fn get_source_copy_command<'a, ISlice:SliceWrapper<u8>>(&self, &'a Command<ISlice>, &'a CopyCommand) -> &'a CopyCommand;
[INFO] [stdout]    |                                                                                         ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a CopyCommand`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:88:79
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn get_source_literal_command<'a, ISlice:SliceWrapper<u8>+Default>(&self, &'a Command<ISlice>,
[INFO] [stdout]    |                                                                               ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command<ISlice>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:89:72
[INFO] [stdout]    |
[INFO] [stdout] 89 | ...                   &'a LiteralCommand<ISlice>) -> &'a LiteralCommand<ISlice>;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a LiteralCommand<ISlice>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:90:68
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn get_source_dict_command<'a, ISlice:SliceWrapper<u8>>(&self, &'a Command<ISlice>, &'a DictCommand) -> &'a DictCommand;
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command<ISlice>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:90:89
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn get_source_dict_command<'a, ISlice:SliceWrapper<u8>>(&self, &'a Command<ISlice>, &'a DictCommand) -> &'a DictCommand;
[INFO] [stdout]    |                                                                                         ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a DictCommand`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CrossCommandBookKeeping`
[INFO] [stdout]   --> src/codec/mod.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     CrossCommandBookKeeping,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/ans.rs:139:24
[INFO] [stdout]     |
[INFO] [stdout] 139 | const SCALE_MASK:u64 = ((1u64 << LOG2_SCALE) - 1);
[INFO] [stdout]     |                        ^                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 139 - const SCALE_MASK:u64 = ((1u64 << LOG2_SCALE) - 1);
[INFO] [stdout] 139 + const SCALE_MASK:u64 = (1u64 << LOG2_SCALE) - 1;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory`, `SliceWrapperMut`, and `StackAllocator`
[INFO] [stdout]   --> src/brotli_ir_gen.rs:21:24
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use super::alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^                           ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockSwitch`, `CopyCommand`, `Decompressor`, `DictCommand`, `FeatureFlagSliceType`, `LiteralBlockSwitch`, `LiteralCommand`, `LiteralPredictionModeNibble`, `Nop`, and `free_cmd`
[INFO] [stdout]   --> src/brotli_ir_gen.rs:22:28
[INFO] [stdout]    |
[INFO] [stdout] 22 | ...::{BlockSwitch, LiteralBlockSwitch, Command, Compressor, CopyCommand, Decompressor, DictCommand, LiteralCommand, Nop, NewWithAllocator, ArithmeticEncoderOrDecoder, LiteralPredictionModeNibble, PredictionModeContextMap, free_cmd, FeatureFlagSliceType,
[INFO] [stdout]    |       ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^                       ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^                            ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EncoderOrDecoderSpecialization` and `StrideSelection`
[INFO] [stdout]   --> src/brotli_ir_gen.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use codec::{EncoderOrDecoderSpecialization, DivansCodec, StrideSelection};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory` and `StackAllocator`
[INFO] [stdout]   --> src/divans_compressor.rs:26:24
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use super::alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockSwitch`, `CopyCommand`, `Decompressor`, `DictCommand`, `LiteralBlockSwitch`, `LiteralPredictionModeNibble`, `Nop`, and `free_cmd`
[INFO] [stdout]   --> src/divans_compressor.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     BlockSwitch,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 33 |     LiteralBlockSwitch,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     CopyCommand,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 37 |     Decompressor,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 38 |     DictCommand,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 39 |     LiteralCommand,
[INFO] [stdout] 40 |     Nop,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     LiteralPredictionModeNibble,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     free_cmd,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EncoderOrDecoderSpecialization`, `StrideSelection`, and `default_crc`
[INFO] [stdout]   --> src/divans_compressor.rs:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub use codec::{EncoderOrDecoderSpecialization, DivansCodec, StrideSelection, default_crc, CommandArray, CommandSliceArray};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^               ^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub extern fn divans_new_compressor() -> *mut compressor::DivansCompressorState{
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub unsafe extern fn divans_new_compressor_with_custom_alloc(allocators:CAllocator) -> *mut DivansCompressorState{
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub unsafe extern fn divans_set_option(state_ptr: *mut DivansCompressorState,
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub unsafe extern fn divans_encode(state_ptr: *mut DivansCompressorState,
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub unsafe extern fn divans_encode_flush(state_ptr: *mut DivansCompressorState,
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub unsafe extern fn divans_compressor_malloc_u8(state_ptr: *mut DivansCompressorState, size: usize) -> *mut u8 {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub unsafe extern fn divans_compressor_free_u8(state_ptr: *mut DivansCompressorState, data: *mut u8, size: usize) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub unsafe extern fn divans_compressor_malloc_usize(state_ptr: *mut DivansCompressorState, size: usize) -> *mut usize {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub unsafe extern fn divans_compressor_free_usize(state_ptr: *mut DivansCompressorState, data: *mut usize, size: usize) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub unsafe extern fn divans_free_compressor(state_ptr: *mut DivansCompressorState) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:178:5
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub extern fn divans_new_decompressor() -> *mut DivansDecompressorState{
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub extern fn divans_new_serial_decompressor() -> *mut DivansDecompressorState{
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:213:12
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub unsafe extern fn divans_new_decompressor_with_custom_alloc(allocators:CAllocator, skip_crc:u8, multithread: u8) -> *mut DivansD...
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:236:12
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub unsafe extern fn divans_decode(state_ptr: *mut DivansDecompressorState,
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:276:12
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub unsafe extern fn divans_decompressor_malloc_u8(state_ptr: *mut DivansDecompressorState, size: usize) -> *mut u8 {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:285:12
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub unsafe extern fn divans_decompressor_free_u8(state_ptr: *mut DivansDecompressorState, data: *mut u8, size: usize) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout] 294 | pub unsafe extern fn divans_decompressor_malloc_usize(state_ptr: *mut DivansDecompressorState, size: usize) -> *mut usize {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:303:12
[INFO] [stdout]     |
[INFO] [stdout] 303 | pub unsafe extern fn divans_decompressor_free_usize(state_ptr: *mut DivansDecompressorState, data: *mut usize, size: usize) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:312:12
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub unsafe extern fn divans_free_decompressor(state_ptr: *mut DivansDecompressorState) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory` and `StackAllocator`
[INFO] [stdout]  --> src/reader.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory` and `StackAllocator`
[INFO] [stdout]  --> src/writer.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/reader.rs:24:32
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn cause(&self) -> Option<&error::Error> {None}
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn cause(&self) -> Option<&dyn error::Error> {None}
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:256:5
[INFO] [stdout]     |
[INFO] [stdout] 256 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 258 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 262 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 264 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:268:5
[INFO] [stdout]     |
[INFO] [stdout] 268 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:272:5
[INFO] [stdout]     |
[INFO] [stdout] 272 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:274:5
[INFO] [stdout]     |
[INFO] [stdout] 274 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:276:5
[INFO] [stdout]     |
[INFO] [stdout] 276 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 278 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:280:5
[INFO] [stdout]     |
[INFO] [stdout] 280 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:282:5
[INFO] [stdout]     |
[INFO] [stdout] 282 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:286:5
[INFO] [stdout]     |
[INFO] [stdout] 286 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 288 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:368:5
[INFO] [stdout]     |
[INFO] [stdout] 368 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:386:5
[INFO] [stdout]     |
[INFO] [stdout] 386 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:390:5
[INFO] [stdout]     |
[INFO] [stdout] 390 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:393:5
[INFO] [stdout]     |
[INFO] [stdout] 393 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:405:5
[INFO] [stdout]     |
[INFO] [stdout] 405 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/arithmetic_coder.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/arithmetic_coder.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/arithmetic_coder.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/arithmetic_coder.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on use statements
[INFO] [stdout]  --> src/ffi/mod.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[no_mangle]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[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]   = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on type aliases
[INFO] [stdout]  --> src/ffi/interface.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[no_mangle]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[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]   = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on structs
[INFO] [stdout]   --> src/ffi/interface.rs:41:1
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[no_mangle]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on structs
[INFO] [stdout]    --> src/ffi/compressor.rs:267:1
[INFO] [stdout]     |
[INFO] [stdout] 267 | #[no_mangle]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on structs
[INFO] [stdout]  --> src/ffi/decompressor.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[no_mangle]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[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]   = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/codec/copy.rs:91:25
[INFO] [stdout]    |
[INFO] [stdout] 91 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:112:25
[INFO] [stdout]     |
[INFO] [stdout] 112 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:129:25
[INFO] [stdout]     |
[INFO] [stdout] 129 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:145:25
[INFO] [stdout]     |
[INFO] [stdout] 145 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:175:29
[INFO] [stdout]     |
[INFO] [stdout] 175 |                         let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:204:25
[INFO] [stdout]     |
[INFO] [stdout] 204 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:231:25
[INFO] [stdout]     |
[INFO] [stdout] 231 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:250:33
[INFO] [stdout]     |
[INFO] [stdout] 250 | ...                   let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/dict.rs:84:25
[INFO] [stdout]    |
[INFO] [stdout] 84 |                     let mut nibble_prob = superstate.bk.dict_priors.get(DictCommandNibblePriorType::SizeBegNib, (ctype,));
[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/codec/dict.rs:100:25
[INFO] [stdout]     |
[INFO] [stdout] 100 |                     let mut nibble_prob = superstate.bk.dict_priors.get(DictCommandNibblePriorType::SizeLastNib, (ctype,));
[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/codec/dict.rs:119:25
[INFO] [stdout]     |
[INFO] [stdout] 119 |                     let mut nibble_prob = superstate.bk.dict_priors.get(
[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/codec/dict.rs:139:25
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     let mut nibble_prob = superstate.bk.dict_priors.get(DictCommandNibblePriorType::Transform,
[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/codec/dict.rs:150:25
[INFO] [stdout]     |
[INFO] [stdout] 150 |                     let mut nibble_prob = superstate.bk.dict_priors.get(DictCommandNibblePriorType::Transform,
[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/codec/literal.rs:294:16
[INFO] [stdout]     |
[INFO] [stdout] 294 |            let mut byte_to_encode_val = specialization.get_literal_byte(in_cmd,
[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/codec/literal.rs:572:25
[INFO] [stdout]     |
[INFO] [stdout] 572 |                     let mut nibble_prob = superstate.bk.lit_len_priors.get(
[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/codec/literal.rs:600:25
[INFO] [stdout]     |
[INFO] [stdout] 600 |                     let mut nibble_prob = superstate.bk.lit_len_priors.get(LiteralCommandPriorType::SizeBegNib, (ctype,));
[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/codec/literal.rs:625:25
[INFO] [stdout]     |
[INFO] [stdout] 625 |                     let mut nibble_prob = superstate.bk.lit_len_priors.get(LiteralCommandPriorType::SizeLastNib, (ctype,));
[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/codec/literal.rs:640:25
[INFO] [stdout]     |
[INFO] [stdout] 640 |                     let mut nibble_prob = superstate.bk.lit_len_priors.get(LiteralCommandPriorType::SizeMantissaNib, (ctype,));
[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/codec/literal.rs:707:30
[INFO] [stdout]     |
[INFO] [stdout] 707 |                         Some(mut lc) => {
[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/codec/context_map.rs:174:28
[INFO] [stdout]     |
[INFO] [stdout] 174 |                        let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::Only, (0,));
[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/codec/context_map.rs:195:28
[INFO] [stdout]     |
[INFO] [stdout] 195 |                        let mut nibble_prob = superstate.bk.prediction_priors.get(
[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/codec/context_map.rs:211:28
[INFO] [stdout]     |
[INFO] [stdout] 211 |                        let mut nibble_prob = superstate.bk.prediction_priors.get(
[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/codec/context_map.rs:235:24
[INFO] [stdout]     |
[INFO] [stdout] 235 |                    let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::ContextMapSpeedPalette,
[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/codec/context_map.rs:291:28
[INFO] [stdout]     |
[INFO] [stdout] 291 | ...   let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::Mnemonic, (context_map_type as usize,));
[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/codec/context_map.rs:320:28
[INFO] [stdout]     |
[INFO] [stdout] 320 |                        let mut out_context_map = match context_map_type {
[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/codec/context_map.rs:343:24
[INFO] [stdout]     |
[INFO] [stdout] 343 | ...   let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::FirstNibble, (context_map_type as usize,));
[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/codec/context_map.rs:363:28
[INFO] [stdout]     |
[INFO] [stdout] 363 | ...   let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::SecondNibble, (context_map_type as usize,));
[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/codec/context_map.rs:371:24
[INFO] [stdout]     |
[INFO] [stdout] 371 |                    let mut out_context_map = match context_map_type {
[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/codec/context_map.rs:395:24
[INFO] [stdout]     |
[INFO] [stdout] 395 |                    let mut prior = if index >= 256 && self.pm.has_context_speeds() {
[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/codec/context_map.rs:401:28
[INFO] [stdout]     |
[INFO] [stdout] 401 |                        let mut nibble_prob = superstate.bk.prediction_priors.get(
[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/codec/block_type.rs:72:25
[INFO] [stdout]    |
[INFO] [stdout] 72 |                     let mut nibble_prob = superstate.bk.btype_priors.get(BlockTypePriorType::Mnemonic,
[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/codec/block_type.rs:88:25
[INFO] [stdout]    |
[INFO] [stdout] 88 |                     let mut nibble_prob = superstate.bk.btype_priors.get(BlockTypePriorType::FirstNibble,
[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/codec/block_type.rs:97:25
[INFO] [stdout]    |
[INFO] [stdout] 97 |                     let mut nibble_prob = superstate.bk.btype_priors.get(BlockTypePriorType::SecondNibble,
[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/codec/block_type.rs:181:25
[INFO] [stdout]     |
[INFO] [stdout] 181 |                     let mut nibble_prob = superstate.bk.btype_priors.get(BlockTypePriorType::StrideNibble,
[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/ir_optimize/mod.rs:198:21
[INFO] [stdout]     |
[INFO] [stdout] 198 |                 let mut should_merge = match should_merge(lit, copy, index, mb, &mut actuary, &mut distance_cache) {
[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/mux.rs:463:20
[INFO] [stdout]     |
[INFO] [stdout] 463 |                let mut is_lagging = max_flush  > MAX_FLUSH_VARIANCE + self.last_flush[index];
[INFO] [stdout]     |                    ----^^^^^^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `FixedRegister` is never used
[INFO] [stdout]   --> src/arithmetic_coder.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type FixedRegister = u64;
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RegisterQueue` is never constructed
[INFO] [stdout]   --> src/arithmetic_coder.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct RegisterQueue {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `put_8bit` is never used
[INFO] [stdout]    --> src/arithmetic_coder.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout]  84 | pub trait EntropyEncoder {
[INFO] [stdout]     |           -------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 122 |     fn put_8bit(&mut self,
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DebugEncoder` is never constructed
[INFO] [stdout]   --> src/debug_encoder.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct DebugEncoder {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DebugDecoder` is never constructed
[INFO] [stdout]   --> src/debug_encoder.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct DebugDecoder {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mov_internal` is never used
[INFO] [stdout]   --> src/debug_encoder.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl DebugEncoder {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 79 |     fn mov_internal(&mut self) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/multithreading.rs:52:20
[INFO] [stdout]    |
[INFO] [stdout] 52 | struct ThreadEvent(ThreadEventType, u32, Duration);
[INFO] [stdout]    |        ----------- ^^^^^^^^^^^^^^^  ^^^  ^^^^^^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout]    = note: `ThreadEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/interface.rs:259:21
[INFO] [stdout]     |
[INFO] [stdout] 259 |     fn write_buffer(&mut self, m8: &mut AllocU8) -> [WritableBytes; NUM_STREAMS];
[INFO] [stdout]     |                     ^^^^^^^^^                        ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 259 |     fn write_buffer(&mut self, m8: &mut AllocU8) -> [WritableBytes<'_>; NUM_STREAMS];
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/interface.rs:275:20
[INFO] [stdout]     |
[INFO] [stdout] 275 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS];
[INFO] [stdout]     |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 275 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS];
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/codec/interface.rs:920:26
[INFO] [stdout]     |
[INFO] [stdout] 920 |     fn get_input_command(&self, offset: usize) -> Command<brotli::InputReference>;
[INFO] [stdout]     |                          ^^^^^                            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 920 |     fn get_input_command(&self, offset: usize) -> Command<brotli::InputReference<'_>>;
[INFO] [stdout]     |                                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/codec/interface.rs:928:26
[INFO] [stdout]     |
[INFO] [stdout] 928 |     fn get_input_command(&self, _offset: usize) -> Command<brotli::InputReference> {
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 928 |     fn get_input_command(&self, _offset: usize) -> Command<brotli::InputReference<'_>> {
[INFO] [stdout]     |                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/codec/interface.rs:940:26
[INFO] [stdout]     |
[INFO] [stdout] 940 |     fn get_input_command(&self, offset: usize) -> Command<brotli::InputReference> {
[INFO] [stdout]     |                          ^^^^^                            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 940 |     fn get_input_command(&self, offset: usize) -> Command<brotli::InputReference<'_>> {
[INFO] [stdout]     |                                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/codec/io.rs:48:20
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS] {
[INFO] [stdout]    |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS] {
[INFO] [stdout]    |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/brotli_ir_gen.rs:131:16
[INFO] [stdout]     |
[INFO] [stdout] 131 |         panic!(m)
[INFO] [stdout]     |                ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 131 |         panic!("{}", m)
[INFO] [stdout]     |                +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 131 -         panic!(m)
[INFO] [stdout] 131 +         std::panic::panic_any(m)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/brotli_ir_gen.rs:636:26
[INFO] [stdout]     |
[INFO] [stdout] 636 |     fn get_input_command(&self, offset:usize) -> Command<brotli::InputReference> {
[INFO] [stdout]     |                          ^^^^^                           ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 636 |     fn get_input_command(&self, offset:usize) -> Command<brotli::InputReference<'_>> {
[INFO] [stdout]     |                                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/divans_compressor.rs:179:26
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn get_input_command(&self, offset:usize) -> Command<InputReference> {
[INFO] [stdout]     |                          ^^^^^                           ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn get_input_command(&self, offset:usize) -> Command<InputReference<'_>> {
[INFO] [stdout]     |                                                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stdout]    --> src/divans_decompressor.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 282 | /         core::mem::replace(self,
[INFO] [stdout] 283 | |                            DivansDecompressor::Decode(
[INFO] [stdout] 284 | |                                DivansProcess::<DefaultDecoder, AllocU8, AllocCDF16, AllocCommand> {
[INFO] [stdout] 285 | |                                    codec:Some(codec),
[INFO] [stdout] ...   |
[INFO] [stdout] 288 | |                                    mcommand:mcommand,
[INFO] [stdout] 289 | |                                }));
[INFO] [stdout]     | |__________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 282 |         let _ = core::mem::replace(self,
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stdout]    --> src/ir_optimize/mod.rs:205:21
[INFO] [stdout]     |
[INFO] [stdout] 205 |                     core::mem::replace(copy, CopyCommand::nop());
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 205 |                     let _ = core::mem::replace(copy, CopyCommand::nop());
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stdout]    --> src/ir_optimize/mod.rs:219:21
[INFO] [stdout]     |
[INFO] [stdout] 219 |                     core::mem::replace(&mut item_a[0], Command::Copy(CopyCommand::nop())); // replace with a copy
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 219 |                     let _ = core::mem::replace(&mut item_a[0], Command::Copy(CopyCommand::nop())); // replace with a copy
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ir_optimize/statistics_tracking_codec.rs:174:26
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn get_input_command(&self, _offset:usize) -> brotli::interface::Command<brotli::InputReference> {
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here                   ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn get_input_command(&self, _offset:usize) -> brotli::interface::Command<brotli::InputReference<'_>> {
[INFO] [stdout]     |                                                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ir_optimize/statistics_tracking_codec.rs:185:26
[INFO] [stdout]     |
[INFO] [stdout] 185 |     fn get_input_command(&self, offset:usize) -> brotli::interface::Command<brotli::InputReference> {
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here                  ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 185 |     fn get_input_command(&self, offset:usize) -> brotli::interface::Command<brotli::InputReference<'_>> {
[INFO] [stdout]     |                                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ir_optimize/cache.rs:62:30
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn get_cache_hit_log(&mut self, cmd_offset:usize) -> CacheHitReference{
[INFO] [stdout]    |                              ^^^^^^^^^                       ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn get_cache_hit_log(&mut self, cmd_offset:usize) -> CacheHitReference<'_>{
[INFO] [stdout]    |                                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ir_optimize/cache.rs:69:30
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn get_cache_hit_log_mut(&mut self, cmd_offset:usize) -> CacheHitReferenceMut{
[INFO] [stdout]    |                              ^^^^^^^^^                       ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn get_cache_hit_log_mut(&mut self, cmd_offset:usize) -> CacheHitReferenceMut<'_>{
[INFO] [stdout]    |                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mux.rs:122:20
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS] {
[INFO] [stdout]     |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS] {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mux.rs:169:21
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn write_buffer(&mut self, m8: &mut AllocU8) -> [WritableBytes; NUM_STREAMS] { // FIXME: make this generic WRT NUM_STREAMS
[INFO] [stdout]     |                     ^^^^^^^^^                        ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn write_buffer(&mut self, m8: &mut AllocU8) -> [WritableBytes<'_>; NUM_STREAMS] { // FIXME: make this generic WRT NUM_STREAMS
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mux.rs:583:20
[INFO] [stdout]     |
[INFO] [stdout] 583 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS] {
[INFO] [stdout]     |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 583 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS] {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mux.rs:620:21
[INFO] [stdout]     |
[INFO] [stdout] 620 |     fn write_buffer(&mut self, _m8: &mut AllocU8) -> [WritableBytes; NUM_STREAMS] {
[INFO] [stdout]     |                     ^^^^^^^^^                         ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 620 |     fn write_buffer(&mut self, _m8: &mut AllocU8) -> [WritableBytes<'_>; NUM_STREAMS] {
[INFO] [stdout]     |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/threading.rs:327:20
[INFO] [stdout]     |
[INFO] [stdout] 327 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS] {
[INFO] [stdout]     |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 327 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS] {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/ffi/alloc_util.rs:213:5
[INFO] [stdout]     |
[INFO] [stdout] 213 |     Box::from_raw(slice_ref); // free on drop
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 213 |     let _ = Box::from_raw(slice_ref); // free on drop
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stdout]    --> src/ffi/compressor.rs:176:17
[INFO] [stdout]     |
[INFO] [stdout] 176 | /                 core::mem::replace(self,
[INFO] [stdout] 177 | |                                    CompressorState::InternalCompressor(
[INFO] [stdout] 178 | |                                        InternalCompressorFactory::new(
[INFO] [stdout] 179 | |                                            SubclassableAllocator::<u8>::new(allocators.clone()),
[INFO] [stdout] ...   |
[INFO] [stdout] 182 | |                                            opts,
[INFO] [stdout] 183 | |                                            ())));
[INFO] [stdout]     | |________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 176 |                 let _ = core::mem::replace(self,
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stdout]    --> src/ffi/compressor.rs:186:17
[INFO] [stdout]     |
[INFO] [stdout] 186 | /                 core::mem::replace(self,
[INFO] [stdout] 187 | |                                    CompressorState::BrotliCompressor(
[INFO] [stdout] 188 | |                                        BrotliFactory::new(
[INFO] [stdout] 189 | |                                            SubclassableAllocator::<u8>::new(allocators.clone()),
[INFO] [stdout] ...   |
[INFO] [stdout] 209 | |                                                SubclassableAllocator::<brotli::enc::StaticCommand>::new(allocators.clone()),
[INFO] [stdout] 210 | |                                            ))));
[INFO] [stdout]     | |_______________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 186 |                 let _ = core::mem::replace(self,
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling divans v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> examples/decompress.rs:25:28
[INFO] [stdout]    |
[INFO] [stdout] 25 |                     panic!(e);
[INFO] [stdout]    |                            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 25 |                     panic!("{}", e);
[INFO] [stdout]    |                            +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]    |
[INFO] [stdout] 25 -                     panic!(e);
[INFO] [stdout] 25 +                     std::panic::panic_any(e);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> examples/decompress.rs:32:42
[INFO] [stdout]    |
[INFO] [stdout] 32 |                         Err(e) => panic!(e),
[INFO] [stdout]    |                                          ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 32 |                         Err(e) => panic!("{}", e),
[INFO] [stdout]    |                                          +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]    |
[INFO] [stdout] 32 -                         Err(e) => panic!(e),
[INFO] [stdout] 32 +                         Err(e) => std::panic::panic_any(e),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `no-stdlib-rlib`
[INFO] [stdout]   --> src/bin/divans.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[cfg(feature="no-stdlib-rlib")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = help: consider adding `no-stdlib-rlib` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `no-stdlib-rlib`
[INFO] [stdout]   --> src/bin/divans.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[cfg(not(feature="no-stdlib-rlib"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = help: consider adding `no-stdlib-rlib` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/bin/integration_test.rs:71:3
[INFO] [stdout]    |
[INFO] [stdout] 71 |   try!(super::recode(&mut brotli_file,
[INFO] [stdout]    |   ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `inplace-new`
[INFO] [stdout]   --> src/bin/util.rs:49:7
[INFO] [stdout]    |
[INFO] [stdout] 49 | #[cfg(feature="inplace-new")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = help: consider adding `inplace-new` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `inplace-new`
[INFO] [stdout]   --> src/bin/util.rs:73:11
[INFO] [stdout]    |
[INFO] [stdout] 73 | #[cfg(not(feature="inplace-new"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = help: consider adding `inplace-new` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bin/divans.rs:455:20
[INFO] [stdout]     |
[INFO] [stdout] 455 |         let data = try!(util::literal_slice_to_vec(&s.as_bytes()[command_vec[0].len() + command_vec[1].len() + 2..]));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bin/divans.rs:457:24
[INFO] [stdout]     |
[INFO] [stdout] 457 |             let prob = try!(util::hex_slice_to_vec(command_vec[3].as_bytes()));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bin/divans.rs:659:21
[INFO] [stdout]     |
[INFO] [stdout] 659 |                     try!(recode_cmd_buffer(&mut state, ibuffer.split_at(i_read_index).0, w,
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bin/divans.rs:671:23
[INFO] [stdout]     |
[INFO] [stdout] 671 |                 match try!(command_parse(&line)) {
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bin/divans.rs:956:31
[INFO] [stdout]     |
[INFO] [stdout] 956 |                 window_size = try!(window_parse(&line));
[INFO] [stdout]     |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]     --> src/bin/divans.rs:1013:46
[INFO] [stdout]      |
[INFO] [stdout] 1013 |     let mut obuffer = vec![0u8; buffer_size];;
[INFO] [stdout]      |                                              ^ help: remove this semicolon
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bin/divans.rs:718:63
[INFO] [stdout]     |
[INFO] [stdout] 718 | ...                   free_state: &mut Fn(Compressor)->ItemVecAllocator<u8>) -> io::Result<()> {
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 718 |                                              free_state: &mut dyn Fn(Compressor)->ItemVecAllocator<u8>) -> io::Result<()> {
[INFO] [stdout]     |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> examples/compress.rs:42:28
[INFO] [stdout]    |
[INFO] [stdout] 42 |                     panic!(e);
[INFO] [stdout]    |                            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 42 |                     panic!("{}", e);
[INFO] [stdout]    |                            +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]    |
[INFO] [stdout] 42 -                     panic!(e);
[INFO] [stdout] 42 +                     std::panic::panic_any(e);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> examples/compress.rs:51:40
[INFO] [stdout]    |
[INFO] [stdout] 51 | ...                   panic!(e)
[INFO] [stdout]    |                              ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 51 |                                 panic!("{}", e)
[INFO] [stdout]    |                                        +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]    |
[INFO] [stdout] 51 -                                 panic!(e)
[INFO] [stdout] 51 +                                 std::panic::panic_any(e)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> examples/compress.rs:57:42
[INFO] [stdout]    |
[INFO] [stdout] 57 |                         Err(e) => panic!(e),
[INFO] [stdout]    |                                          ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 57 |                         Err(e) => panic!("{}", e),
[INFO] [stdout]    |                                          +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]    |
[INFO] [stdout] 57 -                         Err(e) => panic!(e),
[INFO] [stdout] 57 +                         Err(e) => std::panic::panic_any(e),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/util_prior_stream_cost.rs:37:21
[INFO] [stdout]    |
[INFO] [stdout] 37 |                 let mut prior_val: Vec<String> = if let Some(_) = line.find(",") {
[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]   --> examples/util_prior_stream_cost.rs:65:21
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 let mut prior_stream = &mut sub_streams.entry(prior).or_insert(vec::Vec::<u8>::new());
[INFO] [stdout]    |                     ----^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bin/divans.rs:103:32
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn cause(&self) -> Option<&error::Error> {None}
[INFO] [stdout]     |                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn cause(&self) -> Option<&dyn error::Error> {None}
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:169:43
[INFO] [stdout]     |
[INFO] [stdout] 169 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:329:47
[INFO] [stdout]     |
[INFO] [stdout] 329 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:350:60
[INFO] [stdout]     |
[INFO] [stdout] 350 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:366:47
[INFO] [stdout]     |
[INFO] [stdout] 366 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:377:47
[INFO] [stdout]     |
[INFO] [stdout] 377 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:393:47
[INFO] [stdout]     |
[INFO] [stdout] 393 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:409:47
[INFO] [stdout]     |
[INFO] [stdout] 409 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:416:47
[INFO] [stdout]     |
[INFO] [stdout] 416 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:425:55
[INFO] [stdout]     |
[INFO] [stdout] 425 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/bin/divans.rs:449:51
[INFO] [stdout]     |
[INFO] [stdout] 449 | ...                   msg.description()));
[INFO] [stdout]     |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestContextMixingPureAverage` is never constructed
[INFO] [stdout]    --> src/bin/benchmark.rs:145:8
[INFO] [stdout]     |
[INFO] [stdout] 145 | struct TestContextMixingPureAverage{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestSimple` is never constructed
[INFO] [stdout]    --> src/bin/benchmark.rs:153:8
[INFO] [stdout]     |
[INFO] [stdout] 153 | struct TestSimple{
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rebox` is never constructed
[INFO] [stdout]    --> src/bin/util.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct Rebox<T> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HeapAllocator` is never constructed
[INFO] [stdout]    --> src/bin/util.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub struct HeapAllocator<T: core::clone::Clone> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/bin/integration_test.rs:222:24
[INFO] [stdout]     |
[INFO] [stdout] 222 |         need => panic!(need),
[INFO] [stdout]     |                        ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{:?}" format string to use the `Debug` implementation of `DivansOutputResult`
[INFO] [stdout]     |
[INFO] [stdout] 222 |         need => panic!("{:?}", need),
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 222 -         need => panic!(need),
[INFO] [stdout] 222 +         need => std::panic::panic_any(need),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stdout]  --> src/probability/numeric.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[cfg(not(feature="division_table_gen"))]
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]   = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stdout]  --> src/probability/numeric.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[cfg(not(feature="division_table_gen"))]
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]   = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stdout]  --> src/probability/numeric.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[cfg(feature="division_table_gen")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]   = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stdout]   --> src/probability/numeric.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[cfg(not(feature="division_table_gen"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stdout]   --> src/probability/numeric.rs:54:11
[INFO] [stdout]    |
[INFO] [stdout] 54 | #[cfg(not(feature="division_table_gen"))]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/arithmetic_coder.rs:25:29
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn push_data(&mut self, &[u8]) -> usize;
[INFO] [stdout]    |                             ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &[u8]`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/arithmetic_coder.rs:27:28
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn pop_data(&mut self, &mut [u8]) -> usize;
[INFO] [stdout]    |                            ^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &mut [u8]`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory`, `Allocator`, and `StackAllocator`
[INFO] [stdout]   --> src/cmd_to_raw/mod.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[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 imports: `AllocatedStackMemory`, `SliceWrapperMut`, `SliceWrapper`, and `StackAllocator`
[INFO] [stdout]   --> src/raw_to_cmd/hash_match.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^             ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory` and `StackAllocator`
[INFO] [stdout]   --> src/raw_to_cmd/mod.rs:19:17
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::slice_util::SliceReference`
[INFO] [stdout]   --> src/raw_to_cmd/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use super::slice_util::SliceReference;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CopyCommand` and `DictCommand`
[INFO] [stdout]   --> src/raw_to_cmd/mod.rs:22:91
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use super::interface::{PredictionModeContextMap, Command, Compressor, LiteralCommand, CopyCommand, DictCommand, FeatureFlagSlice...
[INFO] [stdout]    |                                                                                           ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `features`
[INFO] [stdout]   --> src/codec/weights.rs:84:7
[INFO] [stdout]    |
[INFO] [stdout] 84 | #[cfg(features="floating_point_context_mixing")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] help: there is a config with a similar name and different values
[INFO] [stdout]    |
[INFO] [stdout] 84 - #[cfg(features="floating_point_context_mixing")]
[INFO] [stdout] 84 + #[cfg(feature = "avoid-divide")]
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `features`
[INFO] [stdout]    --> src/codec/weights.rs:108:11
[INFO] [stdout]     |
[INFO] [stdout] 108 | #[cfg(not(features="floating_point_context_mixing"))]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] help: there is a config with a similar name and different values
[INFO] [stdout]     |
[INFO] [stdout] 108 - #[cfg(not(features="floating_point_context_mixing"))]
[INFO] [stdout] 108 + #[cfg(not(feature = "avoid-divide"))]
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CrossCommandBookKeeping`
[INFO] [stdout]  --> src/codec/specializations.rs:3:28
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use super::interface::{CrossCommandBookKeeping,LiteralBookKeeping};
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:87:68
[INFO] [stdout]    |
[INFO] [stdout] 87 |     fn get_source_copy_command<'a, ISlice:SliceWrapper<u8>>(&self, &'a Command<ISlice>, &'a CopyCommand) -> &'a CopyCommand;
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command<ISlice>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:87:89
[INFO] [stdout]    |
[INFO] [stdout] 87 |     fn get_source_copy_command<'a, ISlice:SliceWrapper<u8>>(&self, &'a Command<ISlice>, &'a CopyCommand) -> &'a CopyCommand;
[INFO] [stdout]    |                                                                                         ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a CopyCommand`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:88:79
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn get_source_literal_command<'a, ISlice:SliceWrapper<u8>+Default>(&self, &'a Command<ISlice>,
[INFO] [stdout]    |                                                                               ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command<ISlice>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:89:72
[INFO] [stdout]    |
[INFO] [stdout] 89 | ...                   &'a LiteralCommand<ISlice>) -> &'a LiteralCommand<ISlice>;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a LiteralCommand<ISlice>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:90:68
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn get_source_dict_command<'a, ISlice:SliceWrapper<u8>>(&self, &'a Command<ISlice>, &'a DictCommand) -> &'a DictCommand;
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command<ISlice>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/codec/interface.rs:90:89
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn get_source_dict_command<'a, ISlice:SliceWrapper<u8>>(&self, &'a Command<ISlice>, &'a DictCommand) -> &'a DictCommand;
[INFO] [stdout]    |                                                                                         ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a DictCommand`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CrossCommandBookKeeping`
[INFO] [stdout]   --> src/codec/mod.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     CrossCommandBookKeeping,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/ans.rs:139:24
[INFO] [stdout]     |
[INFO] [stdout] 139 | const SCALE_MASK:u64 = ((1u64 << LOG2_SCALE) - 1);
[INFO] [stdout]     |                        ^                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 139 - const SCALE_MASK:u64 = ((1u64 << LOG2_SCALE) - 1);
[INFO] [stdout] 139 + const SCALE_MASK:u64 = (1u64 << LOG2_SCALE) - 1;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory`, `SliceWrapperMut`, and `StackAllocator`
[INFO] [stdout]   --> src/brotli_ir_gen.rs:21:24
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use super::alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^                           ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockSwitch`, `CopyCommand`, `Decompressor`, `DictCommand`, `FeatureFlagSliceType`, `LiteralBlockSwitch`, `LiteralCommand`, `LiteralPredictionModeNibble`, `Nop`, and `free_cmd`
[INFO] [stdout]   --> src/brotli_ir_gen.rs:22:28
[INFO] [stdout]    |
[INFO] [stdout] 22 | ...::{BlockSwitch, LiteralBlockSwitch, Command, Compressor, CopyCommand, Decompressor, DictCommand, LiteralCommand, Nop, NewWithAllocator, ArithmeticEncoderOrDecoder, LiteralPredictionModeNibble, PredictionModeContextMap, free_cmd, FeatureFlagSliceType,
[INFO] [stdout]    |       ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^                       ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^                            ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EncoderOrDecoderSpecialization` and `StrideSelection`
[INFO] [stdout]   --> src/brotli_ir_gen.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub use codec::{EncoderOrDecoderSpecialization, DivansCodec, StrideSelection};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory` and `StackAllocator`
[INFO] [stdout]   --> src/divans_compressor.rs:26:24
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use super::alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BlockSwitch`, `CopyCommand`, `Decompressor`, `DictCommand`, `LiteralBlockSwitch`, `LiteralPredictionModeNibble`, `Nop`, and `free_cmd`
[INFO] [stdout]   --> src/divans_compressor.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     BlockSwitch,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 33 |     LiteralBlockSwitch,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     CopyCommand,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 37 |     Decompressor,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 38 |     DictCommand,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 39 |     LiteralCommand,
[INFO] [stdout] 40 |     Nop,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     LiteralPredictionModeNibble,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     free_cmd,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EncoderOrDecoderSpecialization`, `StrideSelection`, and `default_crc`
[INFO] [stdout]   --> src/divans_compressor.rs:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub use codec::{EncoderOrDecoderSpecialization, DivansCodec, StrideSelection, default_crc, CommandArray, CommandSliceArray};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^               ^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub extern fn divans_new_compressor() -> *mut compressor::DivansCompressorState{
[INFO] [stdout]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub unsafe extern fn divans_new_compressor_with_custom_alloc(allocators:CAllocator) -> *mut DivansCompressorState{
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub unsafe extern fn divans_set_option(state_ptr: *mut DivansCompressorState,
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub unsafe extern fn divans_encode(state_ptr: *mut DivansCompressorState,
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/ffi/mod.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub unsafe extern fn divans_encode_flush(state_ptr: *mut DivansCompressorState,
[INFO] [stdout]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub unsafe extern fn divans_compressor_malloc_u8(state_ptr: *mut DivansCompressorState, size: usize) -> *mut u8 {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub unsafe extern fn divans_compressor_free_u8(state_ptr: *mut DivansCompressorState, data: *mut u8, size: usize) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub unsafe extern fn divans_compressor_malloc_usize(state_ptr: *mut DivansCompressorState, size: usize) -> *mut usize {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub unsafe extern fn divans_compressor_free_usize(state_ptr: *mut DivansCompressorState, data: *mut usize, size: usize) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub unsafe extern fn divans_free_compressor(state_ptr: *mut DivansCompressorState) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:178:5
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub extern fn divans_new_decompressor() -> *mut DivansDecompressorState{
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub extern fn divans_new_serial_decompressor() -> *mut DivansDecompressorState{
[INFO] [stdout]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:213:12
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub unsafe extern fn divans_new_decompressor_with_custom_alloc(allocators:CAllocator, skip_crc:u8, multithread: u8) -> *mut DivansD...
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:236:12
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub unsafe extern fn divans_decode(state_ptr: *mut DivansDecompressorState,
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:276:12
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub unsafe extern fn divans_decompressor_malloc_u8(state_ptr: *mut DivansDecompressorState, size: usize) -> *mut u8 {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:285:12
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub unsafe extern fn divans_decompressor_free_u8(state_ptr: *mut DivansDecompressorState, data: *mut u8, size: usize) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout] 294 | pub unsafe extern fn divans_decompressor_malloc_usize(state_ptr: *mut DivansDecompressorState, size: usize) -> *mut usize {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:303:12
[INFO] [stdout]     |
[INFO] [stdout] 303 | pub unsafe extern fn divans_decompressor_free_usize(state_ptr: *mut DivansDecompressorState, data: *mut usize, size: usize) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/ffi/mod.rs:312:12
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub unsafe extern fn divans_free_decompressor(state_ptr: *mut DivansDecompressorState) {
[INFO] [stdout]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory` and `StackAllocator`
[INFO] [stdout]  --> src/reader.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AllocatedStackMemory` and `StackAllocator`
[INFO] [stdout]  --> src/writer.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/reader.rs:24:32
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn cause(&self) -> Option<&error::Error> {None}
[INFO] [stdout]    |                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn cause(&self) -> Option<&dyn error::Error> {None}
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:256:5
[INFO] [stdout]     |
[INFO] [stdout] 256 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 258 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 262 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 264 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:268:5
[INFO] [stdout]     |
[INFO] [stdout] 268 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:272:5
[INFO] [stdout]     |
[INFO] [stdout] 272 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:274:5
[INFO] [stdout]     |
[INFO] [stdout] 274 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:276:5
[INFO] [stdout]     |
[INFO] [stdout] 276 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 278 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:280:5
[INFO] [stdout]     |
[INFO] [stdout] 280 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:282:5
[INFO] [stdout]     |
[INFO] [stdout] 282 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:286:5
[INFO] [stdout]     |
[INFO] [stdout] 286 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 288 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:368:5
[INFO] [stdout]     |
[INFO] [stdout] 368 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:386:5
[INFO] [stdout]     |
[INFO] [stdout] 386 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:390:5
[INFO] [stdout]     |
[INFO] [stdout] 390 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:393:5
[INFO] [stdout]     |
[INFO] [stdout] 393 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]    --> src/interface.rs:405:5
[INFO] [stdout]     |
[INFO] [stdout] 405 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/arithmetic_coder.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/arithmetic_coder.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/arithmetic_coder.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/arithmetic_coder.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stdout]   --> src/threading.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on use statements
[INFO] [stdout]  --> src/ffi/mod.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[no_mangle]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[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]   = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on type aliases
[INFO] [stdout]  --> src/ffi/interface.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[no_mangle]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[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]   = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on structs
[INFO] [stdout]   --> src/ffi/interface.rs:41:1
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[no_mangle]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[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]    = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on structs
[INFO] [stdout]    --> src/ffi/compressor.rs:267:1
[INFO] [stdout]     |
[INFO] [stdout] 267 | #[no_mangle]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     |
[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]     = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[no_mangle]` attribute cannot be used on structs
[INFO] [stdout]  --> src/ffi/decompressor.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[no_mangle]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[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]   = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/codec/copy.rs:91:25
[INFO] [stdout]    |
[INFO] [stdout] 91 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:112:25
[INFO] [stdout]     |
[INFO] [stdout] 112 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:129:25
[INFO] [stdout]     |
[INFO] [stdout] 129 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:145:25
[INFO] [stdout]     |
[INFO] [stdout] 145 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:175:29
[INFO] [stdout]     |
[INFO] [stdout] 175 |                         let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:204:25
[INFO] [stdout]     |
[INFO] [stdout] 204 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:231:25
[INFO] [stdout]     |
[INFO] [stdout] 231 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:250:33
[INFO] [stdout]     |
[INFO] [stdout] 250 | ...                   let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/dict.rs:84:25
[INFO] [stdout]    |
[INFO] [stdout] 84 |                     let mut nibble_prob = superstate.bk.dict_priors.get(DictCommandNibblePriorType::SizeBegNib, (ctype,));
[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/codec/dict.rs:100:25
[INFO] [stdout]     |
[INFO] [stdout] 100 |                     let mut nibble_prob = superstate.bk.dict_priors.get(DictCommandNibblePriorType::SizeLastNib, (ctype,));
[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/codec/dict.rs:119:25
[INFO] [stdout]     |
[INFO] [stdout] 119 |                     let mut nibble_prob = superstate.bk.dict_priors.get(
[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/codec/dict.rs:139:25
[INFO] [stdout]     |
[INFO] [stdout] 139 |                     let mut nibble_prob = superstate.bk.dict_priors.get(DictCommandNibblePriorType::Transform,
[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/codec/dict.rs:150:25
[INFO] [stdout]     |
[INFO] [stdout] 150 |                     let mut nibble_prob = superstate.bk.dict_priors.get(DictCommandNibblePriorType::Transform,
[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/codec/literal.rs:294:16
[INFO] [stdout]     |
[INFO] [stdout] 294 |            let mut byte_to_encode_val = specialization.get_literal_byte(in_cmd,
[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/codec/literal.rs:572:25
[INFO] [stdout]     |
[INFO] [stdout] 572 |                     let mut nibble_prob = superstate.bk.lit_len_priors.get(
[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/codec/literal.rs:600:25
[INFO] [stdout]     |
[INFO] [stdout] 600 |                     let mut nibble_prob = superstate.bk.lit_len_priors.get(LiteralCommandPriorType::SizeBegNib, (ctype,));
[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/codec/literal.rs:625:25
[INFO] [stdout]     |
[INFO] [stdout] 625 |                     let mut nibble_prob = superstate.bk.lit_len_priors.get(LiteralCommandPriorType::SizeLastNib, (ctype,));
[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/codec/literal.rs:640:25
[INFO] [stdout]     |
[INFO] [stdout] 640 |                     let mut nibble_prob = superstate.bk.lit_len_priors.get(LiteralCommandPriorType::SizeMantissaNib, (ctype,));
[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/codec/literal.rs:707:30
[INFO] [stdout]     |
[INFO] [stdout] 707 |                         Some(mut lc) => {
[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/codec/context_map.rs:174:28
[INFO] [stdout]     |
[INFO] [stdout] 174 |                        let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::Only, (0,));
[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/codec/context_map.rs:195:28
[INFO] [stdout]     |
[INFO] [stdout] 195 |                        let mut nibble_prob = superstate.bk.prediction_priors.get(
[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/codec/context_map.rs:211:28
[INFO] [stdout]     |
[INFO] [stdout] 211 |                        let mut nibble_prob = superstate.bk.prediction_priors.get(
[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/codec/context_map.rs:235:24
[INFO] [stdout]     |
[INFO] [stdout] 235 |                    let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::ContextMapSpeedPalette,
[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/codec/context_map.rs:291:28
[INFO] [stdout]     |
[INFO] [stdout] 291 | ...   let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::Mnemonic, (context_map_type as usize,));
[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/codec/context_map.rs:320:28
[INFO] [stdout]     |
[INFO] [stdout] 320 |                        let mut out_context_map = match context_map_type {
[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/codec/context_map.rs:343:24
[INFO] [stdout]     |
[INFO] [stdout] 343 | ...   let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::FirstNibble, (context_map_type as usize,));
[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/codec/context_map.rs:363:28
[INFO] [stdout]     |
[INFO] [stdout] 363 | ...   let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::SecondNibble, (context_map_type as usize,));
[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/codec/context_map.rs:371:24
[INFO] [stdout]     |
[INFO] [stdout] 371 |                    let mut out_context_map = match context_map_type {
[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/codec/context_map.rs:395:24
[INFO] [stdout]     |
[INFO] [stdout] 395 |                    let mut prior = if index >= 256 && self.pm.has_context_speeds() {
[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/codec/context_map.rs:401:28
[INFO] [stdout]     |
[INFO] [stdout] 401 |                        let mut nibble_prob = superstate.bk.prediction_priors.get(
[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/codec/block_type.rs:72:25
[INFO] [stdout]    |
[INFO] [stdout] 72 |                     let mut nibble_prob = superstate.bk.btype_priors.get(BlockTypePriorType::Mnemonic,
[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/codec/block_type.rs:88:25
[INFO] [stdout]    |
[INFO] [stdout] 88 |                     let mut nibble_prob = superstate.bk.btype_priors.get(BlockTypePriorType::FirstNibble,
[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/codec/block_type.rs:97:25
[INFO] [stdout]    |
[INFO] [stdout] 97 |                     let mut nibble_prob = superstate.bk.btype_priors.get(BlockTypePriorType::SecondNibble,
[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/codec/block_type.rs:181:25
[INFO] [stdout]     |
[INFO] [stdout] 181 |                     let mut nibble_prob = superstate.bk.btype_priors.get(BlockTypePriorType::StrideNibble,
[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/test_ans.rs:215:17
[INFO] [stdout]     |
[INFO] [stdout] 215 |             let mut q = e.get_internal_buffer_mut();
[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/test_ans.rs:237:13
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let mut q = e.get_internal_buffer_mut();
[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/test_ans.rs:317:17
[INFO] [stdout]     |
[INFO] [stdout] 317 |             let mut q = d.get_internal_buffer_mut();
[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/test_ans.rs:338:13
[INFO] [stdout]     |
[INFO] [stdout] 338 |         let mut q = d.get_internal_buffer_mut();
[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/test_ans.rs:380:17
[INFO] [stdout]     |
[INFO] [stdout] 380 |             let mut q = e.get_internal_buffer_mut();
[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/test_ans.rs:443:17
[INFO] [stdout]     |
[INFO] [stdout] 443 |             let mut q = d.get_internal_buffer_mut();
[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/ir_optimize/mod.rs:198:21
[INFO] [stdout]     |
[INFO] [stdout] 198 |                 let mut should_merge = match should_merge(lit, copy, index, mb, &mut actuary, &mut distance_cache) {
[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/mux.rs:463:20
[INFO] [stdout]     |
[INFO] [stdout] 463 |                let mut is_lagging = max_flush  > MAX_FLUSH_VARIANCE + self.last_flush[index];
[INFO] [stdout]     |                    ----^^^^^^^^^^
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `FixedRegister` is never used
[INFO] [stdout]   --> src/arithmetic_coder.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type FixedRegister = u64;
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RegisterQueue` is never constructed
[INFO] [stdout]   --> src/arithmetic_coder.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct RegisterQueue {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `put_8bit` is never used
[INFO] [stdout]    --> src/arithmetic_coder.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout]  84 | pub trait EntropyEncoder {
[INFO] [stdout]     |           -------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 122 |     fn put_8bit(&mut self,
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DebugEncoder` is never constructed
[INFO] [stdout]   --> src/debug_encoder.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct DebugEncoder {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DebugDecoder` is never constructed
[INFO] [stdout]   --> src/debug_encoder.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct DebugDecoder {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mov_internal` is never used
[INFO] [stdout]   --> src/debug_encoder.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl DebugEncoder {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 79 |     fn mov_internal(&mut self) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/multithreading.rs:52:20
[INFO] [stdout]    |
[INFO] [stdout] 52 | struct ThreadEvent(ThreadEventType, u32, Duration);
[INFO] [stdout]    |        ----------- ^^^^^^^^^^^^^^^  ^^^  ^^^^^^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout]    = note: `ThreadEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `read_offset` is never read
[INFO] [stdout]    --> src/writer.rs:294:13
[INFO] [stdout]     |
[INFO] [stdout] 292 |     pub struct UnlimitedBuffer {
[INFO] [stdout]     |                --------------- field in this struct
[INFO] [stdout] 293 |         pub data: Vec<u8>,
[INFO] [stdout] 294 |         pub read_offset: usize,
[INFO] [stdout]     |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/interface.rs:259:21
[INFO] [stdout]     |
[INFO] [stdout] 259 |     fn write_buffer(&mut self, m8: &mut AllocU8) -> [WritableBytes; NUM_STREAMS];
[INFO] [stdout]     |                     ^^^^^^^^^                        ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 259 |     fn write_buffer(&mut self, m8: &mut AllocU8) -> [WritableBytes<'_>; NUM_STREAMS];
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/interface.rs:275:20
[INFO] [stdout]     |
[INFO] [stdout] 275 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS];
[INFO] [stdout]     |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 275 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS];
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]   --> src/probability/numeric.rs:78:23
[INFO] [stdout]    |
[INFO] [stdout] 78 |         for n in nums.into_iter() {
[INFO] [stdout]    |                       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]    = note: `#[warn(array_into_iter)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]    |
[INFO] [stdout] 78 -         for n in nums.into_iter() {
[INFO] [stdout] 78 +         for n in nums.iter() {
[INFO] [stdout]    |
[INFO] [stdout] help: or remove `.into_iter()` to iterate by value
[INFO] [stdout]    |
[INFO] [stdout] 78 -         for n in nums.into_iter() {
[INFO] [stdout] 78 +         for n in nums {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stdout]   --> src/probability/numeric.rs:79:29
[INFO] [stdout]    |
[INFO] [stdout] 79 |             for d in denoms.into_iter() {
[INFO] [stdout]    |                             ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this changes meaning in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]    |
[INFO] [stdout] 79 -             for d in denoms.into_iter() {
[INFO] [stdout] 79 +             for d in denoms.iter() {
[INFO] [stdout]    |
[INFO] [stdout] help: or remove `.into_iter()` to iterate by value
[INFO] [stdout]    |
[INFO] [stdout] 79 -             for d in denoms.into_iter() {
[INFO] [stdout] 79 +             for d in denoms {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/codec/interface.rs:920:26
[INFO] [stdout]     |
[INFO] [stdout] 920 |     fn get_input_command(&self, offset: usize) -> Command<brotli::InputReference>;
[INFO] [stdout]     |                          ^^^^^                            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 920 |     fn get_input_command(&self, offset: usize) -> Command<brotli::InputReference<'_>>;
[INFO] [stdout]     |                                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/codec/interface.rs:928:26
[INFO] [stdout]     |
[INFO] [stdout] 928 |     fn get_input_command(&self, _offset: usize) -> Command<brotli::InputReference> {
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 928 |     fn get_input_command(&self, _offset: usize) -> Command<brotli::InputReference<'_>> {
[INFO] [stdout]     |                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/codec/interface.rs:940:26
[INFO] [stdout]     |
[INFO] [stdout] 940 |     fn get_input_command(&self, offset: usize) -> Command<brotli::InputReference> {
[INFO] [stdout]     |                          ^^^^^                            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 940 |     fn get_input_command(&self, offset: usize) -> Command<brotli::InputReference<'_>> {
[INFO] [stdout]     |                                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/codec/io.rs:48:20
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS] {
[INFO] [stdout]    |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS] {
[INFO] [stdout]    |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/brotli_ir_gen.rs:131:16
[INFO] [stdout]     |
[INFO] [stdout] 131 |         panic!(m)
[INFO] [stdout]     |                ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 131 |         panic!("{}", m)
[INFO] [stdout]     |                +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 131 -         panic!(m)
[INFO] [stdout] 131 +         std::panic::panic_any(m)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/brotli_ir_gen.rs:636:26
[INFO] [stdout]     |
[INFO] [stdout] 636 |     fn get_input_command(&self, offset:usize) -> Command<brotli::InputReference> {
[INFO] [stdout]     |                          ^^^^^                           ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 636 |     fn get_input_command(&self, offset:usize) -> Command<brotli::InputReference<'_>> {
[INFO] [stdout]     |                                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/divans_compressor.rs:179:26
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn get_input_command(&self, offset:usize) -> Command<InputReference> {
[INFO] [stdout]     |                          ^^^^^                           ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn get_input_command(&self, offset:usize) -> Command<InputReference<'_>> {
[INFO] [stdout]     |                                                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stdout]    --> src/divans_decompressor.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 282 | /         core::mem::replace(self,
[INFO] [stdout] 283 | |                            DivansDecompressor::Decode(
[INFO] [stdout] 284 | |                                DivansProcess::<DefaultDecoder, AllocU8, AllocCDF16, AllocCommand> {
[INFO] [stdout] 285 | |                                    codec:Some(codec),
[INFO] [stdout] ...   |
[INFO] [stdout] 288 | |                                    mcommand:mcommand,
[INFO] [stdout] 289 | |                                }));
[INFO] [stdout]     | |__________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 282 |         let _ = core::mem::replace(self,
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stdout]    --> src/ir_optimize/mod.rs:205:21
[INFO] [stdout]     |
[INFO] [stdout] 205 |                     core::mem::replace(copy, CopyCommand::nop());
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 205 |                     let _ = core::mem::replace(copy, CopyCommand::nop());
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stdout]    --> src/ir_optimize/mod.rs:219:21
[INFO] [stdout]     |
[INFO] [stdout] 219 |                     core::mem::replace(&mut item_a[0], Command::Copy(CopyCommand::nop())); // replace with a copy
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 219 |                     let _ = core::mem::replace(&mut item_a[0], Command::Copy(CopyCommand::nop())); // replace with a copy
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ir_optimize/statistics_tracking_codec.rs:174:26
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn get_input_command(&self, _offset:usize) -> brotli::interface::Command<brotli::InputReference> {
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here                   ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn get_input_command(&self, _offset:usize) -> brotli::interface::Command<brotli::InputReference<'_>> {
[INFO] [stdout]     |                                                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/ir_optimize/statistics_tracking_codec.rs:185:26
[INFO] [stdout]     |
[INFO] [stdout] 185 |     fn get_input_command(&self, offset:usize) -> brotli::interface::Command<brotli::InputReference> {
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here                  ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 185 |     fn get_input_command(&self, offset:usize) -> brotli::interface::Command<brotli::InputReference<'_>> {
[INFO] [stdout]     |                                                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ir_optimize/cache.rs:62:30
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn get_cache_hit_log(&mut self, cmd_offset:usize) -> CacheHitReference{
[INFO] [stdout]    |                              ^^^^^^^^^                       ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn get_cache_hit_log(&mut self, cmd_offset:usize) -> CacheHitReference<'_>{
[INFO] [stdout]    |                                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/ir_optimize/cache.rs:69:30
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn get_cache_hit_log_mut(&mut self, cmd_offset:usize) -> CacheHitReferenceMut{
[INFO] [stdout]    |                              ^^^^^^^^^                       ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn get_cache_hit_log_mut(&mut self, cmd_offset:usize) -> CacheHitReferenceMut<'_>{
[INFO] [stdout]    |                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mux.rs:122:20
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS] {
[INFO] [stdout]     |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 122 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS] {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mux.rs:169:21
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn write_buffer(&mut self, m8: &mut AllocU8) -> [WritableBytes; NUM_STREAMS] { // FIXME: make this generic WRT NUM_STREAMS
[INFO] [stdout]     |                     ^^^^^^^^^                        ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn write_buffer(&mut self, m8: &mut AllocU8) -> [WritableBytes<'_>; NUM_STREAMS] { // FIXME: make this generic WRT NUM_STREAMS
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mux.rs:583:20
[INFO] [stdout]     |
[INFO] [stdout] 583 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS] {
[INFO] [stdout]     |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 583 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS] {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mux.rs:620:21
[INFO] [stdout]     |
[INFO] [stdout] 620 |     fn write_buffer(&mut self, _m8: &mut AllocU8) -> [WritableBytes; NUM_STREAMS] {
[INFO] [stdout]     |                     ^^^^^^^^^                         ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 620 |     fn write_buffer(&mut self, _m8: &mut AllocU8) -> [WritableBytes<'_>; NUM_STREAMS] {
[INFO] [stdout]     |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/threading.rs:327:20
[INFO] [stdout]     |
[INFO] [stdout] 327 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS] {
[INFO] [stdout]     |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 327 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS] {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/ffi/alloc_util.rs:213:5
[INFO] [stdout]     |
[INFO] [stdout] 213 |     Box::from_raw(slice_ref); // free on drop
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 213 |     let _ = Box::from_raw(slice_ref); // free on drop
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stdout]    --> src/ffi/compressor.rs:176:17
[INFO] [stdout]     |
[INFO] [stdout] 176 | /                 core::mem::replace(self,
[INFO] [stdout] 177 | |                                    CompressorState::InternalCompressor(
[INFO] [stdout] 178 | |                                        InternalCompressorFactory::new(
[INFO] [stdout] 179 | |                                            SubclassableAllocator::<u8>::new(allocators.clone()),
[INFO] [stdout] ...   |
[INFO] [stdout] 182 | |                                            opts,
[INFO] [stdout] 183 | |                                            ())));
[INFO] [stdout]     | |________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 176 |                 let _ = core::mem::replace(self,
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stdout]    --> src/ffi/compressor.rs:186:17
[INFO] [stdout]     |
[INFO] [stdout] 186 | /                 core::mem::replace(self,
[INFO] [stdout] 187 | |                                    CompressorState::BrotliCompressor(
[INFO] [stdout] 188 | |                                        BrotliFactory::new(
[INFO] [stdout] 189 | |                                            SubclassableAllocator::<u8>::new(allocators.clone()),
[INFO] [stdout] ...   |
[INFO] [stdout] 209 | |                                                SubclassableAllocator::<brotli::enc::StaticCommand>::new(allocators.clone()),
[INFO] [stdout] 210 | |                                            ))));
[INFO] [stdout]     | |_______________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 186 |                 let _ = core::mem::replace(self,
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/reader.rs:401:32
[INFO] [stdout]     |
[INFO] [stdout] 401 |                         panic!(e)
[INFO] [stdout]     |                                ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 401 |                         panic!("{}", e)
[INFO] [stdout]     |                                +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 401 -                         panic!(e)
[INFO] [stdout] 401 +                         std::panic::panic_any(e)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/reader.rs:431:38
[INFO] [stdout]     |
[INFO] [stdout] 431 |                     Err(e) => panic!(e),
[INFO] [stdout]     |                                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 431 |                     Err(e) => panic!("{}", e),
[INFO] [stdout]     |                                      +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 431 -                     Err(e) => panic!(e),
[INFO] [stdout] 431 +                     Err(e) => std::panic::panic_any(e),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/writer.rs:364:38
[INFO] [stdout]     |
[INFO] [stdout] 364 |                     Err(e) => panic!(e),
[INFO] [stdout]     |                                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 364 |                     Err(e) => panic!("{}", e),
[INFO] [stdout]     |                                      +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 364 -                     Err(e) => panic!(e),
[INFO] [stdout] 364 +                     Err(e) => std::panic::panic_any(e),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/writer.rs:374:25
[INFO] [stdout]     |
[INFO] [stdout] 374 |                  panic!(e);
[INFO] [stdout]     |                         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 374 |                  panic!("{}", e);
[INFO] [stdout]     |                         +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 374 -                  panic!(e);
[INFO] [stdout] 374 +                  std::panic::panic_any(e);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/writer.rs:399:38
[INFO] [stdout]     |
[INFO] [stdout] 399 |                     Err(e) => panic!(e),
[INFO] [stdout]     |                                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 399 |                     Err(e) => panic!("{}", e),
[INFO] [stdout]     |                                      +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 399 -                     Err(e) => panic!(e),
[INFO] [stdout] 399 +                     Err(e) => std::panic::panic_any(e),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/writer.rs:409:25
[INFO] [stdout]     |
[INFO] [stdout] 409 |                  panic!(e);
[INFO] [stdout]     |                         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]     |
[INFO] [stdout] 409 |                  panic!("{}", e);
[INFO] [stdout]     |                         +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]     |
[INFO] [stdout] 409 -                  panic!(e);
[INFO] [stdout] 409 +                  std::panic::panic_any(e);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 20.71s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bitflags v0.7.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "cf75b8c95ece97d14651038ac5160a5d7e540adc7daa0d75c0a571ed3834aa3b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cf75b8c95ece97d14651038ac5160a5d7e540adc7daa0d75c0a571ed3834aa3b", kill_on_drop: false }`
[INFO] [stdout] cf75b8c95ece97d14651038ac5160a5d7e540adc7daa0d75c0a571ed3834aa3b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 844d75b46ead89e8308ceb4d378c1a45c14cb3cfbd09fced3bc17883919ce9cf
[INFO] running `Command { std: "docker" "start" "-a" "844d75b46ead89e8308ceb4d378c1a45c14cb3cfbd09fced3bc17883919ce9cf", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stderr]  --> src/probability/numeric.rs:1:11
[INFO] [stderr]   |
[INFO] [stderr] 1 | #[cfg(not(feature="division_table_gen"))]
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stderr]   = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stderr]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stderr]  --> src/probability/numeric.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 | #[cfg(not(feature="division_table_gen"))]
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stderr]   = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stderr]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stderr]  --> src/probability/numeric.rs:8:7
[INFO] [stderr]   |
[INFO] [stderr] 8 | #[cfg(feature="division_table_gen")]
[INFO] [stderr]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stderr]   = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stderr]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stderr]   --> src/probability/numeric.rs:20:11
[INFO] [stderr]    |
[INFO] [stderr] 20 | #[cfg(not(feature="division_table_gen"))]
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stderr]    = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stderr]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `division_table_gen`
[INFO] [stderr]   --> src/probability/numeric.rs:54:11
[INFO] [stderr]    |
[INFO] [stderr] 54 | #[cfg(not(feature="division_table_gen"))]
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stderr]    = help: consider adding `division_table_gen` as a feature in `Cargo.toml`
[INFO] [stderr]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stderr]   --> src/arithmetic_coder.rs:25:29
[INFO] [stderr]    |
[INFO] [stderr] 25 |     fn push_data(&mut self, &[u8]) -> usize;
[INFO] [stderr]    |                             ^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &[u8]`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stderr]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stderr]    = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stderr]   --> src/arithmetic_coder.rs:27:28
[INFO] [stderr]    |
[INFO] [stderr] 27 |     fn pop_data(&mut self, &mut [u8]) -> usize;
[INFO] [stderr]    |                            ^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &mut [u8]`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stderr]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AllocatedStackMemory`, `Allocator`, and `StackAllocator`
[INFO] [stderr]   --> src/cmd_to_raw/mod.rs:18:17
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^                                 ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `FeatureFlagSliceType` and `LiteralCommand`
[INFO] [stderr]   --> src/cmd_to_raw/mod.rs:22:49
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub use super::interface::{Command, Compressor, LiteralCommand, CopyCommand, DictCommand, FeatureFlagSliceType};
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^                            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AllocatedStackMemory`, `SliceWrapperMut`, `SliceWrapper`, and `StackAllocator`
[INFO] [stderr]   --> src/raw_to_cmd/hash_match.rs:16:17
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^             ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AllocatedStackMemory` and `StackAllocator`
[INFO] [stderr]   --> src/raw_to_cmd/mod.rs:19:17
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::slice_util::SliceReference`
[INFO] [stderr]   --> src/raw_to_cmd/mod.rs:20:9
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub use super::slice_util::SliceReference;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CopyCommand` and `DictCommand`
[INFO] [stderr]   --> src/raw_to_cmd/mod.rs:22:91
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub use super::interface::{PredictionModeContextMap, Command, Compressor, LiteralCommand, CopyCommand, DictCommand, FeatureFlagSlice...
[INFO] [stderr]    |                                                                                           ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition name: `features`
[INFO] [stderr]   --> src/codec/weights.rs:84:7
[INFO] [stderr]    |
[INFO] [stderr] 84 | #[cfg(features="floating_point_context_mixing")]
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stderr]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] help: there is a config with a similar name and different values
[INFO] [stderr]    |
[INFO] [stderr] 84 - #[cfg(features="floating_point_context_mixing")]
[INFO] [stderr] 84 + #[cfg(feature = "avoid-divide")]
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition name: `features`
[INFO] [stderr]    --> src/codec/weights.rs:108:11
[INFO] [stderr]     |
[INFO] [stderr] 108 | #[cfg(not(features="floating_point_context_mixing"))]
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stderr]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] help: there is a config with a similar name and different values
[INFO] [stderr]     |
[INFO] [stderr] 108 - #[cfg(not(features="floating_point_context_mixing"))]
[INFO] [stderr] 108 + #[cfg(not(feature = "avoid-divide"))]
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `CrossCommandBookKeeping`
[INFO] [stderr]  --> src/codec/specializations.rs:3:28
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub use super::interface::{CrossCommandBookKeeping,LiteralBookKeeping};
[INFO] [stderr]   |                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stderr]   --> src/codec/interface.rs:87:68
[INFO] [stderr]    |
[INFO] [stderr] 87 |     fn get_source_copy_command<'a, ISlice:SliceWrapper<u8>>(&self, &'a Command<ISlice>, &'a CopyCommand) -> &'a CopyCommand;
[INFO] [stderr]    |                                                                    ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command<ISlice>`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stderr]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stderr] 
[INFO] [stderr] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stderr]   --> src/codec/interface.rs:87:89
[INFO] [stderr]    |
[INFO] [stderr] 87 |     fn get_source_copy_command<'a, ISlice:SliceWrapper<u8>>(&self, &'a Command<ISlice>, &'a CopyCommand) -> &'a CopyCommand;
[INFO] [stderr]    |                                                                                         ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a CopyCommand`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stderr]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stderr] 
[INFO] [stderr] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stderr]   --> src/codec/interface.rs:88:79
[INFO] [stderr]    |
[INFO] [stderr] 88 |     fn get_source_literal_command<'a, ISlice:SliceWrapper<u8>+Default>(&self, &'a Command<ISlice>,
[INFO] [stderr]    |                                                                               ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command<ISlice>`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stderr]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stderr] 
[INFO] [stderr] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stderr]   --> src/codec/interface.rs:89:72
[INFO] [stderr]    |
[INFO] [stderr] 89 | ...                   &'a LiteralCommand<ISlice>) -> &'a LiteralCommand<ISlice>;
[INFO] [stderr]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a LiteralCommand<ISlice>`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stderr]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stderr] 
[INFO] [stderr] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stderr]   --> src/codec/interface.rs:90:68
[INFO] [stderr]    |
[INFO] [stderr] 90 |     fn get_source_dict_command<'a, ISlice:SliceWrapper<u8>>(&self, &'a Command<ISlice>, &'a DictCommand) -> &'a DictCommand;
[INFO] [stderr]    |                                                                    ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command<ISlice>`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stderr]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stderr] 
[INFO] [stderr] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stderr]   --> src/codec/interface.rs:90:89
[INFO] [stderr]    |
[INFO] [stderr] 90 |     fn get_source_dict_command<'a, ISlice:SliceWrapper<u8>>(&self, &'a Command<ISlice>, &'a DictCommand) -> &'a DictCommand;
[INFO] [stderr]    |                                                                                         ^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a DictCommand`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stderr]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `CrossCommandBookKeeping`
[INFO] [stderr]   --> src/codec/mod.rs:49:5
[INFO] [stderr]    |
[INFO] [stderr] 49 |     CrossCommandBookKeeping,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/ans.rs:139:24
[INFO] [stderr]     |
[INFO] [stderr] 139 | const SCALE_MASK:u64 = ((1u64 << LOG2_SCALE) - 1);
[INFO] [stderr]     |                        ^                        ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 139 - const SCALE_MASK:u64 = ((1u64 << LOG2_SCALE) - 1);
[INFO] [stderr] 139 + const SCALE_MASK:u64 = (1u64 << LOG2_SCALE) - 1;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AllocatedStackMemory`, `SliceWrapperMut`, and `StackAllocator`
[INFO] [stderr]   --> src/brotli_ir_gen.rs:21:24
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub use super::alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stderr]    |                        ^^^^^^^^^^^^^^^^^^^^                           ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BlockSwitch`, `CopyCommand`, `Decompressor`, `DictCommand`, `FeatureFlagSliceType`, `LiteralBlockSwitch`, `LiteralCommand`, `LiteralPredictionModeNibble`, `Nop`, and `free_cmd`
[INFO] [stderr]   --> src/brotli_ir_gen.rs:22:28
[INFO] [stderr]    |
[INFO] [stderr] 22 | ...::{BlockSwitch, LiteralBlockSwitch, Command, Compressor, CopyCommand, Decompressor, DictCommand, LiteralCommand, Nop, NewWithAllocator, ArithmeticEncoderOrDecoder, LiteralPredictionModeNibble, PredictionModeContextMap, free_cmd, FeatureFlagSliceType,
[INFO] [stderr]    |       ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^                       ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^                            ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EncoderOrDecoderSpecialization` and `StrideSelection`
[INFO] [stderr]   --> src/brotli_ir_gen.rs:30:17
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub use codec::{EncoderOrDecoderSpecialization, DivansCodec, StrideSelection};
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^               ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AllocatedStackMemory` and `StackAllocator`
[INFO] [stderr]   --> src/divans_compressor.rs:26:24
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub use super::alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stderr]    |                        ^^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BlockSwitch`, `CopyCommand`, `Decompressor`, `DictCommand`, `LiteralBlockSwitch`, `LiteralPredictionModeNibble`, `Nop`, and `free_cmd`
[INFO] [stderr]   --> src/divans_compressor.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr] 32 |     BlockSwitch,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 33 |     LiteralBlockSwitch,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 |     CopyCommand,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 37 |     Decompressor,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 38 |     DictCommand,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 39 |     LiteralCommand,
[INFO] [stderr] 40 |     Nop,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     LiteralPredictionModeNibble,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 46 |     free_cmd,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EncoderOrDecoderSpecialization`, `StrideSelection`, and `default_crc`
[INFO] [stderr]   --> src/divans_compressor.rs:50:17
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub use codec::{EncoderOrDecoderSpecialization, DivansCodec, StrideSelection, default_crc, CommandArray, CommandSliceArray};
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^               ^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]   --> src/ffi/mod.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub extern fn divans_new_compressor() -> *mut compressor::DivansCompressorState{
[INFO] [stderr]    |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]   --> src/ffi/mod.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub unsafe extern fn divans_new_compressor_with_custom_alloc(allocators:CAllocator) -> *mut DivansCompressorState{
[INFO] [stderr]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]   --> src/ffi/mod.rs:58:12
[INFO] [stderr]    |
[INFO] [stderr] 58 | pub unsafe extern fn divans_set_option(state_ptr: *mut DivansCompressorState,
[INFO] [stderr]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]   --> src/ffi/mod.rs:70:12
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub unsafe extern fn divans_encode(state_ptr: *mut DivansCompressorState,
[INFO] [stderr]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]   --> src/ffi/mod.rs:94:12
[INFO] [stderr]    |
[INFO] [stderr] 94 | pub unsafe extern fn divans_encode_flush(state_ptr: *mut DivansCompressorState,
[INFO] [stderr]    |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi/mod.rs:111:12
[INFO] [stderr]     |
[INFO] [stderr] 111 | pub unsafe extern fn divans_compressor_malloc_u8(state_ptr: *mut DivansCompressorState, size: usize) -> *mut u8 {
[INFO] [stderr]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi/mod.rs:120:12
[INFO] [stderr]     |
[INFO] [stderr] 120 | pub unsafe extern fn divans_compressor_free_u8(state_ptr: *mut DivansCompressorState, data: *mut u8, size: usize) {
[INFO] [stderr]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi/mod.rs:130:12
[INFO] [stderr]     |
[INFO] [stderr] 130 | pub unsafe extern fn divans_compressor_malloc_usize(state_ptr: *mut DivansCompressorState, size: usize) -> *mut usize {
[INFO] [stderr]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi/mod.rs:139:12
[INFO] [stderr]     |
[INFO] [stderr] 139 | pub unsafe extern fn divans_compressor_free_usize(state_ptr: *mut DivansCompressorState, data: *mut usize, size: usize) {
[INFO] [stderr]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi/mod.rs:159:12
[INFO] [stderr]     |
[INFO] [stderr] 159 | pub unsafe extern fn divans_free_compressor(state_ptr: *mut DivansCompressorState) {
[INFO] [stderr]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi/mod.rs:178:5
[INFO] [stderr]     |
[INFO] [stderr] 178 | pub extern fn divans_new_decompressor() -> *mut DivansDecompressorState{
[INFO] [stderr]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi/mod.rs:190:5
[INFO] [stderr]     |
[INFO] [stderr] 190 | pub extern fn divans_new_serial_decompressor() -> *mut DivansDecompressorState{
[INFO] [stderr]     |     ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi/mod.rs:213:12
[INFO] [stderr]     |
[INFO] [stderr] 213 | pub unsafe extern fn divans_new_decompressor_with_custom_alloc(allocators:CAllocator, skip_crc:u8, multithread: u8) -> *mut DivansD...
[INFO] [stderr]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi/mod.rs:236:12
[INFO] [stderr]     |
[INFO] [stderr] 236 | pub unsafe extern fn divans_decode(state_ptr: *mut DivansDecompressorState,
[INFO] [stderr]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi/mod.rs:276:12
[INFO] [stderr]     |
[INFO] [stderr] 276 | pub unsafe extern fn divans_decompressor_malloc_u8(state_ptr: *mut DivansDecompressorState, size: usize) -> *mut u8 {
[INFO] [stderr]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi/mod.rs:285:12
[INFO] [stderr]     |
[INFO] [stderr] 285 | pub unsafe extern fn divans_decompressor_free_u8(state_ptr: *mut DivansDecompressorState, data: *mut u8, size: usize) {
[INFO] [stderr]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi/mod.rs:294:12
[INFO] [stderr]     |
[INFO] [stderr] 294 | pub unsafe extern fn divans_decompressor_malloc_usize(state_ptr: *mut DivansDecompressorState, size: usize) -> *mut usize {
[INFO] [stderr]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi/mod.rs:303:12
[INFO] [stderr]     |
[INFO] [stderr] 303 | pub unsafe extern fn divans_decompressor_free_usize(state_ptr: *mut DivansDecompressorState, data: *mut usize, size: usize) {
[INFO] [stderr]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stderr]    --> src/ffi/mod.rs:312:12
[INFO] [stderr]     |
[INFO] [stderr] 312 | pub unsafe extern fn divans_free_decompressor(state_ptr: *mut DivansDecompressorState) {
[INFO] [stderr]     |            ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AllocatedStackMemory` and `StackAllocator`
[INFO] [stderr]  --> src/reader.rs:2:17
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stderr]   |                 ^^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AllocatedStackMemory` and `StackAllocator`
[INFO] [stderr]  --> src/writer.rs:2:17
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub use alloc::{AllocatedStackMemory, Allocator, SliceWrapper, SliceWrapperMut, StackAllocator};
[INFO] [stderr]   |                 ^^^^^^^^^^^^^^^^^^^^                                            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/reader.rs:24:32
[INFO] [stderr]    |
[INFO] [stderr] 24 |     fn cause(&self) -> Option<&error::Error> {None}
[INFO] [stderr]    |                                ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 24 |     fn cause(&self) -> Option<&dyn error::Error> {None}
[INFO] [stderr]    |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:256:5
[INFO] [stderr]     |
[INFO] [stderr] 256 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr]     = note: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:258:5
[INFO] [stderr]     |
[INFO] [stderr] 258 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:262:5
[INFO] [stderr]     |
[INFO] [stderr] 262 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:264:5
[INFO] [stderr]     |
[INFO] [stderr] 264 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:266:5
[INFO] [stderr]     |
[INFO] [stderr] 266 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:268:5
[INFO] [stderr]     |
[INFO] [stderr] 268 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:272:5
[INFO] [stderr]     |
[INFO] [stderr] 272 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:274:5
[INFO] [stderr]     |
[INFO] [stderr] 274 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:276:5
[INFO] [stderr]     |
[INFO] [stderr] 276 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:278:5
[INFO] [stderr]     |
[INFO] [stderr] 278 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:280:5
[INFO] [stderr]     |
[INFO] [stderr] 280 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:282:5
[INFO] [stderr]     |
[INFO] [stderr] 282 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:284:5
[INFO] [stderr]     |
[INFO] [stderr] 284 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:286:5
[INFO] [stderr]     |
[INFO] [stderr] 286 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:288:5
[INFO] [stderr]     |
[INFO] [stderr] 288 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:368:5
[INFO] [stderr]     |
[INFO] [stderr] 368 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:386:5
[INFO] [stderr]     |
[INFO] [stderr] 386 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:390:5
[INFO] [stderr]     |
[INFO] [stderr] 390 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:393:5
[INFO] [stderr]     |
[INFO] [stderr] 393 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]    --> src/interface.rs:405:5
[INFO] [stderr]     |
[INFO] [stderr] 405 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]   --> src/arithmetic_coder.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]   --> src/arithmetic_coder.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]   --> src/arithmetic_coder.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]   --> src/arithmetic_coder.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 26 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]   --> src/threading.rs:46:5
[INFO] [stderr]    |
[INFO] [stderr] 46 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]   --> src/threading.rs:48:5
[INFO] [stderr]    |
[INFO] [stderr] 48 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]   --> src/threading.rs:50:5
[INFO] [stderr]    |
[INFO] [stderr] 50 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]   --> src/threading.rs:61:5
[INFO] [stderr]    |
[INFO] [stderr] 61 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]   --> src/threading.rs:63:5
[INFO] [stderr]    |
[INFO] [stderr] 63 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]   --> src/threading.rs:66:5
[INFO] [stderr]    |
[INFO] [stderr] 66 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]   --> src/threading.rs:76:5
[INFO] [stderr]    |
[INFO] [stderr] 76 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` attribute cannot be used on required trait methods
[INFO] [stderr]   --> src/threading.rs:82:5
[INFO] [stderr]    |
[INFO] [stderr] 82 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[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]    = help: `#[inline]` can be applied to closures, functions, inherent methods, provided trait methods, and trait methods in impl blocks
[INFO] [stderr] 
[INFO] [stderr] warning: `#[no_mangle]` attribute cannot be used on use statements
[INFO] [stderr]  --> src/ffi/mod.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | #[no_mangle]
[INFO] [stderr]   | ^^^^^^^^^^^^
[INFO] [stderr]   |
[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]   = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stderr] 
[INFO] [stderr] warning: `#[no_mangle]` attribute cannot be used on type aliases
[INFO] [stderr]  --> src/ffi/interface.rs:7:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | #[no_mangle]
[INFO] [stderr]   | ^^^^^^^^^^^^
[INFO] [stderr]   |
[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]   = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stderr] 
[INFO] [stderr] warning: `#[no_mangle]` attribute cannot be used on structs
[INFO] [stderr]   --> src/ffi/interface.rs:41:1
[INFO] [stderr]    |
[INFO] [stderr] 41 | #[no_mangle]
[INFO] [stderr]    | ^^^^^^^^^^^^
[INFO] [stderr]    |
[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]    = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stderr] 
[INFO] [stderr] warning: `#[no_mangle]` attribute cannot be used on structs
[INFO] [stderr]    --> src/ffi/compressor.rs:267:1
[INFO] [stderr]     |
[INFO] [stderr] 267 | #[no_mangle]
[INFO] [stderr]     | ^^^^^^^^^^^^
[INFO] [stderr]     |
[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]     = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stderr] 
[INFO] [stderr] warning: `#[no_mangle]` attribute cannot be used on structs
[INFO] [stderr]  --> src/ffi/decompressor.rs:9:1
[INFO] [stderr]   |
[INFO] [stderr] 9 | #[no_mangle]
[INFO] [stderr]   | ^^^^^^^^^^^^
[INFO] [stderr]   |
[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]   = help: `#[no_mangle]` can be applied to functions and statics
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/codec/copy.rs:91:25
[INFO] [stderr]    |
[INFO] [stderr] 91 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:112:25
[INFO] [stderr]     |
[INFO] [stderr] 112 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:129:25
[INFO] [stderr]     |
[INFO] [stderr] 129 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:145:25
[INFO] [stderr]     |
[INFO] [stderr] 145 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:175:29
[INFO] [stderr]     |
[INFO] [stderr] 175 |                         let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:204:25
[INFO] [stderr]     |
[INFO] [stderr] 204 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:231:25
[INFO] [stderr]     |
[INFO] [stderr] 231 |                     let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/copy.rs:250:33
[INFO] [stderr]     |
[INFO] [stderr] 250 | ...                   let mut nibble_prob = superstate.bk.copy_priors.get(
[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/codec/dict.rs:84:25
[INFO] [stderr]    |
[INFO] [stderr] 84 |                     let mut nibble_prob = superstate.bk.dict_priors.get(DictCommandNibblePriorType::SizeBegNib, (ctype,));
[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/codec/dict.rs:100:25
[INFO] [stderr]     |
[INFO] [stderr] 100 |                     let mut nibble_prob = superstate.bk.dict_priors.get(DictCommandNibblePriorType::SizeLastNib, (ctype,));
[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/codec/dict.rs:119:25
[INFO] [stderr]     |
[INFO] [stderr] 119 |                     let mut nibble_prob = superstate.bk.dict_priors.get(
[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/codec/dict.rs:139:25
[INFO] [stderr]     |
[INFO] [stderr] 139 |                     let mut nibble_prob = superstate.bk.dict_priors.get(DictCommandNibblePriorType::Transform,
[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/codec/dict.rs:150:25
[INFO] [stderr]     |
[INFO] [stderr] 150 |                     let mut nibble_prob = superstate.bk.dict_priors.get(DictCommandNibblePriorType::Transform,
[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/codec/literal.rs:294:16
[INFO] [stderr]     |
[INFO] [stderr] 294 |            let mut byte_to_encode_val = specialization.get_literal_byte(in_cmd,
[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/codec/literal.rs:572:25
[INFO] [stderr]     |
[INFO] [stderr] 572 |                     let mut nibble_prob = superstate.bk.lit_len_priors.get(
[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/codec/literal.rs:600:25
[INFO] [stderr]     |
[INFO] [stderr] 600 |                     let mut nibble_prob = superstate.bk.lit_len_priors.get(LiteralCommandPriorType::SizeBegNib, (ctype,));
[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/codec/literal.rs:625:25
[INFO] [stderr]     |
[INFO] [stderr] 625 |                     let mut nibble_prob = superstate.bk.lit_len_priors.get(LiteralCommandPriorType::SizeLastNib, (ctype,));
[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/codec/literal.rs:640:25
[INFO] [stderr]     |
[INFO] [stderr] 640 |                     let mut nibble_prob = superstate.bk.lit_len_priors.get(LiteralCommandPriorType::SizeMantissaNib, (ctype,));
[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/codec/literal.rs:707:30
[INFO] [stderr]     |
[INFO] [stderr] 707 |                         Some(mut lc) => {
[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/codec/context_map.rs:174:28
[INFO] [stderr]     |
[INFO] [stderr] 174 |                        let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::Only, (0,));
[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/codec/context_map.rs:195:28
[INFO] [stderr]     |
[INFO] [stderr] 195 |                        let mut nibble_prob = superstate.bk.prediction_priors.get(
[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/codec/context_map.rs:211:28
[INFO] [stderr]     |
[INFO] [stderr] 211 |                        let mut nibble_prob = superstate.bk.prediction_priors.get(
[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/codec/context_map.rs:235:24
[INFO] [stderr]     |
[INFO] [stderr] 235 |                    let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::ContextMapSpeedPalette,
[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/codec/context_map.rs:291:28
[INFO] [stderr]     |
[INFO] [stderr] 291 | ...   let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::Mnemonic, (context_map_type as usize,));
[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/codec/context_map.rs:320:28
[INFO] [stderr]     |
[INFO] [stderr] 320 |                        let mut out_context_map = match context_map_type {
[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/codec/context_map.rs:343:24
[INFO] [stderr]     |
[INFO] [stderr] 343 | ...   let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::FirstNibble, (context_map_type as usize,));
[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/codec/context_map.rs:363:28
[INFO] [stderr]     |
[INFO] [stderr] 363 | ...   let mut nibble_prob = superstate.bk.prediction_priors.get(PredictionModePriorType::SecondNibble, (context_map_type as usize,));
[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/codec/context_map.rs:371:24
[INFO] [stderr]     |
[INFO] [stderr] 371 |                    let mut out_context_map = match context_map_type {
[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/codec/context_map.rs:395:24
[INFO] [stderr]     |
[INFO] [stderr] 395 |                    let mut prior = if index >= 256 && self.pm.has_context_speeds() {
[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/codec/context_map.rs:401:28
[INFO] [stderr]     |
[INFO] [stderr] 401 |                        let mut nibble_prob = superstate.bk.prediction_priors.get(
[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/codec/block_type.rs:72:25
[INFO] [stderr]    |
[INFO] [stderr] 72 |                     let mut nibble_prob = superstate.bk.btype_priors.get(BlockTypePriorType::Mnemonic,
[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/codec/block_type.rs:88:25
[INFO] [stderr]    |
[INFO] [stderr] 88 |                     let mut nibble_prob = superstate.bk.btype_priors.get(BlockTypePriorType::FirstNibble,
[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/codec/block_type.rs:97:25
[INFO] [stderr]    |
[INFO] [stderr] 97 |                     let mut nibble_prob = superstate.bk.btype_priors.get(BlockTypePriorType::SecondNibble,
[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/codec/block_type.rs:181:25
[INFO] [stderr]     |
[INFO] [stderr] 181 |                     let mut nibble_prob = superstate.bk.btype_priors.get(BlockTypePriorType::StrideNibble,
[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/ir_optimize/mod.rs:198:21
[INFO] [stderr]     |
[INFO] [stderr] 198 |                 let mut should_merge = match should_merge(lit, copy, index, mb, &mut actuary, &mut distance_cache) {
[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/mux.rs:463:20
[INFO] [stderr]     |
[INFO] [stderr] 463 |                let mut is_lagging = max_flush  > MAX_FLUSH_VARIANCE + self.last_flush[index];
[INFO] [stderr]     |                    ----^^^^^^^^^^
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `FixedRegister` is never used
[INFO] [stderr]   --> src/arithmetic_coder.rs:31:10
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub type FixedRegister = u64;
[INFO] [stderr]    |          ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RegisterQueue` is never constructed
[INFO] [stderr]   --> src/arithmetic_coder.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub struct RegisterQueue {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `put_8bit` is never used
[INFO] [stderr]    --> src/arithmetic_coder.rs:122:8
[INFO] [stderr]     |
[INFO] [stderr]  84 | pub trait EntropyEncoder {
[INFO] [stderr]     |           -------------- method in this trait
[INFO] [stderr] ...
[INFO] [stderr] 122 |     fn put_8bit(&mut self,
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DebugEncoder` is never constructed
[INFO] [stderr]   --> src/debug_encoder.rs:25:12
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub struct DebugEncoder {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DebugDecoder` is never constructed
[INFO] [stderr]   --> src/debug_encoder.rs:49:12
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub struct DebugDecoder {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `mov_internal` is never used
[INFO] [stderr]   --> src/debug_encoder.rs:79:8
[INFO] [stderr]    |
[INFO] [stderr] 78 | impl DebugEncoder {
[INFO] [stderr]    | ----------------- method in this implementation
[INFO] [stderr] 79 |     fn mov_internal(&mut self) -> Self {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0`, `1`, and `2` are never read
[INFO] [stderr]   --> src/multithreading.rs:52:20
[INFO] [stderr]    |
[INFO] [stderr] 52 | struct ThreadEvent(ThreadEventType, u32, Duration);
[INFO] [stderr]    |        ----------- ^^^^^^^^^^^^^^^  ^^^  ^^^^^^^^
[INFO] [stderr]    |        |
[INFO] [stderr]    |        fields in this struct
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider removing these fields
[INFO] [stderr]    = note: `ThreadEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/interface.rs:259:21
[INFO] [stderr]     |
[INFO] [stderr] 259 |     fn write_buffer(&mut self, m8: &mut AllocU8) -> [WritableBytes; NUM_STREAMS];
[INFO] [stderr]     |                     ^^^^^^^^^                        ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 259 |     fn write_buffer(&mut self, m8: &mut AllocU8) -> [WritableBytes<'_>; NUM_STREAMS];
[INFO] [stderr]     |                                                                   ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/interface.rs:275:20
[INFO] [stderr]     |
[INFO] [stderr] 275 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS];
[INFO] [stderr]     |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 275 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS];
[INFO] [stderr]     |                                                ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/codec/interface.rs:920:26
[INFO] [stderr]     |
[INFO] [stderr] 920 |     fn get_input_command(&self, offset: usize) -> Command<brotli::InputReference>;
[INFO] [stderr]     |                          ^^^^^                            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                          |
[INFO] [stderr]     |                          the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 920 |     fn get_input_command(&self, offset: usize) -> Command<brotli::InputReference<'_>>;
[INFO] [stderr]     |                                                                                 ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/codec/interface.rs:928:26
[INFO] [stderr]     |
[INFO] [stderr] 928 |     fn get_input_command(&self, _offset: usize) -> Command<brotli::InputReference> {
[INFO] [stderr]     |                          ^^^^^ the lifetime is elided here ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 928 |     fn get_input_command(&self, _offset: usize) -> Command<brotli::InputReference<'_>> {
[INFO] [stderr]     |                                                                                  ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/codec/interface.rs:940:26
[INFO] [stderr]     |
[INFO] [stderr] 940 |     fn get_input_command(&self, offset: usize) -> Command<brotli::InputReference> {
[INFO] [stderr]     |                          ^^^^^                            ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                          |
[INFO] [stderr]     |                          the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 940 |     fn get_input_command(&self, offset: usize) -> Command<brotli::InputReference<'_>> {
[INFO] [stderr]     |                                                                                 ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/codec/io.rs:48:20
[INFO] [stderr]    |
[INFO] [stderr] 48 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS] {
[INFO] [stderr]    |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                    |
[INFO] [stderr]    |                    the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 48 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS] {
[INFO] [stderr]    |                                                ++++
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/brotli_ir_gen.rs:131:16
[INFO] [stderr]     |
[INFO] [stderr] 131 |         panic!(m)
[INFO] [stderr]     |                ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: add a "{}" format string to `Display` the message
[INFO] [stderr]     |
[INFO] [stderr] 131 |         panic!("{}", m)
[INFO] [stderr]     |                +++++
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 131 -         panic!(m)
[INFO] [stderr] 131 +         std::panic::panic_any(m)
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/brotli_ir_gen.rs:636:26
[INFO] [stderr]     |
[INFO] [stderr] 636 |     fn get_input_command(&self, offset:usize) -> Command<brotli::InputReference> {
[INFO] [stderr]     |                          ^^^^^                           ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                          |
[INFO] [stderr]     |                          the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 636 |     fn get_input_command(&self, offset:usize) -> Command<brotli::InputReference<'_>> {
[INFO] [stderr]     |                                                                                ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/divans_compressor.rs:179:26
[INFO] [stderr]     |
[INFO] [stderr] 179 |     fn get_input_command(&self, offset:usize) -> Command<InputReference> {
[INFO] [stderr]     |                          ^^^^^                           ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                          |
[INFO] [stderr]     |                          the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 179 |     fn get_input_command(&self, offset:usize) -> Command<InputReference<'_>> {
[INFO] [stderr]     |                                                                        ++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stderr]    --> src/divans_decompressor.rs:282:9
[INFO] [stderr]     |
[INFO] [stderr] 282 | /         core::mem::replace(self,
[INFO] [stderr] 283 | |                            DivansDecompressor::Decode(
[INFO] [stderr] 284 | |                                DivansProcess::<DefaultDecoder, AllocU8, AllocCDF16, AllocCommand> {
[INFO] [stderr] 285 | |                                    codec:Some(codec),
[INFO] [stderr] ...   |
[INFO] [stderr] 288 | |                                    mcommand:mcommand,
[INFO] [stderr] 289 | |                                }));
[INFO] [stderr]     | |__________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 282 |         let _ = core::mem::replace(self,
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stderr]    --> src/ir_optimize/mod.rs:205:21
[INFO] [stderr]     |
[INFO] [stderr] 205 |                     core::mem::replace(copy, CopyCommand::nop());
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 205 |                     let _ = core::mem::replace(copy, CopyCommand::nop());
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stderr]    --> src/ir_optimize/mod.rs:219:21
[INFO] [stderr]     |
[INFO] [stderr] 219 |                     core::mem::replace(&mut item_a[0], Command::Copy(CopyCommand::nop())); // replace with a copy
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 219 |                     let _ = core::mem::replace(&mut item_a[0], Command::Copy(CopyCommand::nop())); // replace with a copy
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/ir_optimize/statistics_tracking_codec.rs:174:26
[INFO] [stderr]     |
[INFO] [stderr] 174 |     fn get_input_command(&self, _offset:usize) -> brotli::interface::Command<brotli::InputReference> {
[INFO] [stderr]     |                          ^^^^^ the lifetime is elided here                   ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 174 |     fn get_input_command(&self, _offset:usize) -> brotli::interface::Command<brotli::InputReference<'_>> {
[INFO] [stderr]     |                                                                                                    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/ir_optimize/statistics_tracking_codec.rs:185:26
[INFO] [stderr]     |
[INFO] [stderr] 185 |     fn get_input_command(&self, offset:usize) -> brotli::interface::Command<brotli::InputReference> {
[INFO] [stderr]     |                          ^^^^^ the lifetime is elided here                  ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 185 |     fn get_input_command(&self, offset:usize) -> brotli::interface::Command<brotli::InputReference<'_>> {
[INFO] [stderr]     |                                                                                                   ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/ir_optimize/cache.rs:62:30
[INFO] [stderr]    |
[INFO] [stderr] 62 |     pub fn get_cache_hit_log(&mut self, cmd_offset:usize) -> CacheHitReference{
[INFO] [stderr]    |                              ^^^^^^^^^                       ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                              |
[INFO] [stderr]    |                              the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 62 |     pub fn get_cache_hit_log(&mut self, cmd_offset:usize) -> CacheHitReference<'_>{
[INFO] [stderr]    |                                                                               ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/ir_optimize/cache.rs:69:30
[INFO] [stderr]    |
[INFO] [stderr] 69 |     fn get_cache_hit_log_mut(&mut self, cmd_offset:usize) -> CacheHitReferenceMut{
[INFO] [stderr]    |                              ^^^^^^^^^                       ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                              |
[INFO] [stderr]    |                              the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 69 |     fn get_cache_hit_log_mut(&mut self, cmd_offset:usize) -> CacheHitReferenceMut<'_>{
[INFO] [stderr]    |                                                                                  ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/mux.rs:122:20
[INFO] [stderr]     |
[INFO] [stderr] 122 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS] {
[INFO] [stderr]     |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 122 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS] {
[INFO] [stderr]     |                                                ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/mux.rs:169:21
[INFO] [stderr]     |
[INFO] [stderr] 169 |     fn write_buffer(&mut self, m8: &mut AllocU8) -> [WritableBytes; NUM_STREAMS] { // FIXME: make this generic WRT NUM_STREAMS
[INFO] [stderr]     |                     ^^^^^^^^^                        ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 169 |     fn write_buffer(&mut self, m8: &mut AllocU8) -> [WritableBytes<'_>; NUM_STREAMS] { // FIXME: make this generic WRT NUM_STREAMS
[INFO] [stderr]     |                                                                   ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/mux.rs:583:20
[INFO] [stderr]     |
[INFO] [stderr] 583 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS] {
[INFO] [stderr]     |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 583 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS] {
[INFO] [stderr]     |                                                ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/mux.rs:620:21
[INFO] [stderr]     |
[INFO] [stderr] 620 |     fn write_buffer(&mut self, _m8: &mut AllocU8) -> [WritableBytes; NUM_STREAMS] {
[INFO] [stderr]     |                     ^^^^^^^^^                         ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 620 |     fn write_buffer(&mut self, _m8: &mut AllocU8) -> [WritableBytes<'_>; NUM_STREAMS] {
[INFO] [stderr]     |                                                                    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/threading.rs:327:20
[INFO] [stderr]     |
[INFO] [stderr] 327 |     fn read_buffer(&mut self) -> [ReadableBytes; NUM_STREAMS] {
[INFO] [stderr]     |                    ^^^^^^^^^      ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 327 |     fn read_buffer(&mut self) -> [ReadableBytes<'_>; NUM_STREAMS] {
[INFO] [stderr]     |                                                ++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stderr]    --> src/ffi/alloc_util.rs:213:5
[INFO] [stderr]     |
[INFO] [stderr] 213 |     Box::from_raw(slice_ref); // free on drop
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 213 |     let _ = Box::from_raw(slice_ref); // free on drop
[INFO] [stderr]     |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stderr]    --> src/ffi/compressor.rs:176:17
[INFO] [stderr]     |
[INFO] [stderr] 176 | /                 core::mem::replace(self,
[INFO] [stderr] 177 | |                                    CompressorState::InternalCompressor(
[INFO] [stderr] 178 | |                                        InternalCompressorFactory::new(
[INFO] [stderr] 179 | |                                            SubclassableAllocator::<u8>::new(allocators.clone()),
[INFO] [stderr] ...   |
[INFO] [stderr] 182 | |                                            opts,
[INFO] [stderr] 183 | |                                            ())));
[INFO] [stderr]     | |________________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 176 |                 let _ = core::mem::replace(self,
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `core::mem::replace` that must be used
[INFO] [stderr]    --> src/ffi/compressor.rs:186:17
[INFO] [stderr]     |
[INFO] [stderr] 186 | /                 core::mem::replace(self,
[INFO] [stderr] 187 | |                                    CompressorState::BrotliCompressor(
[INFO] [stderr] 188 | |                                        BrotliFactory::new(
[INFO] [stderr] 189 | |                                            SubclassableAllocator::<u8>::new(allocators.clone()),
[INFO] [stderr] ...   |
[INFO] [stderr] 209 | |                                                SubclassableAllocator::<brotli::enc::StaticCommand>::new(allocators.clone()),
[INFO] [stderr] 210 | |                                            ))));
[INFO] [stderr]     | |_______________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 186 |                 let _ = core::mem::replace(self,
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/test_ans.rs:215:17
[INFO] [stderr]     |
[INFO] [stderr] 215 |             let mut q = e.get_internal_buffer_mut();
[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/test_ans.rs:237:13
[INFO] [stderr]     |
[INFO] [stderr] 237 |         let mut q = e.get_internal_buffer_mut();
[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/test_ans.rs:317:17
[INFO] [stderr]     |
[INFO] [stderr] 317 |             let mut q = d.get_internal_buffer_mut();
[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/test_ans.rs:338:13
[INFO] [stderr]     |
[INFO] [stderr] 338 |         let mut q = d.get_internal_buffer_mut();
[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/test_ans.rs:380:17
[INFO] [stderr]     |
[INFO] [stderr] 380 |             let mut q = e.get_internal_buffer_mut();
[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/test_ans.rs:443:17
[INFO] [stderr]     |
[INFO] [stderr] 443 |             let mut q = d.get_internal_buffer_mut();
[INFO] [stderr]     |                 ----^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: field `read_offset` is never read
[INFO] [stderr]    --> src/writer.rs:294:13
[INFO] [stderr]     |
[INFO] [stderr] 292 |     pub struct UnlimitedBuffer {
[INFO] [stderr]     |                --------------- field in this struct
[INFO] [stderr] 293 |         pub data: Vec<u8>,
[INFO] [stderr] 294 |         pub read_offset: usize,
[INFO] [stderr]     |             ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stderr]   --> src/probability/numeric.rs:78:23
[INFO] [stderr]    |
[INFO] [stderr] 78 |         for n in nums.into_iter() {
[INFO] [stderr]    |                       ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this changes meaning in Rust 2021
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr]    = note: `#[warn(array_into_iter)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]    |
[INFO] [stderr] 78 -         for n in nums.into_iter() {
[INFO] [stderr] 78 +         for n in nums.iter() {
[INFO] [stderr]    |
[INFO] [stderr] help: or remove `.into_iter()` to iterate by value
[INFO] [stderr]    |
[INFO] [stderr] 78 -         for n in nums.into_iter() {
[INFO] [stderr] 78 +         for n in nums {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021
[INFO] [stderr]   --> src/probability/numeric.rs:79:29
[INFO] [stderr]    |
[INFO] [stderr] 79 |             for d in denoms.into_iter() {
[INFO] [stderr]    |                             ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this changes meaning in Rust 2021
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]    |
[INFO] [stderr] 79 -             for d in denoms.into_iter() {
[INFO] [stderr] 79 +             for d in denoms.iter() {
[INFO] [stderr]    |
[INFO] [stderr] help: or remove `.into_iter()` to iterate by value
[INFO] [stderr]    |
[INFO] [stderr] 79 -             for d in denoms.into_iter() {
[INFO] [stderr] 79 +             for d in denoms {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/reader.rs:401:32
[INFO] [stderr]     |
[INFO] [stderr] 401 |                         panic!(e)
[INFO] [stderr]     |                                ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to `Display` the message
[INFO] [stderr]     |
[INFO] [stderr] 401 |                         panic!("{}", e)
[INFO] [stderr]     |                                +++++
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 401 -                         panic!(e)
[INFO] [stderr] 401 +                         std::panic::panic_any(e)
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/reader.rs:431:38
[INFO] [stderr]     |
[INFO] [stderr] 431 |                     Err(e) => panic!(e),
[INFO] [stderr]     |                                      ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to `Display` the message
[INFO] [stderr]     |
[INFO] [stderr] 431 |                     Err(e) => panic!("{}", e),
[INFO] [stderr]     |                                      +++++
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 431 -                     Err(e) => panic!(e),
[INFO] [stderr] 431 +                     Err(e) => std::panic::panic_any(e),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/writer.rs:364:38
[INFO] [stderr]     |
[INFO] [stderr] 364 |                     Err(e) => panic!(e),
[INFO] [stderr]     |                                      ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to `Display` the message
[INFO] [stderr]     |
[INFO] [stderr] 364 |                     Err(e) => panic!("{}", e),
[INFO] [stderr]     |                                      +++++
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 364 -                     Err(e) => panic!(e),
[INFO] [stderr] 364 +                     Err(e) => std::panic::panic_any(e),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/writer.rs:374:25
[INFO] [stderr]     |
[INFO] [stderr] 374 |                  panic!(e);
[INFO] [stderr]     |                         ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to `Display` the message
[INFO] [stderr]     |
[INFO] [stderr] 374 |                  panic!("{}", e);
[INFO] [stderr]     |                         +++++
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 374 -                  panic!(e);
[INFO] [stderr] 374 +                  std::panic::panic_any(e);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/writer.rs:399:38
[INFO] [stderr]     |
[INFO] [stderr] 399 |                     Err(e) => panic!(e),
[INFO] [stderr]     |                                      ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to `Display` the message
[INFO] [stderr]     |
[INFO] [stderr] 399 |                     Err(e) => panic!("{}", e),
[INFO] [stderr]     |                                      +++++
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 399 -                     Err(e) => panic!(e),
[INFO] [stderr] 399 +                     Err(e) => std::panic::panic_any(e),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/writer.rs:409:25
[INFO] [stderr]     |
[INFO] [stderr] 409 |                  panic!(e);
[INFO] [stderr]     |                         ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to `Display` the message
[INFO] [stderr]     |
[INFO] [stderr] 409 |                  panic!("{}", e);
[INFO] [stderr]     |                         +++++
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 409 -                  panic!(e);
[INFO] [stderr] 409 +                  std::panic::panic_any(e);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `divans` (lib) generated 156 warnings (run `cargo fix --lib -p divans` to apply 136 suggestions)
[INFO] [stderr] warning: `divans` (lib test) generated 170 warnings (155 duplicates) (run `cargo fix --lib -p divans --tests` to apply 14 suggestions)
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]   --> examples/decompress.rs:25:28
[INFO] [stderr]    |
[INFO] [stderr] 25 |                     panic!(e);
[INFO] [stderr]    |                            ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: add a "{}" format string to `Display` the message
[INFO] [stderr]    |
[INFO] [stderr] 25 |                     panic!("{}", e);
[INFO] [stderr]    |                            +++++
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]    |
[INFO] [stderr] 25 -                     panic!(e);
[INFO] [stderr] 25 +                     std::panic::panic_any(e);
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]   --> examples/decompress.rs:32:42
[INFO] [stderr]    |
[INFO] [stderr] 32 |                         Err(e) => panic!(e),
[INFO] [stderr]    |                                          ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to `Display` the message
[INFO] [stderr]    |
[INFO] [stderr] 32 |                         Err(e) => panic!("{}", e),
[INFO] [stderr]    |                                          +++++
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]    |
[INFO] [stderr] 32 -                         Err(e) => panic!(e),
[INFO] [stderr] 32 +                         Err(e) => std::panic::panic_any(e),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `no-stdlib-rlib`
[INFO] [stderr]   --> src/bin/divans.rs:17:7
[INFO] [stderr]    |
[INFO] [stderr] 17 | #[cfg(feature="no-stdlib-rlib")]
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stderr]    = help: consider adding `no-stdlib-rlib` as a feature in `Cargo.toml`
[INFO] [stderr]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `no-stdlib-rlib`
[INFO] [stderr]   --> src/bin/divans.rs:19:11
[INFO] [stderr]    |
[INFO] [stderr] 19 | #[cfg(not(feature="no-stdlib-rlib"))]
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stderr]    = help: consider adding `no-stdlib-rlib` as a feature in `Cargo.toml`
[INFO] [stderr]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/bin/integration_test.rs:71:3
[INFO] [stderr]    |
[INFO] [stderr] 71 |   try!(super::recode(&mut brotli_file,
[INFO] [stderr]    |   ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `inplace-new`
[INFO] [stderr]   --> src/bin/util.rs:49:7
[INFO] [stderr]    |
[INFO] [stderr] 49 | #[cfg(feature="inplace-new")]
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stderr]    = help: consider adding `inplace-new` as a feature in `Cargo.toml`
[INFO] [stderr]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: unexpected `cfg` condition value: `inplace-new`
[INFO] [stderr]   --> src/bin/util.rs:73:11
[INFO] [stderr]    |
[INFO] [stderr] 73 | #[cfg(not(feature="inplace-new"))]
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: expected values for `feature` are: `avoid-divide`, `avx2`, `benchmark`, `billing`, `blend`, `debug_entropy`, `external-literal-probability`, `findspeed`, `no-inline`, `no-stdlib`, `no-stdlib-rust-binding`, `portable-simd`, `safe`, `simd`, `threadlog`, and `uncached_frequentist`
[INFO] [stderr]    = help: consider adding `inplace-new` as a feature in `Cargo.toml`
[INFO] [stderr]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/bin/divans.rs:455:20
[INFO] [stderr]     |
[INFO] [stderr] 455 |         let data = try!(util::literal_slice_to_vec(&s.as_bytes()[command_vec[0].len() + command_vec[1].len() + 2..]));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/bin/divans.rs:457:24
[INFO] [stderr]     |
[INFO] [stderr] 457 |             let prob = try!(util::hex_slice_to_vec(command_vec[3].as_bytes()));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/bin/divans.rs:659:21
[INFO] [stderr]     |
[INFO] [stderr] 659 |                     try!(recode_cmd_buffer(&mut state, ibuffer.split_at(i_read_index).0, w,
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/bin/divans.rs:671:23
[INFO] [stderr]     |
[INFO] [stderr] 671 |                 match try!(command_parse(&line)) {
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/bin/divans.rs:956:31
[INFO] [stderr]     |
[INFO] [stderr] 956 |                 window_size = try!(window_parse(&line));
[INFO] [stderr]     |                               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]     --> src/bin/divans.rs:1013:46
[INFO] [stderr]      |
[INFO] [stderr] 1013 |     let mut obuffer = vec![0u8; buffer_size];;
[INFO] [stderr]      |                                              ^ help: remove this semicolon
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/bin/divans.rs:718:63
[INFO] [stderr]     |
[INFO] [stderr] 718 | ...                   free_state: &mut Fn(Compressor)->ItemVecAllocator<u8>) -> io::Result<()> {
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 718 |                                              free_state: &mut dyn Fn(Compressor)->ItemVecAllocator<u8>) -> io::Result<()> {
[INFO] [stderr]     |                                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/bin/divans.rs:103:32
[INFO] [stderr]     |
[INFO] [stderr] 103 |     fn cause(&self) -> Option<&error::Error> {None}
[INFO] [stderr]     |                                ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 103 |     fn cause(&self) -> Option<&dyn error::Error> {None}
[INFO] [stderr]     |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/bin/divans.rs:169:43
[INFO] [stderr]     |
[INFO] [stderr] 169 | ...                   msg.description()));
[INFO] [stderr]     |                           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/bin/divans.rs:329:47
[INFO] [stderr]     |
[INFO] [stderr] 329 | ...                   msg.description()));
[INFO] [stderr]     |                           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/bin/divans.rs:350:60
[INFO] [stderr]     |
[INFO] [stderr] 350 | ...                   msg.description()));
[INFO] [stderr]     |                           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/bin/divans.rs:366:47
[INFO] [stderr]     |
[INFO] [stderr] 366 | ...                   msg.description()));
[INFO] [stderr]     |                           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/bin/divans.rs:377:47
[INFO] [stderr]     |
[INFO] [stderr] 377 | ...                   msg.description()));
[INFO] [stderr]     |                           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/bin/divans.rs:393:47
[INFO] [stderr]     |
[INFO] [stderr] 393 | ...                   msg.description()));
[INFO] [stderr]     |                           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/bin/divans.rs:409:47
[INFO] [stderr]     |
[INFO] [stderr] 409 | ...                   msg.description()));
[INFO] [stderr]     |                           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/bin/divans.rs:416:47
[INFO] [stderr]     |
[INFO] [stderr] 416 | ...                   msg.description()));
[INFO] [stderr]     |                           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/bin/divans.rs:425:55
[INFO] [stderr]     |
[INFO] [stderr] 425 | ...                   msg.description()));
[INFO] [stderr]     |                           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/bin/divans.rs:449:51
[INFO] [stderr]     |
[INFO] [stderr] 449 | ...                   msg.description()));
[INFO] [stderr]     |                           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TestContextMixingPureAverage` is never constructed
[INFO] [stderr]    --> src/bin/benchmark.rs:145:8
[INFO] [stderr]     |
[INFO] [stderr] 145 | struct TestContextMixingPureAverage{
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TestSimple` is never constructed
[INFO] [stderr]    --> src/bin/benchmark.rs:153:8
[INFO] [stderr]     |
[INFO] [stderr] 153 | struct TestSimple{
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Rebox` is never constructed
[INFO] [stderr]    --> src/bin/util.rs:113:12
[INFO] [stderr]     |
[INFO] [stderr] 113 | pub struct Rebox<T> {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HeapAllocator` is never constructed
[INFO] [stderr]    --> src/bin/util.rs:150:12
[INFO] [stderr]     |
[INFO] [stderr] 150 | pub struct HeapAllocator<T: core::clone::Clone> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/bin/integration_test.rs:222:24
[INFO] [stderr]     |
[INFO] [stderr] 222 |         need => panic!(need),
[INFO] [stderr]     |                        ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: add a "{:?}" format string to use the `Debug` implementation of `DivansOutputResult`
[INFO] [stderr]     |
[INFO] [stderr] 222 |         need => panic!("{:?}", need),
[INFO] [stderr]     |                        +++++++
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]     |
[INFO] [stderr] 222 -         need => panic!(need),
[INFO] [stderr] 222 +         need => std::panic::panic_any(need),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> examples/util_prior_stream_cost.rs:37:21
[INFO] [stderr]    |
[INFO] [stderr] 37 |                 let mut prior_val: Vec<String> = if let Some(_) = line.find(",") {
[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]   --> examples/util_prior_stream_cost.rs:65:21
[INFO] [stderr]    |
[INFO] [stderr] 65 |                 let mut prior_stream = &mut sub_streams.entry(prior).or_insert(vec::Vec::<u8>::new());
[INFO] [stderr]    |                     ----^^^^^^^^^^^^
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]   --> examples/compress.rs:42:28
[INFO] [stderr]    |
[INFO] [stderr] 42 |                     panic!(e);
[INFO] [stderr]    |                            ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: add a "{}" format string to `Display` the message
[INFO] [stderr]    |
[INFO] [stderr] 42 |                     panic!("{}", e);
[INFO] [stderr]    |                            +++++
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]    |
[INFO] [stderr] 42 -                     panic!(e);
[INFO] [stderr] 42 +                     std::panic::panic_any(e);
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]   --> examples/compress.rs:51:40
[INFO] [stderr]    |
[INFO] [stderr] 51 | ...                   panic!(e)
[INFO] [stderr]    |                              ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to `Display` the message
[INFO] [stderr]    |
[INFO] [stderr] 51 |                                 panic!("{}", e)
[INFO] [stderr]    |                                        +++++
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]    |
[INFO] [stderr] 51 -                                 panic!(e)
[INFO] [stderr] 51 +                                 std::panic::panic_any(e)
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]   --> examples/compress.rs:57:42
[INFO] [stderr]    |
[INFO] [stderr] 57 |                         Err(e) => panic!(e),
[INFO] [stderr]    |                                          ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr] help: add a "{}" format string to `Display` the message
[INFO] [stderr]    |
[INFO] [stderr] 57 |                         Err(e) => panic!("{}", e),
[INFO] [stderr]    |                                          +++++
[INFO] [stderr] help: or use std::panic::panic_any instead
[INFO] [stderr]    |
[INFO] [stderr] 57 -                         Err(e) => panic!(e),
[INFO] [stderr] 57 +                         Err(e) => std::panic::panic_any(e),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: `divans` (example "decompress") generated 2 warnings (run `cargo fix --example "decompress" -p divans` to apply 2 suggestions)
[INFO] [stderr] warning: `divans` (bin "divans" test) generated 28 warnings (run `cargo fix --bin "divans" -p divans --tests` to apply 3 suggestions)
[INFO] [stderr] warning: `divans` (example "util_prior_stream_cost") generated 2 warnings (run `cargo fix --example "util_prior_stream_cost" -p divans` to apply 2 suggestions)
[INFO] [stderr] warning: `divans` (example "compress") generated 3 warnings (run `cargo fix --example "compress" -p divans` to apply 3 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bitflags v0.7.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/divans-6d416f4843b08ec7)
[INFO] [stdout] 
[INFO] [stdout] running 63 tests
[INFO] [stdout] test arithmetic_coder::test::test_get_nibble ... ok
[INFO] [stdout] test cmd_to_raw::test::test_copy_big_overlap ... ok
[INFO] [stdout] test arithmetic_coder::test::test_put_nibble ... ok
[INFO] [stdout] test codec::crc32::test::test_crc32c_empty ... ok
[INFO] [stdout] test codec::crc32::test::test_crc32c_numeric ... ok
[INFO] [stdout] test codec::crc32::test::test_crc32c_numeric_half ... ok
[INFO] [stdout] test alloc_util::test::test_non_reuse ... ok
[INFO] [stdout] test cmd_to_raw::test::test_copy_far ... ok
[INFO] [stdout] test cmd_to_raw::test::test_copy_near_overlap ... ok
[INFO] [stdout] test cmd_to_raw::test::test_insert_huge ... ok
[INFO] [stdout] test alloc_util::test::test_reuse ... ok
[INFO] [stdout] test cmd_to_raw::test::test_insert_medium ... ok
[INFO] [stdout] test codec::crc32::test::test_crc32c_qbf_half ... ok
[INFO] [stdout] test cmd_to_raw::test::test_ring_buffer_dict ... ok
[INFO] [stdout] test priors::test::test_billing_types ... ok
[INFO] [stdout] test priors::test::test_macro_product ... ok
[INFO] [stdout] test priors::test::test_macro_sum_product_cdr ... ok
[INFO] [stdout] test codec::crc32::test::test_crc32c_qbf ... ok
[INFO] [stdout] test priors::test::test_num_dimensions ... ok
[INFO] [stdout] test priors::test::test_num_prior ... ok
[INFO] [stdout] test probability::blend_cdf::test::test_blend_lut ... ok
[INFO] [stdout] test priors::test::test_macro_count_expr ... ok
[INFO] [stdout] test priors::test::test_get ... ok
[INFO] [stdout] test priors::test::test_get_tuple ... ok
[INFO] [stdout] test probability::blend_cdf::test::test_sym_to_start_and_freq ... ok
[INFO] [stdout] test priors::test::test_get_bad_tuple_dimensionality - should panic ... ok
[INFO] [stdout] test probability::frequentist_cdf::test::test_sym_to_start_and_freq ... ok
[INFO] [stdout] test probability::interface::test::test_u8_to_speed ... ok
[INFO] [stdout] test probability::numeric::test::test_divide ... ok
[INFO] [stdout] test priors::test::test_get_bad_tuple_index - should panic ... ok
[INFO] [stdout] test probability::opt_frequentist_cdf::test::test_cdf_opt_eq_baseline ... ok
[INFO] [stdout] test probability::frequentist_cdf::test::test_nonzero_pdf ... ok
[INFO] [stdout] test probability::opt_frequentist_cdf::test::test_nonzero_pdf ... ok
[INFO] [stdout] test probability::opt_frequentist_cdf::test::test_sym_to_start_and_freq ... ok
[INFO] [stdout] test probability::opt_frequentist_cdf::test::test_cdf_offset_to_sym_start_and_freq ... ok
[INFO] [stdout] test probability::frequentist_cdf::test::test_cdf_offset_to_sym_start_and_freq ... ok
[INFO] [stdout] test probability::frequentist_cdf::test::test_stationary_probability ... ok
[INFO] [stdout] test probability::blend_cdf::test::test_cdf_offset_to_sym_start_and_freq ... ok
[INFO] [stdout] test probability::opt_frequentist_cdf::test::test_stationary_probability ... ok
[INFO] [stderr] encoded size: 2928
[INFO] [stderr] effeciency: 1.00311013336588
[INFO] [stderr] encoded size: 24
[INFO] [stderr] effeciency: 2.1054007256147593
[INFO] [stderr] done!
[INFO] [stdout] test test_ans::entropy16_lite_trait_test ... ok
[INFO] [stderr] done!
[INFO] [stdout] test test_ans::entropy16_big_trait_test ... ok
[INFO] [stderr] encoded size: 2928
[INFO] [stderr] effeciency: 0.9933084853811626
[INFO] [stderr] done!
[INFO] [stdout] test test_ans::entropy16_trait_test ... ok
[INFO] [stdout] test probability::blend_cdf::test::test_nonzero_pdf ... ok
[INFO] [stdout] test test_mux::test_3meg_mux ... ok
[INFO] [stdout] test test_mux::test_long_mux ... ok
[INFO] [stdout] test test_mux::test_balance_mux ... ok
[INFO] [stdout] test test_mux::test_med_mux ... ok
[INFO] [stdout] test test_mux::test_nano_mux ... ok
[INFO] [stdout] test test_mux::test_real_mux ... ok
[INFO] [stdout] test test_mux::test_short_mux ... ok
[INFO] [stdout] test test_mux::test_tiny_mux ... ok
[INFO] [stdout] test test_mux::unit_test_decode_mux ... ok
[INFO] [stdout] test test_mux::test_sc3_mux ... ok
[INFO] [stdout] test test_mux::test_interleaved_mux ... ok
[INFO] [stdout] test probability::blend_cdf::test::test_stationary_probability ... ok
[INFO] [stdout] test reader::test::test_experimental_reader_compressor_on_alice_full ... ok
[INFO] [stdout] test writer::test::test_hybrid_writer_compressor_on_alice_full ... ok
[INFO] [stdout] test reader::test::test_hybrid_reader_compressor_on_alice_full ... ok
[INFO] [stdout] test reader::test::test_hybrid_reader_compressor_on_unicode_full ... ok
[INFO] [stdout] test writer::test::test_experimental_writer_compressor_on_alice_full ... ok
[INFO] [stdout] test reader::test::test_hybrid_reader_compressor_on_alice_small_buffer ... ok
[INFO] [stdout] test writer::test::test_hybrid_writer_compressor_on_alice_small_buffer ... ok
[INFO] [stdout] test writer::test::test_hybrid_writer_compressor_on_unicode_full ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 63 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 21.58s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/divans.rs (/opt/rustwide/target/debug/deps/divans-7d23ac9f103f189a)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test integration_test::test_e2e_64xp ... ok
[INFO] [stdout] test integration_test::test_e2e_32xx ... ok
[INFO] [stdout] test integration_test::test_asyoulik ... ok
[INFO] [stdout] test integration_test::test_alice29 ... ok
[INFO] [stdout] test integration_test::test_e2e_empty_br ... ok
[INFO] [stdout] test integration_test::test_e2e_empty ... ok
[INFO] [stdout] test integration_test::test_e2e_empty_br_tinybuf ... ok
[INFO] [stdout] test integration_test::test_e2e_empty_tinybuf ... ok
[INFO] [stdout] test integration_test::test_e2e_empty_just_flush ... ok
[INFO] [stdout] test integration_test::test_e2e_ones_tinybuf ... ok
[INFO] [stdout] test integration_test::test_ends_with_truncated_dictionary ... ok
[INFO] [stdout] test integration_test::test_e2e_262145_at ... ok
[INFO] [stdout] test integration_test::test_random_then_unicode ... ok
[INFO] [stdout] test benchmark::test_raw_adaptive_literal_stream ... ok
[INFO] [stdout] test benchmark::test_raw_literal_stream ... ok
[INFO] [stdout] test integration_test::test_e2e_alice ... ok
[INFO] [stdout] test integration_test::test_e2e_smallbuf_without_priors ... ok
[INFO] [stdout] test benchmark::test_raw_ir_literal_stream ... ok
[INFO] [stdout] test integration_test::test_e2e_tinybuf ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 13.84s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests divans
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/ans.rs:139:24
[INFO] [stderr]     |
[INFO] [stderr] 139 | const SCALE_MASK:u64 = ((1u64 << LOG2_SCALE) - 1);
[INFO] [stderr]     |                        ^                        ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 139 - const SCALE_MASK:u64 = ((1u64 << LOG2_SCALE) - 1);
[INFO] [stderr] 139 + const SCALE_MASK:u64 = (1u64 << LOG2_SCALE) - 1;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: 1 warning emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "844d75b46ead89e8308ceb4d378c1a45c14cb3cfbd09fced3bc17883919ce9cf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "844d75b46ead89e8308ceb4d378c1a45c14cb3cfbd09fced3bc17883919ce9cf", kill_on_drop: false }`
[INFO] [stdout] 844d75b46ead89e8308ceb4d378c1a45c14cb3cfbd09fced3bc17883919ce9cf
