[INFO] fetching crate divans 0.0.1... [INFO] testing divans-0.0.1 against beta-2022-04-10 for beta-1.61-1 [INFO] extracting crate divans 0.0.1 into /workspace/builds/worker-2/source [INFO] validating manifest of crates.io crate divans 0.0.1 on toolchain beta-2022-04-10 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "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-2/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] cfc54da95be92a83206c2a943354d6f51e08a405144634abf174c4706f7bcf58 [INFO] running `Command { std: "docker" "start" "-a" "cfc54da95be92a83206c2a943354d6f51e08a405144634abf174c4706f7bcf58", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "cfc54da95be92a83206c2a943354d6f51e08a405144634abf174c4706f7bcf58", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cfc54da95be92a83206c2a943354d6f51e08a405144634abf174c4706f7bcf58", kill_on_drop: false }` [INFO] [stdout] cfc54da95be92a83206c2a943354d6f51e08a405144634abf174c4706f7bcf58 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d04c4e6656682861dbca6b320380e563a6a2c9ff92881c78a7605f3a0a092cd0 [INFO] running `Command { std: "docker" "start" "-a" "d04c4e6656682861dbca6b320380e563a6a2c9ff92881c78a7605f3a0a092cd0", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.123 [INFO] [stderr] Compiling bitflags v0.7.0 [INFO] [stderr] Compiling alloc-no-stdlib v1.3.0 [INFO] [stderr] Compiling brotli-decompressor v1.3.1 [INFO] [stderr] Compiling brotli v2.5.1 [INFO] [stderr] Compiling time v0.1.44 [INFO] [stderr] Compiling vergen v0.1.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] = note: `#[warn(anonymous_parameters)]` on by default [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 [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 [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>(&self, &'a Command, &'a CopyCommand) -> &'a CopyCommand; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command` [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 [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>(&self, &'a Command, &'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 [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+Default>(&self, &'a Command, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command` [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 [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) -> &'a LiteralCommand; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a LiteralCommand` [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 [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>(&self, &'a Command, &'a DictCommand) -> &'a DictCommand; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command` [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 [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>(&self, &'a Command, &'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 [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 *mut c_void>, [INFO] [stdout] 45 | | pub free_func: Option ()>, [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<, SubclassableAl... [INFO] [stdout] 13 | | SubclassableAllocator, [INFO] [stdout] 14 | | SubclassableAllocator<::DefaultCDF16>, [INFO] [stdout] 15 | | SubclassableAllocator>, [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] = note: `#[warn(bare_trait_objects)]` on by default [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 24 - fn cause(&self) -> Option<&error::Error> {None} [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: `#[warn(non_fmt_panics)]` on by default [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 [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:: { [INFO] [stdout] 285 | | codec:Some(codec), [INFO] [stdout] ... | [INFO] [stdout] 288 | | mcommand:mcommand, [INFO] [stdout] 289 | | })); [INFO] [stdout] | |___________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [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: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 `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::::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::::new(allocators.clone()), [INFO] [stdout] ... | [INFO] [stdout] 209 | | SubclassableAllocator::::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: 89 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) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 718 - free_state: &mut Fn(Compressor)->ItemVecAllocator) -> io::Result<()> { [INFO] [stdout] 718 + free_state: &mut dyn Fn(Compressor)->ItemVecAllocator) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 103 - fn cause(&self) -> Option<&error::Error> {None} [INFO] [stdout] 103 + fn cause(&self) -> Option<&dyn error::Error> {None} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `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 associated function `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 associated function `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 associated function `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 associated function `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 associated function `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 associated function `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 associated function `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 associated function `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 associated function `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 21.63s [INFO] running `Command { std: "docker" "inspect" "d04c4e6656682861dbca6b320380e563a6a2c9ff92881c78a7605f3a0a092cd0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d04c4e6656682861dbca6b320380e563a6a2c9ff92881c78a7605f3a0a092cd0", kill_on_drop: false }` [INFO] [stdout] d04c4e6656682861dbca6b320380e563a6a2c9ff92881c78a7605f3a0a092cd0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0d7344433be9c97c0df259743d0d7bd19cddf05fb628ba7019ec5598a6fbd9d8 [INFO] running `Command { std: "docker" "start" "-a" "0d7344433be9c97c0df259743d0d7bd19cddf05fb628ba7019ec5598a6fbd9d8", kill_on_drop: false }` [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] = note: `#[warn(anonymous_parameters)]` on by default [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 [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 [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>(&self, &'a Command, &'a CopyCommand) -> &'a CopyCommand; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command` [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 [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>(&self, &'a Command, &'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 [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+Default>(&self, &'a Command, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command` [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 [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) -> &'a LiteralCommand; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a LiteralCommand` [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 [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>(&self, &'a Command, &'a DictCommand) -> &'a DictCommand; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command` [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 [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>(&self, &'a Command, &'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 [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 *mut c_void>, [INFO] [stdout] 45 | | pub free_func: Option ()>, [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<, SubclassableAl... [INFO] [stdout] 13 | | SubclassableAllocator, [INFO] [stdout] 14 | | SubclassableAllocator<::DefaultCDF16>, [INFO] [stdout] 15 | | SubclassableAllocator>, [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] = note: `#[warn(bare_trait_objects)]` on by default [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 24 - fn cause(&self) -> Option<&error::Error> {None} [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] [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: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: `#[warn(non_fmt_panics)]` on by default [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 [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:: { [INFO] [stdout] 285 | | codec:Some(codec), [INFO] [stdout] ... | [INFO] [stdout] 288 | | mcommand:mcommand, [INFO] [stdout] 289 | | })); [INFO] [stdout] | |___________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [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: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 `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::::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::::new(allocators.clone()), [INFO] [stdout] ... | [INFO] [stdout] 209 | | SubclassableAllocator::::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: 89 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: `#[warn(non_fmt_panics)]` on by default [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 [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 [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 [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: 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: `#[warn(non_fmt_panics)]` on by default [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 [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 [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 = 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::::new()); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [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) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 718 - free_state: &mut Fn(Compressor)->ItemVecAllocator) -> io::Result<()> { [INFO] [stdout] 718 + free_state: &mut dyn Fn(Compressor)->ItemVecAllocator) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 103 - fn cause(&self) -> Option<&error::Error> {None} [INFO] [stdout] 103 + fn cause(&self) -> Option<&dyn error::Error> {None} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `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 associated function `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 associated function `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 associated function `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 associated function `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 associated function `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 associated function `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 associated function `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 associated function `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 associated function `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] = note: `#[warn(anonymous_parameters)]` on by default [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 [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 [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>(&self, &'a Command, &'a CopyCommand) -> &'a CopyCommand; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command` [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 [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>(&self, &'a Command, &'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 [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+Default>(&self, &'a Command, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command` [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 [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) -> &'a LiteralCommand; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a LiteralCommand` [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 [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>(&self, &'a Command, &'a DictCommand) -> &'a DictCommand; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command` [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 [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>(&self, &'a Command, &'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 [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: `#[warn(non_fmt_panics)]` on by default [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 [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 *mut c_void>, [INFO] [stdout] 45 | | pub free_func: Option ()>, [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<, SubclassableAl... [INFO] [stdout] 13 | | SubclassableAllocator, [INFO] [stdout] 14 | | SubclassableAllocator<::DefaultCDF16>, [INFO] [stdout] 15 | | SubclassableAllocator>, [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] = note: `#[warn(bare_trait_objects)]` on by default [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 24 - fn cause(&self) -> Option<&error::Error> {None} [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] = note: `#[warn(array_into_iter)]` on by default [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [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 [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: `#[warn(non_fmt_panics)]` on by default [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 [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: 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 [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 [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 [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 [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 [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 [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: 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:: { [INFO] [stdout] 285 | | codec:Some(codec), [INFO] [stdout] ... | [INFO] [stdout] 288 | | mcommand:mcommand, [INFO] [stdout] 289 | | })); [INFO] [stdout] | |___________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [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: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 `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::::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::::new(allocators.clone()), [INFO] [stdout] ... | [INFO] [stdout] 209 | | SubclassableAllocator::::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: 20 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 103 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 11.24s [INFO] [stderr] Executable unittests src/lib.rs (/opt/rustwide/target/debug/deps/divans-41de831e91fc2d9f) [INFO] [stderr] Executable unittests src/bin/divans.rs (/opt/rustwide/target/debug/deps/divans-47296d1221aecd2f) [INFO] running `Command { std: "docker" "inspect" "0d7344433be9c97c0df259743d0d7bd19cddf05fb628ba7019ec5598a6fbd9d8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0d7344433be9c97c0df259743d0d7bd19cddf05fb628ba7019ec5598a6fbd9d8", kill_on_drop: false }` [INFO] [stdout] 0d7344433be9c97c0df259743d0d7bd19cddf05fb628ba7019ec5598a6fbd9d8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 57d04001d0a42be702dde5dd9eb5ece03315619052ab72e79134e5f5d6c4a1d4 [INFO] running `Command { std: "docker" "start" "-a" "57d04001d0a42be702dde5dd9eb5ece03315619052ab72e79134e5f5d6c4a1d4", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [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] = note: `#[warn(anonymous_parameters)]` on by default [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 [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 [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>(&self, &'a Command, &'a CopyCommand) -> &'a CopyCommand; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command` [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 [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>(&self, &'a Command, &'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 [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+Default>(&self, &'a Command, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command` [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 [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) -> &'a LiteralCommand; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a LiteralCommand` [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 [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>(&self, &'a Command, &'a DictCommand) -> &'a DictCommand; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &'a Command` [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 [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>(&self, &'a Command, &'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 [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 *mut c_void>, [INFO] [stderr] 45 | | pub free_func: Option ()>, [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<, SubclassableAl... [INFO] [stderr] 13 | | SubclassableAllocator, [INFO] [stderr] 14 | | SubclassableAllocator<::DefaultCDF16>, [INFO] [stderr] 15 | | SubclassableAllocator>, [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] = note: `#[warn(bare_trait_objects)]` on by default [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 [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 24 - fn cause(&self) -> Option<&error::Error> {None} [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: `#[warn(non_fmt_panics)]` on by default [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 [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:: { [INFO] [stderr] 285 | | codec:Some(codec), [INFO] [stderr] ... | [INFO] [stderr] 288 | | mcommand:mcommand, [INFO] [stderr] 289 | | })); [INFO] [stderr] | |___________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [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: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 `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::::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::::new(allocators.clone()), [INFO] [stderr] ... | [INFO] [stderr] 209 | | SubclassableAllocator::::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] = note: `#[warn(array_into_iter)]` on by default [INFO] [stderr] = warning: this changes meaning in Rust 2021 [INFO] [stderr] = note: for more information, see [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 [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 [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 [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 [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 [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 [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 [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 89 warnings [INFO] [stderr] warning: `divans` (lib test) generated 103 warnings (89 duplicates) [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) -> io::Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [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 [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 718 - free_state: &mut Fn(Compressor)->ItemVecAllocator) -> io::Result<()> { [INFO] [stderr] 718 + free_state: &mut dyn Fn(Compressor)->ItemVecAllocator) -> 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 [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 103 - fn cause(&self) -> Option<&error::Error> {None} [INFO] [stderr] 103 + fn cause(&self) -> Option<&dyn error::Error> {None} [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `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 associated function `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 associated function `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 associated function `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 associated function `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 associated function `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 associated function `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 associated function `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 associated function `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 associated function `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: `#[warn(non_fmt_panics)]` on by default [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 [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: `#[warn(non_fmt_panics)]` on by default [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 [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 [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: `#[warn(non_fmt_panics)]` on by default [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 [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 [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 [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 = 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::::new()); [INFO] [stderr] | ----^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: `divans` (bin "divans" test) generated 20 warnings [INFO] [stderr] warning: `divans` (example "decompress") generated 2 warnings [INFO] [stderr] warning: `divans` (example "compress") generated 3 warnings [INFO] [stderr] warning: `divans` (example "util_prior_stream_cost") generated 2 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.17s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/divans-41de831e91fc2d9f) [INFO] [stdout] [INFO] [stdout] running 63 tests [INFO] [stderr] encoded size: 24 [INFO] [stderr] effeciency: 2.1054007256147593 [INFO] [stderr] done! [INFO] [stdout] test alloc_util::test::test_non_reuse ... ok [INFO] [stdout] test alloc_util::test::test_reuse ... ok [INFO] [stdout] test arithmetic_coder::test::test_get_nibble ... ok [INFO] [stdout] test arithmetic_coder::test::test_put_nibble ... ok [INFO] [stdout] test cmd_to_raw::test::test_copy_big_overlap ... ok [INFO] [stdout] test cmd_to_raw::test::test_copy_far ... ok [INFO] [stdout] test cmd_to_raw::test::test_copy_near_overlap ... ok [INFO] [stdout] test cmd_to_raw::test::test_insert_huge ... ok [INFO] [stdout] test cmd_to_raw::test::test_insert_medium ... ok [INFO] [stdout] test codec::crc32::test::test_crc32c_numeric ... 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 codec::crc32::test::test_crc32c_numeric_half ... ok [INFO] [stdout] test codec::crc32::test::test_crc32c_qbf ... ok [INFO] [stdout] test codec::crc32::test::test_crc32c_qbf_half ... ok [INFO] [stdout] test priors::test::test_billing_types ... 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_prior ... ok [INFO] [stdout] test priors::test::test_num_dimensions ... ok [INFO] [stdout] test probability::blend_cdf::test::test_blend_lut ... ok [INFO] [stdout] test priors::test::test_get_tuple ... ok [INFO] [stdout] test probability::blend_cdf::test::test_sym_to_start_and_freq ... ok [INFO] [stdout] test 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::opt_frequentist_cdf::test::test_sym_to_start_and_freq ... ok [INFO] [stdout] test priors::test::test_get ... ok [INFO] [stdout] test test_ans::entropy16_lite_trait_test ... ok [INFO] [stdout] test test_mux::test_short_mux ... ok [INFO] [stdout] test test_mux::test_nano_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_real_mux ... ok [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] [stdout] test probability::frequentist_cdf::test::test_nonzero_pdf ... ok [INFO] [stderr] effeciency: 0.9933084853811626 [INFO] [stderr] done! [INFO] [stdout] test test_ans::entropy16_trait_test ... ok [INFO] [stdout] test test_mux::test_sc3_mux ... ok [INFO] [stdout] test test_mux::test_med_mux ... ok [INFO] [stdout] test probability::opt_frequentist_cdf::test::test_nonzero_pdf ... 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_3meg_mux ... ok [INFO] [stdout] test probability::frequentist_cdf::test::test_cdf_offset_to_sym_start_and_freq ... ok [INFO] [stdout] test test_mux::test_balance_mux ... 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::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::blend_cdf::test::test_cdf_offset_to_sym_start_and_freq ... ok [INFO] [stdout] test probability::opt_frequentist_cdf::test::test_stationary_probability ... ok [INFO] [stdout] test probability::frequentist_cdf::test::test_stationary_probability ... 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 writer::test::test_experimental_writer_compressor_on_alice_full ... ok [INFO] [stdout] test reader::test::test_hybrid_reader_compressor_on_unicode_full ... ok [INFO] [stdout] test writer::test::test_hybrid_writer_compressor_on_unicode_full ... ok [INFO] [stdout] test reader::test::test_hybrid_reader_compressor_on_alice_small_buffer ... ok [INFO] [stdout] test writer::test::test_hybrid_writer_compressor_on_alice_small_buffer ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 63 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.21s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/divans.rs (/opt/rustwide/target/debug/deps/divans-47296d1221aecd2f) [INFO] [stdout] [INFO] [stdout] running 19 tests [INFO] [stdout] test integration_test::test_ends_with_truncated_dictionary ... ok [INFO] [stdout] test integration_test::test_e2e_64xp ... ok [INFO] [stdout] test integration_test::test_e2e_32xx ... ok [INFO] [stdout] test integration_test::test_e2e_empty_br_tinybuf ... ok [INFO] [stdout] test integration_test::test_e2e_empty_br ... ok [INFO] [stdout] test integration_test::test_e2e_empty_just_flush ... ok [INFO] [stdout] test integration_test::test_e2e_ones_tinybuf ... ok [INFO] [stdout] test integration_test::test_e2e_empty_tinybuf ... ok [INFO] [stdout] test integration_test::test_alice29 ... ok [INFO] [stdout] test integration_test::test_asyoulik ... ok [INFO] [stdout] test integration_test::test_e2e_empty ... ok [INFO] [stdout] test integration_test::test_random_then_unicode ... ok [INFO] [stdout] test integration_test::test_e2e_262145_at ... ok [INFO] [stdout] test benchmark::test_raw_adaptive_literal_stream ... ok [INFO] [stdout] test benchmark::test_raw_literal_stream ... ok [INFO] [stdout] test benchmark::test_raw_ir_literal_stream ... ok [INFO] [stdout] test integration_test::test_e2e_alice ... ok [INFO] [stdout] test integration_test::test_e2e_smallbuf_without_priors ... ok [INFO] [stdout] test 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 8.21s [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" "57d04001d0a42be702dde5dd9eb5ece03315619052ab72e79134e5f5d6c4a1d4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "57d04001d0a42be702dde5dd9eb5ece03315619052ab72e79134e5f5d6c4a1d4", kill_on_drop: false }` [INFO] [stdout] 57d04001d0a42be702dde5dd9eb5ece03315619052ab72e79134e5f5d6c4a1d4