[INFO] fetching crate redux 0.2.0...
[INFO] building redux-0.2.0 against master#ad85bc524b1ad696e42061ad8338d382dffbdbe5 for pr-146237-1
[INFO] extracting crate redux 0.2.0 into /workspace/builds/worker-6-tc1/source
[INFO] started tweaking crates.io crate redux 0.2.0
[INFO] finished tweaking crates.io crate redux 0.2.0
[INFO] tweaked toml for crates.io crate redux 0.2.0 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate redux 0.2.0 on toolchain ad85bc524b1ad696e42061ad8338d382dffbdbe5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 12 packages to latest compatible versions
[INFO] [stderr]       Adding rand v0.3.23 (available: v0.9.2)
[INFO] [stderr]       Adding time v0.1.45 (available: v0.3.44)
[INFO] [stderr]       Adding wasi v0.10.0+wasi-snapshot-preview1 (available: v0.10.2+wasi-snapshot-preview1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f27b44af4a18ff86ce9771c803d0be4b2eab92691ab28fdb967f87467b26d127
[INFO] running `Command { std: "docker" "start" "-a" "f27b44af4a18ff86ce9771c803d0be4b2eab92691ab28fdb967f87467b26d127", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f27b44af4a18ff86ce9771c803d0be4b2eab92691ab28fdb967f87467b26d127", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f27b44af4a18ff86ce9771c803d0be4b2eab92691ab28fdb967f87467b26d127", kill_on_drop: false }`
[INFO] [stdout] f27b44af4a18ff86ce9771c803d0be4b2eab92691ab28fdb967f87467b26d127
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 510123c52ffaa5be0ae87ded678953735355b9119a4871630ccaf2d261151ff7
[INFO] running `Command { std: "docker" "start" "-a" "510123c52ffaa5be0ae87ded678953735355b9119a4871630ccaf2d261151ff7", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling redux v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bitio/mod.rs:177:17
[INFO] [stdout]     |
[INFO] [stdout] 177 |                 try!(self.flush_bits())
[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/codec.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         try!(output.write_bits(if bit { 1 } else { 0 }, 1));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |             try!(output.write_bits(if bit { 0 } else { 1 }, 1));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:50:46
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.pending = (self.pending << 1) | try!(input.read_bits(1)) as u64;
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:57:27
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let (low, high) = try!(self.model.get_frequency(symbol));
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:64:16
[INFO] [stdout]    |
[INFO] [stdout] 64 |                try!(self.put_bit(false, output));
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:70:16
[INFO] [stdout]    |
[INFO] [stdout] 70 |                try!(self.put_bit(true, output));
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]   --> src/codec.rs:77:28
[INFO] [stdout]    |
[INFO] [stdout] 77 |                self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stdout]    |                            ^^                                       ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 77 -                self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stdout] 77 +                self.low -= self.model.parameters().code_one_fourth;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]   --> src/codec.rs:78:29
[INFO] [stdout]    |
[INFO] [stdout] 78 |                self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stdout]    |                             ^^                                       ^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 78 -                self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stdout] 78 +                self.high -= self.model.parameters().code_one_fourth;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |             try!(output.flush_bits());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:94:17
[INFO] [stdout]    |
[INFO] [stdout] 94 |                 try!(self.put_bit(mask != 0, output));
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |             try!(self.compress_symbol(symbol, output));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around method argument
[INFO] [stdout]    --> src/codec.rs:106:48
[INFO] [stdout]     |
[INFO] [stdout] 106 |             let symbol = match input.read_bits({ self.model.parameters().symbol_bits }) {
[INFO] [stdout]     |                                                ^^                                   ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 106 -             let symbol = match input.read_bits({ self.model.parameters().symbol_bits }) {
[INFO] [stdout] 106 +             let symbol = match input.read_bits(self.model.parameters().symbol_bits) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:125:13
[INFO] [stdout]     |
[INFO] [stdout] 125 |             try!(self.get_bit(input));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:132:35
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let (symbol, low, high) = try!(self.model.get_symbol(value));
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:157:13
[INFO] [stdout]     |
[INFO] [stdout] 157 |             try!(self.get_bit(input));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:144:33
[INFO] [stdout]     |
[INFO] [stdout] 144 |                 self.pending -= { self.model.parameters().code_half };
[INFO] [stdout]     |                                 ^^                                 ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 144 -                 self.pending -= { self.model.parameters().code_half };
[INFO] [stdout] 144 +                 self.pending -= self.model.parameters().code_half;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:145:29
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 self.low -= { self.model.parameters().code_half };
[INFO] [stdout]     |                             ^^                                 ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 145 -                 self.low -= { self.model.parameters().code_half };
[INFO] [stdout] 145 +                 self.low -= self.model.parameters().code_half;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:146:30
[INFO] [stdout]     |
[INFO] [stdout] 146 |                 self.high -= { self.model.parameters().code_half };
[INFO] [stdout]     |                              ^^                                 ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 146 -                 self.high -= { self.model.parameters().code_half };
[INFO] [stdout] 146 +                 self.high -= self.model.parameters().code_half;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:148:33
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 self.pending -= { self.model.parameters().code_one_fourth };
[INFO] [stdout]     |                                 ^^                                       ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 148 -                 self.pending -= { self.model.parameters().code_one_fourth };
[INFO] [stdout] 148 +                 self.pending -= self.model.parameters().code_one_fourth;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:149:29
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stdout]     |                             ^^                                       ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 149 -                 self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stdout] 149 +                 self.low -= self.model.parameters().code_one_fourth;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:150:30
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stdout]     |                              ^^                                       ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 150 -                 self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stdout] 150 +                 self.high -= self.model.parameters().code_one_fourth;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:166:26
[INFO] [stdout]     |
[INFO] [stdout] 166 |             let symbol = try!(self.decompress_symbol(input));
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:171:17
[INFO] [stdout]     |
[INFO] [stdout] 171 |                 try!(output.write_bits(symbol, { self.model.parameters().symbol_bits }));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around method argument
[INFO] [stdout]    --> src/codec.rs:171:48
[INFO] [stdout]     |
[INFO] [stdout] 171 |                 try!(output.write_bits(symbol, { self.model.parameters().symbol_bits }));
[INFO] [stdout]     |                                                ^^                                   ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 171 -                 try!(output.write_bits(symbol, { self.model.parameters().symbol_bits }));
[INFO] [stdout] 171 +                 try!(output.write_bits(symbol, self.model.parameters().symbol_bits));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout] 107 |     try!(codec.compress_stream(&mut input, &mut output));
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     try!(codec.decompress_stream(&mut input, &mut output));
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bitio/mod.rs:58:20
[INFO] [stdout]    |
[INFO] [stdout] 58 |     input: &'a mut Read,
[INFO] [stdout]    |                    ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 58 |     input: &'a mut dyn Read,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bitio/mod.rs:128:21
[INFO] [stdout]     |
[INFO] [stdout] 128 |     output: &'a mut Write,
[INFO] [stdout]     |                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 128 |     output: &'a mut dyn Write,
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/codec.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     model: Box<Model>,
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     model: Box<dyn Model>,
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bitio/mod.rs:63:32
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn new(reader: &'a mut Read) -> BitReader<'a> {
[INFO] [stdout]    |                                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn new(reader: &'a mut dyn Read) -> BitReader<'a> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bitio/mod.rs:133:32
[INFO] [stdout]     |
[INFO] [stdout] 133 |     pub fn new(writer: &'a mut Write) -> BitWriter<'a> {
[INFO] [stdout]     |                                ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 133 |     pub fn new(writer: &'a mut dyn Write) -> BitWriter<'a> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:102:31
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                               ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut dyn io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:102:55
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                       ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut dyn io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:102:77
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                                             ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<dyn model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:113:33
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut dyn io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:113:57
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut dyn io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:113:79
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<dyn model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/codec.rs:28:23
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn new(m: Box<Model>) -> Codec {
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn new(m: Box<dyn Model>) -> Codec {
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/codec.rs:39:51
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn put_bit(&mut self, bit: bool, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]    |                                                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn put_bit(&mut self, bit: bool, output: &mut dyn BitWrite) -> Result<()> {
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/codec.rs:49:39
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn get_bit(&mut self, input: &mut BitRead) -> Result<()> {
[INFO] [stdout]    |                                       ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn get_bit(&mut self, input: &mut dyn BitRead) -> Result<()> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/codec.rs:55:67
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn compress_symbol(&mut self, symbol: usize, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]    |                                                                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn compress_symbol(&mut self, symbol: usize, output: &mut dyn BitWrite) -> Result<()> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/codec.rs:104:51
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn compress_stream(&mut self, input: &mut BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                   ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn compress_stream(&mut self, input: &mut dyn BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/codec.rs:104:73
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn compress_stream(&mut self, input: &mut BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn compress_stream(&mut self, input: &mut BitRead, output: &mut dyn BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/codec.rs:123:53
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn decompress_symbol(&mut self, input: &mut BitRead) -> Result<usize> {
[INFO] [stdout]     |                                                     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn decompress_symbol(&mut self, input: &mut dyn BitRead) -> Result<usize> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/codec.rs:164:53
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn decompress_stream(&mut self, input: &mut BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn decompress_stream(&mut self, input: &mut dyn BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/codec.rs:164:75
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn decompress_stream(&mut self, input: &mut BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                                           ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn decompress_stream(&mut self, input: &mut BitRead, output: &mut dyn BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/adaptive_linear.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(p: Parameters) -> Box<Model> {
[INFO] [stdout]    |                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(p: Parameters) -> Box<dyn Model> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/adaptive_tree.rs:36:38
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn new(p: Parameters) -> Box<Model> {
[INFO] [stdout]    |                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn new(p: Parameters) -> Box<dyn Model> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:90:24
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let mut input: Box<io::Read> = if options.is_stdin() {
[INFO] [stdout]    |                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let mut input: Box<dyn io::Read> = if options.is_stdin() {
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:99:25
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let mut output: Box<io::Write> = if options.is_stdout() {
[INFO] [stdout]    |                         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let mut output: Box<dyn io::Write> = if options.is_stdout() {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.93s
[INFO] running `Command { std: "docker" "inspect" "510123c52ffaa5be0ae87ded678953735355b9119a4871630ccaf2d261151ff7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "510123c52ffaa5be0ae87ded678953735355b9119a4871630ccaf2d261151ff7", kill_on_drop: false }`
[INFO] [stdout] 510123c52ffaa5be0ae87ded678953735355b9119a4871630ccaf2d261151ff7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 288721df7c1c49198c50481cb96c74038e7f7af6a3506138143a3a95c2cc8752
[INFO] running `Command { std: "docker" "start" "-a" "288721df7c1c49198c50481cb96c74038e7f7af6a3506138143a3a95c2cc8752", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bitio/mod.rs:177:17
[INFO] [stdout]     |
[INFO] [stdout] 177 |                 try!(self.flush_bits())
[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/codec.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         try!(output.write_bits(if bit { 1 } else { 0 }, 1));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |             try!(output.write_bits(if bit { 0 } else { 1 }, 1));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:50:46
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.pending = (self.pending << 1) | try!(input.read_bits(1)) as u64;
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:57:27
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let (low, high) = try!(self.model.get_frequency(symbol));
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:64:16
[INFO] [stdout]    |
[INFO] [stdout] 64 |                try!(self.put_bit(false, output));
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:70:16
[INFO] [stdout]    |
[INFO] [stdout] 70 |                try!(self.put_bit(true, output));
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]   --> src/codec.rs:77:28
[INFO] [stdout]    |
[INFO] [stdout] 77 |                self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stdout]    |                            ^^                                       ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 77 -                self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stdout] 77 +                self.low -= self.model.parameters().code_one_fourth;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]   --> src/codec.rs:78:29
[INFO] [stdout]    |
[INFO] [stdout] 78 |                self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stdout]    |                             ^^                                       ^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 78 -                self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stdout] 78 +                self.high -= self.model.parameters().code_one_fourth;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |             try!(output.flush_bits());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:94:17
[INFO] [stdout]    |
[INFO] [stdout] 94 |                 try!(self.put_bit(mask != 0, output));
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |             try!(self.compress_symbol(symbol, output));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around method argument
[INFO] [stdout]    --> src/codec.rs:106:48
[INFO] [stdout]     |
[INFO] [stdout] 106 |             let symbol = match input.read_bits({ self.model.parameters().symbol_bits }) {
[INFO] [stdout]     |                                                ^^                                   ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 106 -             let symbol = match input.read_bits({ self.model.parameters().symbol_bits }) {
[INFO] [stdout] 106 +             let symbol = match input.read_bits(self.model.parameters().symbol_bits) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:125:13
[INFO] [stdout]     |
[INFO] [stdout] 125 |             try!(self.get_bit(input));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:132:35
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let (symbol, low, high) = try!(self.model.get_symbol(value));
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:157:13
[INFO] [stdout]     |
[INFO] [stdout] 157 |             try!(self.get_bit(input));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:144:33
[INFO] [stdout]     |
[INFO] [stdout] 144 |                 self.pending -= { self.model.parameters().code_half };
[INFO] [stdout]     |                                 ^^                                 ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 144 -                 self.pending -= { self.model.parameters().code_half };
[INFO] [stdout] 144 +                 self.pending -= self.model.parameters().code_half;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:145:29
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 self.low -= { self.model.parameters().code_half };
[INFO] [stdout]     |                             ^^                                 ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 145 -                 self.low -= { self.model.parameters().code_half };
[INFO] [stdout] 145 +                 self.low -= self.model.parameters().code_half;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:146:30
[INFO] [stdout]     |
[INFO] [stdout] 146 |                 self.high -= { self.model.parameters().code_half };
[INFO] [stdout]     |                              ^^                                 ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 146 -                 self.high -= { self.model.parameters().code_half };
[INFO] [stdout] 146 +                 self.high -= self.model.parameters().code_half;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:148:33
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 self.pending -= { self.model.parameters().code_one_fourth };
[INFO] [stdout]     |                                 ^^                                       ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 148 -                 self.pending -= { self.model.parameters().code_one_fourth };
[INFO] [stdout] 148 +                 self.pending -= self.model.parameters().code_one_fourth;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:149:29
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stdout]     |                             ^^                                       ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 149 -                 self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stdout] 149 +                 self.low -= self.model.parameters().code_one_fourth;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:150:30
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stdout]     |                              ^^                                       ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 150 -                 self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stdout] 150 +                 self.high -= self.model.parameters().code_one_fourth;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:166:26
[INFO] [stdout]     |
[INFO] [stdout] 166 |             let symbol = try!(self.decompress_symbol(input));
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:171:17
[INFO] [stdout]     |
[INFO] [stdout] 171 |                 try!(output.write_bits(symbol, { self.model.parameters().symbol_bits }));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around method argument
[INFO] [stdout]    --> src/codec.rs:171:48
[INFO] [stdout]     |
[INFO] [stdout] 171 |                 try!(output.write_bits(symbol, { self.model.parameters().symbol_bits }));
[INFO] [stdout]     |                                                ^^                                   ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 171 -                 try!(output.write_bits(symbol, { self.model.parameters().symbol_bits }));
[INFO] [stdout] 171 +                 try!(output.write_bits(symbol, self.model.parameters().symbol_bits));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout] 107 |     try!(codec.compress_stream(&mut input, &mut output));
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     try!(codec.decompress_stream(&mut input, &mut output));
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bitio/mod.rs:58:20
[INFO] [stdout]    |
[INFO] [stdout] 58 |     input: &'a mut Read,
[INFO] [stdout]    |                    ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 58 |     input: &'a mut dyn Read,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bitio/mod.rs:128:21
[INFO] [stdout]     |
[INFO] [stdout] 128 |     output: &'a mut Write,
[INFO] [stdout]     |                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 128 |     output: &'a mut dyn Write,
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/codec.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     model: Box<Model>,
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     model: Box<dyn Model>,
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bitio/mod.rs:63:32
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn new(reader: &'a mut Read) -> BitReader<'a> {
[INFO] [stdout]    |                                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn new(reader: &'a mut dyn Read) -> BitReader<'a> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bitio/mod.rs:133:32
[INFO] [stdout]     |
[INFO] [stdout] 133 |     pub fn new(writer: &'a mut Write) -> BitWriter<'a> {
[INFO] [stdout]     |                                ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 133 |     pub fn new(writer: &'a mut dyn Write) -> BitWriter<'a> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:102:31
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                               ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut dyn io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:102:55
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                       ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut dyn io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:102:77
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                                             ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<dyn model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:113:33
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut dyn io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:113:57
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut dyn io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:113:79
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<dyn model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/codec.rs:28:23
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn new(m: Box<Model>) -> Codec {
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn new(m: Box<dyn Model>) -> Codec {
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/codec.rs:39:51
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn put_bit(&mut self, bit: bool, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]    |                                                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn put_bit(&mut self, bit: bool, output: &mut dyn BitWrite) -> Result<()> {
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/codec.rs:49:39
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn get_bit(&mut self, input: &mut BitRead) -> Result<()> {
[INFO] [stdout]    |                                       ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn get_bit(&mut self, input: &mut dyn BitRead) -> Result<()> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/codec.rs:55:67
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn compress_symbol(&mut self, symbol: usize, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]    |                                                                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn compress_symbol(&mut self, symbol: usize, output: &mut dyn BitWrite) -> Result<()> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/codec.rs:104:51
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn compress_stream(&mut self, input: &mut BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                   ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn compress_stream(&mut self, input: &mut dyn BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/codec.rs:104:73
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn compress_stream(&mut self, input: &mut BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn compress_stream(&mut self, input: &mut BitRead, output: &mut dyn BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/codec.rs:123:53
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn decompress_symbol(&mut self, input: &mut BitRead) -> Result<usize> {
[INFO] [stdout]     |                                                     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn decompress_symbol(&mut self, input: &mut dyn BitRead) -> Result<usize> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/codec.rs:164:53
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn decompress_stream(&mut self, input: &mut BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn decompress_stream(&mut self, input: &mut dyn BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/codec.rs:164:75
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn decompress_stream(&mut self, input: &mut BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                                           ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn decompress_stream(&mut self, input: &mut BitRead, output: &mut dyn BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/adaptive_linear.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(p: Parameters) -> Box<Model> {
[INFO] [stdout]    |                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(p: Parameters) -> Box<dyn Model> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/adaptive_tree.rs:36:38
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn new(p: Parameters) -> Box<Model> {
[INFO] [stdout]    |                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn new(p: Parameters) -> Box<dyn Model> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:90:24
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let mut input: Box<io::Read> = if options.is_stdin() {
[INFO] [stdout]    |                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let mut input: Box<dyn io::Read> = if options.is_stdin() {
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:99:25
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let mut output: Box<io::Write> = if options.is_stdout() {
[INFO] [stdout]    |                         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let mut output: Box<dyn io::Write> = if options.is_stdout() {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling redux v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> tests/corpora.rs:32:48
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn test_operation(model: fn(Parameters) -> Box<Model>, bits: usize,
[INFO] [stdout]    |                                                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn test_operation(model: fn(Parameters) -> Box<dyn Model>, bits: usize,
[INFO] [stdout]    |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> tests/corpora.rs:33:33
[INFO] [stdout]    |
[INFO] [stdout] 33 |                  codec: fn(&mut Read, &mut Write, Box<Model>) -> redux::Result<(u64, u64)>,
[INFO] [stdout]    |                                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 33 |                  codec: fn(&mut dyn Read, &mut Write, Box<Model>) -> redux::Result<(u64, u64)>,
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> tests/corpora.rs:33:44
[INFO] [stdout]    |
[INFO] [stdout] 33 |                  codec: fn(&mut Read, &mut Write, Box<Model>) -> redux::Result<(u64, u64)>,
[INFO] [stdout]    |                                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 33 |                  codec: fn(&mut Read, &mut dyn Write, Box<Model>) -> redux::Result<(u64, u64)>,
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> tests/corpora.rs:33:55
[INFO] [stdout]    |
[INFO] [stdout] 33 |                  codec: fn(&mut Read, &mut Write, Box<Model>) -> redux::Result<(u64, u64)>,
[INFO] [stdout]    |                                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 33 |                  codec: fn(&mut Read, &mut Write, Box<dyn Model>) -> redux::Result<(u64, u64)>,
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:90:24
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let mut input: Box<io::Read> = if options.is_stdin() {
[INFO] [stdout]    |                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let mut input: Box<dyn io::Read> = if options.is_stdin() {
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:99:25
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let mut output: Box<io::Write> = if options.is_stdout() {
[INFO] [stdout]    |                         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let mut output: Box<dyn io::Write> = if options.is_stdout() {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> tests/corpora.rs:45:43
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn test_file(model: fn(Parameters) -> Box<Model>, bits: usize, file: &Path) -> (u64, u64, f64, f64) {
[INFO] [stdout]    |                                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn test_file(model: fn(Parameters) -> Box<dyn Model>, bits: usize, file: &Path) -> (u64, u64, f64, f64) {
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> tests/corpora.rs:67:70
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn test_model(corpus: &str, name: &str, model: fn(Parameters) -> Box<Model>, bits: usize) {
[INFO] [stdout]    |                                                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn test_model(corpus: &str, name: &str, model: fn(Parameters) -> Box<dyn Model>, bits: usize) {
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bitio/mod.rs:177:17
[INFO] [stdout]     |
[INFO] [stdout] 177 |                 try!(self.flush_bits())
[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/codec.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         try!(output.write_bits(if bit { 1 } else { 0 }, 1));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |             try!(output.write_bits(if bit { 0 } else { 1 }, 1));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:50:46
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.pending = (self.pending << 1) | try!(input.read_bits(1)) as u64;
[INFO] [stdout]    |                                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:57:27
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let (low, high) = try!(self.model.get_frequency(symbol));
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:64:16
[INFO] [stdout]    |
[INFO] [stdout] 64 |                try!(self.put_bit(false, output));
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:70:16
[INFO] [stdout]    |
[INFO] [stdout] 70 |                try!(self.put_bit(true, output));
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]   --> src/codec.rs:77:28
[INFO] [stdout]    |
[INFO] [stdout] 77 |                self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stdout]    |                            ^^                                       ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 77 -                self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stdout] 77 +                self.low -= self.model.parameters().code_one_fourth;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]   --> src/codec.rs:78:29
[INFO] [stdout]    |
[INFO] [stdout] 78 |                self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stdout]    |                             ^^                                       ^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 78 -                self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stdout] 78 +                self.high -= self.model.parameters().code_one_fourth;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |             try!(output.flush_bits());
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:94:17
[INFO] [stdout]    |
[INFO] [stdout] 94 |                 try!(self.put_bit(mask != 0, output));
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |             try!(self.compress_symbol(symbol, output));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around method argument
[INFO] [stdout]    --> src/codec.rs:106:48
[INFO] [stdout]     |
[INFO] [stdout] 106 |             let symbol = match input.read_bits({ self.model.parameters().symbol_bits }) {
[INFO] [stdout]     |                                                ^^                                   ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 106 -             let symbol = match input.read_bits({ self.model.parameters().symbol_bits }) {
[INFO] [stdout] 106 +             let symbol = match input.read_bits(self.model.parameters().symbol_bits) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:125:13
[INFO] [stdout]     |
[INFO] [stdout] 125 |             try!(self.get_bit(input));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:132:35
[INFO] [stdout]     |
[INFO] [stdout] 132 |         let (symbol, low, high) = try!(self.model.get_symbol(value));
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:157:13
[INFO] [stdout]     |
[INFO] [stdout] 157 |             try!(self.get_bit(input));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:144:33
[INFO] [stdout]     |
[INFO] [stdout] 144 |                 self.pending -= { self.model.parameters().code_half };
[INFO] [stdout]     |                                 ^^                                 ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 144 -                 self.pending -= { self.model.parameters().code_half };
[INFO] [stdout] 144 +                 self.pending -= self.model.parameters().code_half;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:145:29
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 self.low -= { self.model.parameters().code_half };
[INFO] [stdout]     |                             ^^                                 ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 145 -                 self.low -= { self.model.parameters().code_half };
[INFO] [stdout] 145 +                 self.low -= self.model.parameters().code_half;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:146:30
[INFO] [stdout]     |
[INFO] [stdout] 146 |                 self.high -= { self.model.parameters().code_half };
[INFO] [stdout]     |                              ^^                                 ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 146 -                 self.high -= { self.model.parameters().code_half };
[INFO] [stdout] 146 +                 self.high -= self.model.parameters().code_half;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:148:33
[INFO] [stdout]     |
[INFO] [stdout] 148 |                 self.pending -= { self.model.parameters().code_one_fourth };
[INFO] [stdout]     |                                 ^^                                       ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 148 -                 self.pending -= { self.model.parameters().code_one_fourth };
[INFO] [stdout] 148 +                 self.pending -= self.model.parameters().code_one_fourth;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:149:29
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stdout]     |                             ^^                                       ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 149 -                 self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stdout] 149 +                 self.low -= self.model.parameters().code_one_fourth;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/codec.rs:150:30
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stdout]     |                              ^^                                       ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 150 -                 self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stdout] 150 +                 self.high -= self.model.parameters().code_one_fourth;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:166:26
[INFO] [stdout]     |
[INFO] [stdout] 166 |             let symbol = try!(self.decompress_symbol(input));
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codec.rs:171:17
[INFO] [stdout]     |
[INFO] [stdout] 171 |                 try!(output.write_bits(symbol, { self.model.parameters().symbol_bits }));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around method argument
[INFO] [stdout]    --> src/codec.rs:171:48
[INFO] [stdout]     |
[INFO] [stdout] 171 |                 try!(output.write_bits(symbol, { self.model.parameters().symbol_bits }));
[INFO] [stdout]     |                                                ^^                                   ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 171 -                 try!(output.write_bits(symbol, { self.model.parameters().symbol_bits }));
[INFO] [stdout] 171 +                 try!(output.write_bits(symbol, self.model.parameters().symbol_bits));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout] 107 |     try!(codec.compress_stream(&mut input, &mut output));
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     try!(codec.decompress_stream(&mut input, &mut output));
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bitio/mod.rs:58:20
[INFO] [stdout]    |
[INFO] [stdout] 58 |     input: &'a mut Read,
[INFO] [stdout]    |                    ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 58 |     input: &'a mut dyn Read,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bitio/mod.rs:128:21
[INFO] [stdout]     |
[INFO] [stdout] 128 |     output: &'a mut Write,
[INFO] [stdout]     |                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 128 |     output: &'a mut dyn Write,
[INFO] [stdout]     |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/codec.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     model: Box<Model>,
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     model: Box<dyn Model>,
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bitio/mod.rs:63:32
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn new(reader: &'a mut Read) -> BitReader<'a> {
[INFO] [stdout]    |                                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn new(reader: &'a mut dyn Read) -> BitReader<'a> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bitio/mod.rs:133:32
[INFO] [stdout]     |
[INFO] [stdout] 133 |     pub fn new(writer: &'a mut Write) -> BitWriter<'a> {
[INFO] [stdout]     |                                ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 133 |     pub fn new(writer: &'a mut dyn Write) -> BitWriter<'a> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/tests.rs:23:26
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn get_invalid_value(m: &Model) -> u64 {
[INFO] [stdout]    |                          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn get_invalid_value(m: &dyn Model) -> u64 {
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/tests.rs:27:24
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn get_valid_value(m: &Model) -> u64 {
[INFO] [stdout]    |                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn get_valid_value(m: &dyn Model) -> u64 {
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/tests.rs:31:32
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn compare_freq_total(linear: &Model, tree: &Model) {
[INFO] [stdout]    |                                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn compare_freq_total(linear: &dyn Model, tree: &Model) {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/tests.rs:31:46
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn compare_freq_total(linear: &Model, tree: &Model) {
[INFO] [stdout]    |                                              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn compare_freq_total(linear: &Model, tree: &dyn Model) {
[INFO] [stdout]    |                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/tests.rs:38:33
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn compare_freq_tables(linear: &Model, tree: &Model) {
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn compare_freq_tables(linear: &dyn Model, tree: &Model) {
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/tests.rs:38:47
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn compare_freq_tables(linear: &Model, tree: &Model) {
[INFO] [stdout]    |                                               ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn compare_freq_tables(linear: &Model, tree: &dyn Model) {
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:102:31
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                               ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut dyn io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:102:55
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                       ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut dyn io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:102:77
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                                             ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<dyn model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:113:33
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut dyn io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:113:57
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut dyn io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:113:79
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                                               ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<dyn model::Model>) -> Result<(u64, u64)> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/codec.rs:28:23
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn new(m: Box<Model>) -> Codec {
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn new(m: Box<dyn Model>) -> Codec {
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/codec.rs:39:51
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn put_bit(&mut self, bit: bool, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]    |                                                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn put_bit(&mut self, bit: bool, output: &mut dyn BitWrite) -> Result<()> {
[INFO] [stdout]    |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/codec.rs:49:39
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn get_bit(&mut self, input: &mut BitRead) -> Result<()> {
[INFO] [stdout]    |                                       ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn get_bit(&mut self, input: &mut dyn BitRead) -> Result<()> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/codec.rs:55:67
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn compress_symbol(&mut self, symbol: usize, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]    |                                                                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn compress_symbol(&mut self, symbol: usize, output: &mut dyn BitWrite) -> Result<()> {
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/codec.rs:104:51
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn compress_stream(&mut self, input: &mut BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                   ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn compress_stream(&mut self, input: &mut dyn BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/codec.rs:104:73
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn compress_stream(&mut self, input: &mut BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn compress_stream(&mut self, input: &mut BitRead, output: &mut dyn BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/codec.rs:123:53
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn decompress_symbol(&mut self, input: &mut BitRead) -> Result<usize> {
[INFO] [stdout]     |                                                     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn decompress_symbol(&mut self, input: &mut dyn BitRead) -> Result<usize> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/codec.rs:164:53
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn decompress_stream(&mut self, input: &mut BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn decompress_stream(&mut self, input: &mut dyn BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/codec.rs:164:75
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn decompress_stream(&mut self, input: &mut BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                                           ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 164 |     pub fn decompress_stream(&mut self, input: &mut BitRead, output: &mut dyn BitWrite) -> Result<()> {
[INFO] [stdout]     |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/adaptive_linear.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(p: Parameters) -> Box<Model> {
[INFO] [stdout]    |                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(p: Parameters) -> Box<dyn Model> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/model/adaptive_tree.rs:36:38
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn new(p: Parameters) -> Box<Model> {
[INFO] [stdout]    |                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn new(p: Parameters) -> Box<dyn Model> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused comparison that must be used
[INFO] [stdout]    --> src/lib.rs:128:32
[INFO] [stdout]     |
[INFO] [stdout] 128 |         ($a:expr, $b:expr) => ($a != $b)
[INFO] [stdout]     |                                ^^^^^^^^ the comparison produces a value
[INFO] [stdout] ...
[INFO] [stdout] 136 |         assert_ne!(Eof, InvalidInput);
[INFO] [stdout]     |         ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `assert_ne` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let _ = assert_ne!(Eof, InvalidInput);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused comparison that must be used
[INFO] [stdout]    --> src/lib.rs:128:32
[INFO] [stdout]     |
[INFO] [stdout] 128 |         ($a:expr, $b:expr) => ($a != $b)
[INFO] [stdout]     |                                ^^^^^^^^ the comparison produces a value
[INFO] [stdout] ...
[INFO] [stdout] 137 |         assert_ne!(InvalidInput, IoError(io::Error::new(io::ErrorKind::Other, "Other")));
[INFO] [stdout]     |         -------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `assert_ne` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 137 |         let _ = assert_ne!(InvalidInput, IoError(io::Error::new(io::ErrorKind::Other, "Other")));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused comparison that must be used
[INFO] [stdout]    --> src/lib.rs:128:32
[INFO] [stdout]     |
[INFO] [stdout] 128 |         ($a:expr, $b:expr) => ($a != $b)
[INFO] [stdout]     |                                ^^^^^^^^ the comparison produces a value
[INFO] [stdout] ...
[INFO] [stdout] 138 |         assert_ne!(IoError(io::Error::new(io::ErrorKind::NotFound, "NotFound")), Eof);
[INFO] [stdout]     |         ----------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `assert_ne` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let _ = assert_ne!(IoError(io::Error::new(io::ErrorKind::NotFound, "NotFound")), Eof);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.46s
[INFO] running `Command { std: "docker" "inspect" "288721df7c1c49198c50481cb96c74038e7f7af6a3506138143a3a95c2cc8752", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "288721df7c1c49198c50481cb96c74038e7f7af6a3506138143a3a95c2cc8752", kill_on_drop: false }`
[INFO] [stdout] 288721df7c1c49198c50481cb96c74038e7f7af6a3506138143a3a95c2cc8752
