[INFO] fetching crate divans 0.0.1...
[INFO] testing divans-0.0.1 against 1.69.0 for beta-1.70-1
[INFO] extracting crate divans 0.0.1 into /workspace/builds/worker-1-tc1/source
[INFO] validating manifest of crates.io crate divans 0.0.1 on toolchain 1.69.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[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] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" __CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS="nightly" "/workspace/cargo-home/bin/cargo" "+1.69.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[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:97d61d7686bf65f8ecb15491ab51835e82dc9176a96a831f143a431b191fc501" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a85af11c0dd92a2a10b27fd78dd447dc40dfd729a68835b5044830a3287bfa15
[INFO] running `Command { std: "docker" "start" "-a" "a85af11c0dd92a2a10b27fd78dd447dc40dfd729a68835b5044830a3287bfa15", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a85af11c0dd92a2a10b27fd78dd447dc40dfd729a68835b5044830a3287bfa15", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a85af11c0dd92a2a10b27fd78dd447dc40dfd729a68835b5044830a3287bfa15", kill_on_drop: false }`
[INFO] [stdout] a85af11c0dd92a2a10b27fd78dd447dc40dfd729a68835b5044830a3287bfa15
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:97d61d7686bf65f8ecb15491ab51835e82dc9176a96a831f143a431b191fc501" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 69ef1f2feae1748884dd8bb5ede21325834a62dd366d334565a5a7320945ab84
[INFO] running `Command { std: "docker" "start" "-a" "69ef1f2feae1748884dd8bb5ede21325834a62dd366d334565a5a7320945ab84", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.142
[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 time v0.1.45
[INFO] [stderr]    Compiling vergen v0.1.1
[INFO] [stderr]    Compiling brotli v2.5.1
[INFO] [stderr]    Compiling divans v0.0.1 (/opt/rustwide/workdir)
[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)]` 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: 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: 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)]` 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: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:256:5
[INFO] [stdout]     |
[INFO] [stdout] 256 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 258 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 262 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 264 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:268:5
[INFO] [stdout]     |
[INFO] [stdout] 268 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:272:5
[INFO] [stdout]     |
[INFO] [stdout] 272 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:274:5
[INFO] [stdout]     |
[INFO] [stdout] 274 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:276:5
[INFO] [stdout]     |
[INFO] [stdout] 276 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 278 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:280:5
[INFO] [stdout]     |
[INFO] [stdout] 280 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:282:5
[INFO] [stdout]     |
[INFO] [stdout] 282 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:286:5
[INFO] [stdout]     |
[INFO] [stdout] 286 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 288 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:368:5
[INFO] [stdout]     |
[INFO] [stdout] 368 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:386:5
[INFO] [stdout]     |
[INFO] [stdout] 386 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:390:5
[INFO] [stdout]     |
[INFO] [stdout] 390 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:393:5
[INFO] [stdout]     |
[INFO] [stdout] 393 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:405:5
[INFO] [stdout]     |
[INFO] [stdout] 405 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/arithmetic_coder.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/arithmetic_coder.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/arithmetic_coder.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/arithmetic_coder.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]  --> src/ffi/mod.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[no_mangle]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout] 4 | use core;
[INFO] [stdout]   | --------- not a free function, impl method or static
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]  --> src/ffi/interface.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[no_mangle]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout] 8 | pub type DivansReturnCode = u8;
[INFO] [stdout]   | ------------------------------- not a free function, impl method or static
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]   --> src/ffi/interface.rs:41:1
[INFO] [stdout]    |
[INFO] [stdout] 41 |   #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^^^^
[INFO] [stdout] 42 |   #[derive(Clone)]
[INFO] [stdout] 43 | / pub struct CAllocator {
[INFO] [stdout] 44 | |     pub alloc_func: Option<extern "C" fn(data: *mut c_void, size: usize) -> *mut c_void>,
[INFO] [stdout] 45 | |     pub free_func: Option<extern "C" fn(data: *mut c_void, ptr: *mut c_void) -> ()>,
[INFO] [stdout] 46 | |     pub opaque: *mut c_void,
[INFO] [stdout] 47 | | }
[INFO] [stdout]    | |_- not a free function, impl method or static
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]    --> src/ffi/compressor.rs:267:1
[INFO] [stdout]     |
[INFO] [stdout] 267 |   #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^^^^
[INFO] [stdout] 268 | / pub struct DivansCompressorState {
[INFO] [stdout] 269 | |     pub custom_allocator: CAllocator,
[INFO] [stdout] 270 | |     pub compressor: CompressorState
[INFO] [stdout] 271 | | }
[INFO] [stdout]     | |_- not a free function, impl method or static
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]   --> src/ffi/decompressor.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout] 9  |   #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^^^^
[INFO] [stdout] 10 | / pub struct DivansDecompressorState {
[INFO] [stdout] 11 | |     pub custom_allocator: CAllocator,
[INFO] [stdout] 12 | |     pub decompressor: ::DivansDecompressor<<DecompressorFactory as ::DivansDecompressorFactory<SubclassableAllocator<u8>,  SubclassableAl...
[INFO] [stdout] 13 | |                                            SubclassableAllocator<u8>,
[INFO] [stdout] 14 | |                                            SubclassableAllocator<::DefaultCDF16>,
[INFO] [stdout] 15 | |                                            SubclassableAllocator<StaticCommand>>,
[INFO] [stdout] 16 | | }
[INFO] [stdout]    | |_- not a free function, impl method or static
[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] 
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn cause(&self) -> Option<&dyn error::Error> {None}
[INFO] [stdout]    |                                +++
[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)]` 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: 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/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` 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 |         std::panic::panic_any(m)
[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)]` on by default
[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] 
[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] 
[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] 
[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] 
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: 90 warnings emitted
[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)]` 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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: 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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: 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: 18 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 29.46s
[INFO] running `Command { std: "docker" "inspect" "69ef1f2feae1748884dd8bb5ede21325834a62dd366d334565a5a7320945ab84", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "69ef1f2feae1748884dd8bb5ede21325834a62dd366d334565a5a7320945ab84", kill_on_drop: false }`
[INFO] [stdout] 69ef1f2feae1748884dd8bb5ede21325834a62dd366d334565a5a7320945ab84
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:97d61d7686bf65f8ecb15491ab51835e82dc9176a96a831f143a431b191fc501" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 82e3e633763f630abe2768e4556a028d0d2f103be783dd2eb2faeea8b10ba8a5
[INFO] running `Command { std: "docker" "start" "-a" "82e3e633763f630abe2768e4556a028d0d2f103be783dd2eb2faeea8b10ba8a5", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[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)]` 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: 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: 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)]` 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: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:256:5
[INFO] [stdout]     |
[INFO] [stdout] 256 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 258 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 262 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 264 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:268:5
[INFO] [stdout]     |
[INFO] [stdout] 268 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:272:5
[INFO] [stdout]     |
[INFO] [stdout] 272 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:274:5
[INFO] [stdout]     |
[INFO] [stdout] 274 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:276:5
[INFO] [stdout]     |
[INFO] [stdout] 276 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 278 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:280:5
[INFO] [stdout]     |
[INFO] [stdout] 280 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:282:5
[INFO] [stdout]     |
[INFO] [stdout] 282 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:286:5
[INFO] [stdout]     |
[INFO] [stdout] 286 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 288 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:368:5
[INFO] [stdout]     |
[INFO] [stdout] 368 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:386:5
[INFO] [stdout]     |
[INFO] [stdout] 386 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:390:5
[INFO] [stdout]     |
[INFO] [stdout] 390 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:393:5
[INFO] [stdout]     |
[INFO] [stdout] 393 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:405:5
[INFO] [stdout]     |
[INFO] [stdout] 405 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/arithmetic_coder.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/arithmetic_coder.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/arithmetic_coder.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/arithmetic_coder.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]  --> src/ffi/mod.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[no_mangle]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout] 4 | use core;
[INFO] [stdout]   | --------- not a free function, impl method or static
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]  --> src/ffi/interface.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[no_mangle]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout] 8 | pub type DivansReturnCode = u8;
[INFO] [stdout]   | ------------------------------- not a free function, impl method or static
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]   --> src/ffi/interface.rs:41:1
[INFO] [stdout]    |
[INFO] [stdout] 41 |   #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^^^^
[INFO] [stdout] 42 |   #[derive(Clone)]
[INFO] [stdout] 43 | / pub struct CAllocator {
[INFO] [stdout] 44 | |     pub alloc_func: Option<extern "C" fn(data: *mut c_void, size: usize) -> *mut c_void>,
[INFO] [stdout] 45 | |     pub free_func: Option<extern "C" fn(data: *mut c_void, ptr: *mut c_void) -> ()>,
[INFO] [stdout] 46 | |     pub opaque: *mut c_void,
[INFO] [stdout] 47 | | }
[INFO] [stdout]    | |_- not a free function, impl method or static
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]    --> src/ffi/compressor.rs:267:1
[INFO] [stdout]     |
[INFO] [stdout] 267 |   #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^^^^
[INFO] [stdout] 268 | / pub struct DivansCompressorState {
[INFO] [stdout] 269 | |     pub custom_allocator: CAllocator,
[INFO] [stdout] 270 | |     pub compressor: CompressorState
[INFO] [stdout] 271 | | }
[INFO] [stdout]     | |_- not a free function, impl method or static
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]   --> src/ffi/decompressor.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout] 9  |   #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^^^^
[INFO] [stdout] 10 | / pub struct DivansDecompressorState {
[INFO] [stdout] 11 | |     pub custom_allocator: CAllocator,
[INFO] [stdout] 12 | |     pub decompressor: ::DivansDecompressor<<DecompressorFactory as ::DivansDecompressorFactory<SubclassableAllocator<u8>,  SubclassableAl...
[INFO] [stdout] 13 | |                                            SubclassableAllocator<u8>,
[INFO] [stdout] 14 | |                                            SubclassableAllocator<::DefaultCDF16>,
[INFO] [stdout] 15 | |                                            SubclassableAllocator<StaticCommand>>,
[INFO] [stdout] 16 | | }
[INFO] [stdout]    | |_- not a free function, impl method or static
[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] 
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn cause(&self) -> Option<&dyn error::Error> {None}
[INFO] [stdout]    |                                +++
[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)]` 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] [stderr]    Compiling divans v0.0.1 (/opt/rustwide/workdir)
[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: 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/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` 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 |         std::panic::panic_any(m)
[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)]` on by default
[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] 
[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] 
[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] 
[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] 
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: 90 warnings emitted
[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/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` 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 |                     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/nightly/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 |                                 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/nightly/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) => std::panic::panic_any(e),
[INFO] [stdout]    |                                   ~~~~~~~~~~~~~~~~~~~~~
[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: 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)]` 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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: 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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn cause(&self) -> Option<&dyn error::Error> {None}
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[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/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` 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 |                     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/nightly/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) => 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)]` 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: 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: 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)]` 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: 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: 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)]` 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: 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/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` 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 => std::panic::panic_any(need),
[INFO] [stdout]     |                 ~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:256:5
[INFO] [stdout]     |
[INFO] [stdout] 256 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:258:5
[INFO] [stdout]     |
[INFO] [stdout] 258 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 262 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 264 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:268:5
[INFO] [stdout]     |
[INFO] [stdout] 268 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:272:5
[INFO] [stdout]     |
[INFO] [stdout] 272 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:274:5
[INFO] [stdout]     |
[INFO] [stdout] 274 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:276:5
[INFO] [stdout]     |
[INFO] [stdout] 276 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 278 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:280:5
[INFO] [stdout]     |
[INFO] [stdout] 280 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:282:5
[INFO] [stdout]     |
[INFO] [stdout] 282 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:286:5
[INFO] [stdout]     |
[INFO] [stdout] 286 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:288:5
[INFO] [stdout]     |
[INFO] [stdout] 288 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:368:5
[INFO] [stdout]     |
[INFO] [stdout] 368 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:386:5
[INFO] [stdout]     |
[INFO] [stdout] 386 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:390:5
[INFO] [stdout]     |
[INFO] [stdout] 390 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:393:5
[INFO] [stdout]     |
[INFO] [stdout] 393 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]    --> src/interface.rs:405:5
[INFO] [stdout]     |
[INFO] [stdout] 405 |     #[inline(always)]
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/arithmetic_coder.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/arithmetic_coder.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/arithmetic_coder.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/arithmetic_coder.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/threading.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     #[inline(always)]
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]  --> src/ffi/mod.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[no_mangle]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout] 4 | use core;
[INFO] [stdout]   | --------- not a free function, impl method or static
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]  --> src/ffi/interface.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[no_mangle]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout] 8 | pub type DivansReturnCode = u8;
[INFO] [stdout]   | ------------------------------- not a free function, impl method or static
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]   --> src/ffi/interface.rs:41:1
[INFO] [stdout]    |
[INFO] [stdout] 41 |   #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^^^^
[INFO] [stdout] 42 |   #[derive(Clone)]
[INFO] [stdout] 43 | / pub struct CAllocator {
[INFO] [stdout] 44 | |     pub alloc_func: Option<extern "C" fn(data: *mut c_void, size: usize) -> *mut c_void>,
[INFO] [stdout] 45 | |     pub free_func: Option<extern "C" fn(data: *mut c_void, ptr: *mut c_void) -> ()>,
[INFO] [stdout] 46 | |     pub opaque: *mut c_void,
[INFO] [stdout] 47 | | }
[INFO] [stdout]    | |_- not a free function, impl method or static
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]    --> src/ffi/compressor.rs:267:1
[INFO] [stdout]     |
[INFO] [stdout] 267 |   #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^^^^
[INFO] [stdout] 268 | / pub struct DivansCompressorState {
[INFO] [stdout] 269 | |     pub custom_allocator: CAllocator,
[INFO] [stdout] 270 | |     pub compressor: CompressorState
[INFO] [stdout] 271 | | }
[INFO] [stdout]     | |_- not a free function, impl method or static
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: attribute should be applied to a free function, impl method or static
[INFO] [stdout]   --> src/ffi/decompressor.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout] 9  |   #[no_mangle]
[INFO] [stdout]    |   ^^^^^^^^^^^^
[INFO] [stdout] 10 | / pub struct DivansDecompressorState {
[INFO] [stdout] 11 | |     pub custom_allocator: CAllocator,
[INFO] [stdout] 12 | |     pub decompressor: ::DivansDecompressor<<DecompressorFactory as ::DivansDecompressorFactory<SubclassableAllocator<u8>,  SubclassableAl...
[INFO] [stdout] 13 | |                                            SubclassableAllocator<u8>,
[INFO] [stdout] 14 | |                                            SubclassableAllocator<::DefaultCDF16>,
[INFO] [stdout] 15 | |                                            SubclassableAllocator<StaticCommand>>,
[INFO] [stdout] 16 | | }
[INFO] [stdout]    | |_- not a free function, impl method or static
[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] 
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn cause(&self) -> Option<&dyn error::Error> {None}
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[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)]` 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: 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/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]    = note: `#[warn(array_into_iter)]` on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]    |
[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/nightly/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.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: 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/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` 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 |         std::panic::panic_any(m)
[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)]` on by default
[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] 
[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] 
[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] 
[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] 
[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] 
[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/nightly/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 |                         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/nightly/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) => 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/nightly/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) => 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/nightly/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 |                  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/nightly/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) => 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/nightly/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 |                  std::panic::panic_any(e);
[INFO] [stdout]     |                  ~~~~~~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 20 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 104 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 20.58s
[INFO] running `Command { std: "docker" "inspect" "82e3e633763f630abe2768e4556a028d0d2f103be783dd2eb2faeea8b10ba8a5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "82e3e633763f630abe2768e4556a028d0d2f103be783dd2eb2faeea8b10ba8a5", kill_on_drop: false }`
[INFO] [stdout] 82e3e633763f630abe2768e4556a028d0d2f103be783dd2eb2faeea8b10ba8a5
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:97d61d7686bf65f8ecb15491ab51835e82dc9176a96a831f143a431b191fc501" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ed88d051ab44aad815080811835caf1948b805fca0af9a0f09f1d69fcd4fe04e
[INFO] running `Command { std: "docker" "start" "-a" "ed88d051ab44aad815080811835caf1948b805fca0af9a0f09f1d69fcd4fe04e", kill_on_drop: false }`
[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)]` 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: 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: 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)]` 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: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:256:5
[INFO] [stderr]     |
[INFO] [stderr] 256 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:258:5
[INFO] [stderr]     |
[INFO] [stderr] 258 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:262:5
[INFO] [stderr]     |
[INFO] [stderr] 262 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:264:5
[INFO] [stderr]     |
[INFO] [stderr] 264 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:266:5
[INFO] [stderr]     |
[INFO] [stderr] 266 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:268:5
[INFO] [stderr]     |
[INFO] [stderr] 268 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:272:5
[INFO] [stderr]     |
[INFO] [stderr] 272 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:274:5
[INFO] [stderr]     |
[INFO] [stderr] 274 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:276:5
[INFO] [stderr]     |
[INFO] [stderr] 276 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:278:5
[INFO] [stderr]     |
[INFO] [stderr] 278 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:280:5
[INFO] [stderr]     |
[INFO] [stderr] 280 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:282:5
[INFO] [stderr]     |
[INFO] [stderr] 282 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:284:5
[INFO] [stderr]     |
[INFO] [stderr] 284 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:286:5
[INFO] [stderr]     |
[INFO] [stderr] 286 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:288:5
[INFO] [stderr]     |
[INFO] [stderr] 288 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:368:5
[INFO] [stderr]     |
[INFO] [stderr] 368 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:386:5
[INFO] [stderr]     |
[INFO] [stderr] 386 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:390:5
[INFO] [stderr]     |
[INFO] [stderr] 390 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:393:5
[INFO] [stderr]     |
[INFO] [stderr] 393 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]    --> src/interface.rs:405:5
[INFO] [stderr]     |
[INFO] [stderr] 405 |     #[inline(always)]
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]   --> src/arithmetic_coder.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]   --> src/arithmetic_coder.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]   --> src/arithmetic_coder.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]   --> src/arithmetic_coder.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 26 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]   --> src/threading.rs:46:5
[INFO] [stderr]    |
[INFO] [stderr] 46 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]   --> src/threading.rs:48:5
[INFO] [stderr]    |
[INFO] [stderr] 48 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]   --> src/threading.rs:50:5
[INFO] [stderr]    |
[INFO] [stderr] 50 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]   --> src/threading.rs:61:5
[INFO] [stderr]    |
[INFO] [stderr] 61 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]   --> src/threading.rs:63:5
[INFO] [stderr]    |
[INFO] [stderr] 63 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]   --> src/threading.rs:66:5
[INFO] [stderr]    |
[INFO] [stderr] 66 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]   --> src/threading.rs:76:5
[INFO] [stderr]    |
[INFO] [stderr] 76 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `#[inline]` is ignored on function prototypes
[INFO] [stderr]   --> src/threading.rs:82:5
[INFO] [stderr]    |
[INFO] [stderr] 82 |     #[inline(always)]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: attribute should be applied to a free function, impl method or static
[INFO] [stderr]  --> src/ffi/mod.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | #[no_mangle]
[INFO] [stderr]   | ^^^^^^^^^^^^
[INFO] [stderr] 4 | use core;
[INFO] [stderr]   | --------- not a free function, impl method or static
[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] 
[INFO] [stderr] warning: attribute should be applied to a free function, impl method or static
[INFO] [stderr]  --> src/ffi/interface.rs:7:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | #[no_mangle]
[INFO] [stderr]   | ^^^^^^^^^^^^
[INFO] [stderr] 8 | pub type DivansReturnCode = u8;
[INFO] [stderr]   | ------------------------------- not a free function, impl method or static
[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] 
[INFO] [stderr] warning: attribute should be applied to a free function, impl method or static
[INFO] [stderr]   --> src/ffi/interface.rs:41:1
[INFO] [stderr]    |
[INFO] [stderr] 41 |   #[no_mangle]
[INFO] [stderr]    |   ^^^^^^^^^^^^
[INFO] [stderr] 42 |   #[derive(Clone)]
[INFO] [stderr] 43 | / pub struct CAllocator {
[INFO] [stderr] 44 | |     pub alloc_func: Option<extern "C" fn(data: *mut c_void, size: usize) -> *mut c_void>,
[INFO] [stderr] 45 | |     pub free_func: Option<extern "C" fn(data: *mut c_void, ptr: *mut c_void) -> ()>,
[INFO] [stderr] 46 | |     pub opaque: *mut c_void,
[INFO] [stderr] 47 | | }
[INFO] [stderr]    | |_- not a free function, impl method or static
[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] 
[INFO] [stderr] warning: attribute should be applied to a free function, impl method or static
[INFO] [stderr]    --> src/ffi/compressor.rs:267:1
[INFO] [stderr]     |
[INFO] [stderr] 267 |   #[no_mangle]
[INFO] [stderr]     |   ^^^^^^^^^^^^
[INFO] [stderr] 268 | / pub struct DivansCompressorState {
[INFO] [stderr] 269 | |     pub custom_allocator: CAllocator,
[INFO] [stderr] 270 | |     pub compressor: CompressorState
[INFO] [stderr] 271 | | }
[INFO] [stderr]     | |_- not a free function, impl method or static
[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] 
[INFO] [stderr] warning: attribute should be applied to a free function, impl method or static
[INFO] [stderr]   --> src/ffi/decompressor.rs:9:1
[INFO] [stderr]    |
[INFO] [stderr] 9  |   #[no_mangle]
[INFO] [stderr]    |   ^^^^^^^^^^^^
[INFO] [stderr] 10 | / pub struct DivansDecompressorState {
[INFO] [stderr] 11 | |     pub custom_allocator: CAllocator,
[INFO] [stderr] 12 | |     pub decompressor: ::DivansDecompressor<<DecompressorFactory as ::DivansDecompressorFactory<SubclassableAllocator<u8>,  SubclassableAl...
[INFO] [stderr] 13 | |                                            SubclassableAllocator<u8>,
[INFO] [stderr] 14 | |                                            SubclassableAllocator<::DefaultCDF16>,
[INFO] [stderr] 15 | |                                            SubclassableAllocator<StaticCommand>>,
[INFO] [stderr] 16 | | }
[INFO] [stderr]    | |_- not a free function, impl method or static
[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] 
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 24 |     fn cause(&self) -> Option<&dyn error::Error> {None}
[INFO] [stderr]    |                                +++
[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)]` 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: 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/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: `#[warn(non_fmt_panics)]` 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 |         std::panic::panic_any(m)
[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)]` on by default
[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] 
[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] 
[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] 
[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] 
[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] 
[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: 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/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr]    = note: `#[warn(array_into_iter)]` on by default
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]    |
[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/nightly/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.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/nightly/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 |                         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/nightly/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) => 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/nightly/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) => 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/nightly/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 |                  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/nightly/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) => 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/nightly/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 |                  std::panic::panic_any(e);
[INFO] [stderr]     |                  ~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: `divans` (lib) generated 90 warnings (run `cargo fix --lib -p divans` to apply 47 suggestions)
[INFO] [stderr] warning: `divans` (lib test) generated 104 warnings (90 duplicates) (run `cargo fix --lib -p divans --tests` to apply 14 suggestions)
[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: 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)]` 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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] help: 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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: 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: 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/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: `#[warn(non_fmt_panics)]` 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 => std::panic::panic_any(need),
[INFO] [stderr]     |                 ~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[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/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]    = note: `#[warn(non_fmt_panics)]` 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 |                     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/nightly/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) => std::panic::panic_any(e),
[INFO] [stderr]    |                                   ~~~~~~~~~~~~~~~~~~~~~
[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/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]    = note: `#[warn(non_fmt_panics)]` 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 |                     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/nightly/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 |                                 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/nightly/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) => std::panic::panic_any(e),
[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)]` 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: `divans` (bin "divans" test) generated 20 warnings (run `cargo fix --bin "divans" --tests` to apply 3 suggestions)
[INFO] [stderr] warning: `divans` (example "decompress") generated 2 warnings (run `cargo fix --example "decompress"` to apply 2 suggestions)
[INFO] [stderr] warning: `divans` (example "compress") generated 3 warnings (run `cargo fix --example "compress"` to apply 3 suggestions)
[INFO] [stderr] warning: `divans` (example "util_prior_stream_cost") generated 2 warnings (run `cargo fix --example "util_prior_stream_cost"` to apply 2 suggestions)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/divans-4684be1b940dd69b)
[INFO] [stdout] 
[INFO] [stdout] running 63 tests
[INFO] [stdout] test cmd_to_raw::test::test_copy_far ... ok
[INFO] [stdout] test arithmetic_coder::test::test_get_nibble ... ok
[INFO] [stdout] test alloc_util::test::test_non_reuse ... ok
[INFO] [stdout] test cmd_to_raw::test::test_ring_buffer_dict ... ok
[INFO] [stdout] test codec::crc32::test::test_crc32c_empty ... ok
[INFO] [stdout] test arithmetic_coder::test::test_put_nibble ... 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 cmd_to_raw::test::test_copy_near_overlap ... ok
[INFO] [stdout] test priors::test::test_billing_types ... ok
[INFO] [stdout] test codec::crc32::test::test_crc32c_qbf_half ... ok
[INFO] [stdout] test cmd_to_raw::test::test_insert_medium ... ok
[INFO] [stdout] test cmd_to_raw::test::test_insert_huge ... ok
[INFO] [stdout] test codec::crc32::test::test_crc32c_qbf ... ok
[INFO] [stdout] test priors::test::test_get ... ok
[INFO] [stdout] test alloc_util::test::test_reuse ... ok
[INFO] [stdout] test cmd_to_raw::test::test_copy_big_overlap ... ok
[INFO] [stdout] test priors::test::test_get_tuple ... ok
[INFO] [stdout] test priors::test::test_macro_count_expr ... ok
[INFO] [stdout] test priors::test::test_macro_product ... ok
[INFO] [stdout] test priors::test::test_macro_sum_product_cdr ... 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 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 priors::test::test_get_bad_tuple_index - 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 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::frequentist_cdf::test::test_cdf_offset_to_sym_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::blend_cdf::test::test_nonzero_pdf ... 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] [stderr] encoded size: 24
[INFO] [stdout] test test_ans::entropy16_lite_trait_test ... ok
[INFO] [stderr] effeciency: 2.1054007256147593
[INFO] [stderr] done!
[INFO] [stderr] encoded size: 2928
[INFO] [stderr] effeciency: 1.00311013336588
[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 probability::opt_frequentist_cdf::test::test_stationary_probability ... ok
[INFO] [stdout] test test_ans::entropy16_trait_test ... ok
[INFO] [stdout] test test_mux::test_balance_mux ... ok
[INFO] [stdout] test test_mux::test_long_mux ... ok
[INFO] [stdout] test test_mux::test_interleaved_mux ... ok
[INFO] [stdout] test test_mux::test_nano_mux ... ok
[INFO] [stdout] test test_mux::test_med_mux ... ok
[INFO] [stdout] test test_mux::test_real_mux ... ok
[INFO] [stdout] test test_mux::test_sc3_mux ... ok
[INFO] [stdout] test test_mux::test_short_mux ... ok
[INFO] [stdout] test test_mux::unit_test_decode_mux ... ok
[INFO] [stdout] test test_mux::test_tiny_mux ... ok
[INFO] [stdout] test test_mux::test_3meg_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_unicode_full ... ok
[INFO] [stdout] test writer::test::test_hybrid_writer_compressor_on_alice_small_buffer ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 63 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 19.43s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/divans.rs (/opt/rustwide/target/debug/deps/divans-b51ccaac4567d5fe)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test integration_test::test_e2e_64xp ... ok
[INFO] [stdout] test integration_test::test_alice29 ... ok
[INFO] [stdout] test integration_test::test_asyoulik ... ok
[INFO] [stdout] test integration_test::test_e2e_32xx ... ok
[INFO] [stdout] test integration_test::test_e2e_empty ... ok
[INFO] [stdout] test integration_test::test_e2e_empty_br ... ok
[INFO] [stdout] test integration_test::test_e2e_empty_br_tinybuf ... ok
[INFO] [stdout] test integration_test::test_e2e_empty_just_flush ... ok
[INFO] [stdout] test integration_test::test_e2e_262145_at ... ok
[INFO] [stdout] test integration_test::test_e2e_empty_tinybuf ... ok
[INFO] [stdout] test integration_test::test_ends_with_truncated_dictionary ... ok
[INFO] [stdout] test integration_test::test_e2e_ones_tinybuf ... 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 benchmark::test_raw_ir_literal_stream ... ok
[INFO] [stdout] test integration_test::test_e2e_smallbuf_without_priors ... 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 6.46s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests divans
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> /opt/rustwide/workdir/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)]` 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" "ed88d051ab44aad815080811835caf1948b805fca0af9a0f09f1d69fcd4fe04e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ed88d051ab44aad815080811835caf1948b805fca0af9a0f09f1d69fcd4fe04e", kill_on_drop: false }`
[INFO] [stdout] ed88d051ab44aad815080811835caf1948b805fca0af9a0f09f1d69fcd4fe04e
