[INFO] fetching crate redux 0.2.0...
[INFO] testing redux-0.2.0 against 1.95.0 for beta-1.96-2
[INFO] extracting crate redux 0.2.0 into /workspace/builds/worker-0-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-0-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate redux 0.2.0 on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "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" "+1.95.0" "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.10.1)
[INFO] [stderr]       Adding time v0.1.45 (available: v0.3.47)
[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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rand v0.3.23
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 417f016f6164a0c5e8430b1ca7855ecc38bb2e1cf6376a4baea6f0fe012bdf2c
[INFO] running `Command { std: "docker" "start" "-a" "417f016f6164a0c5e8430b1ca7855ecc38bb2e1cf6376a4baea6f0fe012bdf2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "417f016f6164a0c5e8430b1ca7855ecc38bb2e1cf6376a4baea6f0fe012bdf2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "417f016f6164a0c5e8430b1ca7855ecc38bb2e1cf6376a4baea6f0fe012bdf2c", kill_on_drop: false }`
[INFO] [stdout] 417f016f6164a0c5e8430b1ca7855ecc38bb2e1cf6376a4baea6f0fe012bdf2c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a06ce8e82c7c9f37fa5fe73241ad57d309726ca6a885dd5f17645a935ab24c79
[INFO] running `Command { std: "docker" "start" "-a" "a06ce8e82c7c9f37fa5fe73241ad57d309726ca6a885dd5f17645a935ab24c79", 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.90s
[INFO] running `Command { std: "docker" "inspect" "a06ce8e82c7c9f37fa5fe73241ad57d309726ca6a885dd5f17645a935ab24c79", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a06ce8e82c7c9f37fa5fe73241ad57d309726ca6a885dd5f17645a935ab24c79", kill_on_drop: false }`
[INFO] [stdout] a06ce8e82c7c9f37fa5fe73241ad57d309726ca6a885dd5f17645a935ab24c79
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6520c102d43c3c764efc3e5b686409c0eb07b99f7557717d5dd64cddb7aa8970
[INFO] running `Command { std: "docker" "start" "-a" "6520c102d43c3c764efc3e5b686409c0eb07b99f7557717d5dd64cddb7aa8970", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling libc v0.2.186
[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 rand v0.4.6
[INFO] [stderr]    Compiling time v0.1.45
[INFO] [stderr]    Compiling rand v0.3.23
[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]   --> 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: 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: 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 4.13s
[INFO] running `Command { std: "docker" "inspect" "6520c102d43c3c764efc3e5b686409c0eb07b99f7557717d5dd64cddb7aa8970", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6520c102d43c3c764efc3e5b686409c0eb07b99f7557717d5dd64cddb7aa8970", kill_on_drop: false }`
[INFO] [stdout] 6520c102d43c3c764efc3e5b686409c0eb07b99f7557717d5dd64cddb7aa8970
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d3136c5fd78e889a7aa9fc1261cd9aa85cb45aa7b21b76787ee4bc6f33d394dc
[INFO] running `Command { std: "docker" "start" "-a" "d3136c5fd78e889a7aa9fc1261cd9aa85cb45aa7b21b76787ee4bc6f33d394dc", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/bitio/mod.rs:177:17
[INFO] [stderr]     |
[INFO] [stderr] 177 |                 try!(self.flush_bits())
[INFO] [stderr]     |                 ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/codec.rs:40:9
[INFO] [stderr]    |
[INFO] [stderr] 40 |         try!(output.write_bits(if bit { 1 } else { 0 }, 1));
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/codec.rs:42:13
[INFO] [stderr]    |
[INFO] [stderr] 42 |             try!(output.write_bits(if bit { 0 } else { 1 }, 1));
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/codec.rs:50:46
[INFO] [stderr]    |
[INFO] [stderr] 50 |         self.pending = (self.pending << 1) | try!(input.read_bits(1)) as u64;
[INFO] [stderr]    |                                              ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/codec.rs:57:27
[INFO] [stderr]    |
[INFO] [stderr] 57 |         let (low, high) = try!(self.model.get_frequency(symbol));
[INFO] [stderr]    |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/codec.rs:64:16
[INFO] [stderr]    |
[INFO] [stderr] 64 |                try!(self.put_bit(false, output));
[INFO] [stderr]    |                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/codec.rs:70:16
[INFO] [stderr]    |
[INFO] [stderr] 70 |                try!(self.put_bit(true, output));
[INFO] [stderr]    |                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]   --> src/codec.rs:77:28
[INFO] [stderr]    |
[INFO] [stderr] 77 |                self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stderr]    |                            ^^                                       ^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these braces
[INFO] [stderr]    |
[INFO] [stderr] 77 -                self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stderr] 77 +                self.low -= self.model.parameters().code_one_fourth;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]   --> src/codec.rs:78:29
[INFO] [stderr]    |
[INFO] [stderr] 78 |                self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stderr]    |                             ^^                                       ^^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]    |
[INFO] [stderr] 78 -                self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stderr] 78 +                self.high -= self.model.parameters().code_one_fourth;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/codec.rs:98:13
[INFO] [stderr]    |
[INFO] [stderr] 98 |             try!(output.flush_bits());
[INFO] [stderr]    |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/codec.rs:94:17
[INFO] [stderr]    |
[INFO] [stderr] 94 |                 try!(self.put_bit(mask != 0, output));
[INFO] [stderr]    |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codec.rs:112:13
[INFO] [stderr]     |
[INFO] [stderr] 112 |             try!(self.compress_symbol(symbol, output));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around method argument
[INFO] [stderr]    --> src/codec.rs:106:48
[INFO] [stderr]     |
[INFO] [stderr] 106 |             let symbol = match input.read_bits({ self.model.parameters().symbol_bits }) {
[INFO] [stderr]     |                                                ^^                                   ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr] 106 -             let symbol = match input.read_bits({ self.model.parameters().symbol_bits }) {
[INFO] [stderr] 106 +             let symbol = match input.read_bits(self.model.parameters().symbol_bits) {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codec.rs:125:13
[INFO] [stderr]     |
[INFO] [stderr] 125 |             try!(self.get_bit(input));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codec.rs:132:35
[INFO] [stderr]     |
[INFO] [stderr] 132 |         let (symbol, low, high) = try!(self.model.get_symbol(value));
[INFO] [stderr]     |                                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codec.rs:157:13
[INFO] [stderr]     |
[INFO] [stderr] 157 |             try!(self.get_bit(input));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]    --> src/codec.rs:144:33
[INFO] [stderr]     |
[INFO] [stderr] 144 |                 self.pending -= { self.model.parameters().code_half };
[INFO] [stderr]     |                                 ^^                                 ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr] 144 -                 self.pending -= { self.model.parameters().code_half };
[INFO] [stderr] 144 +                 self.pending -= self.model.parameters().code_half;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]    --> src/codec.rs:145:29
[INFO] [stderr]     |
[INFO] [stderr] 145 |                 self.low -= { self.model.parameters().code_half };
[INFO] [stderr]     |                             ^^                                 ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr] 145 -                 self.low -= { self.model.parameters().code_half };
[INFO] [stderr] 145 +                 self.low -= self.model.parameters().code_half;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]    --> src/codec.rs:146:30
[INFO] [stderr]     |
[INFO] [stderr] 146 |                 self.high -= { self.model.parameters().code_half };
[INFO] [stderr]     |                              ^^                                 ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr] 146 -                 self.high -= { self.model.parameters().code_half };
[INFO] [stderr] 146 +                 self.high -= self.model.parameters().code_half;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]    --> src/codec.rs:148:33
[INFO] [stderr]     |
[INFO] [stderr] 148 |                 self.pending -= { self.model.parameters().code_one_fourth };
[INFO] [stderr]     |                                 ^^                                       ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr] 148 -                 self.pending -= { self.model.parameters().code_one_fourth };
[INFO] [stderr] 148 +                 self.pending -= self.model.parameters().code_one_fourth;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]    --> src/codec.rs:149:29
[INFO] [stderr]     |
[INFO] [stderr] 149 |                 self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stderr]     |                             ^^                                       ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr] 149 -                 self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stderr] 149 +                 self.low -= self.model.parameters().code_one_fourth;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]    --> src/codec.rs:150:30
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stderr]     |                              ^^                                       ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr] 150 -                 self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stderr] 150 +                 self.high -= self.model.parameters().code_one_fourth;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codec.rs:166:26
[INFO] [stderr]     |
[INFO] [stderr] 166 |             let symbol = try!(self.decompress_symbol(input));
[INFO] [stderr]     |                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codec.rs:171:17
[INFO] [stderr]     |
[INFO] [stderr] 171 |                 try!(output.write_bits(symbol, { self.model.parameters().symbol_bits }));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around method argument
[INFO] [stderr]    --> src/codec.rs:171:48
[INFO] [stderr]     |
[INFO] [stderr] 171 |                 try!(output.write_bits(symbol, { self.model.parameters().symbol_bits }));
[INFO] [stderr]     |                                                ^^                                   ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr] 171 -                 try!(output.write_bits(symbol, { self.model.parameters().symbol_bits }));
[INFO] [stderr] 171 +                 try!(output.write_bits(symbol, self.model.parameters().symbol_bits));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:107:5
[INFO] [stderr]     |
[INFO] [stderr] 107 |     try!(codec.compress_stream(&mut input, &mut output));
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:118:5
[INFO] [stderr]     |
[INFO] [stderr] 118 |     try!(codec.decompress_stream(&mut input, &mut output));
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/bitio/mod.rs:58:20
[INFO] [stderr]    |
[INFO] [stderr] 58 |     input: &'a mut Read,
[INFO] [stderr]    |                    ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 58 |     input: &'a mut dyn Read,
[INFO] [stderr]    |                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/bitio/mod.rs:128:21
[INFO] [stderr]     |
[INFO] [stderr] 128 |     output: &'a mut Write,
[INFO] [stderr]     |                     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 128 |     output: &'a mut dyn Write,
[INFO] [stderr]     |                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/codec.rs:23:16
[INFO] [stderr]    |
[INFO] [stderr] 23 |     model: Box<Model>,
[INFO] [stderr]    |                ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 23 |     model: Box<dyn Model>,
[INFO] [stderr]    |                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/bitio/mod.rs:63:32
[INFO] [stderr]    |
[INFO] [stderr] 63 |     pub fn new(reader: &'a mut Read) -> BitReader<'a> {
[INFO] [stderr]    |                                ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 63 |     pub fn new(reader: &'a mut dyn Read) -> BitReader<'a> {
[INFO] [stderr]    |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/bitio/mod.rs:133:32
[INFO] [stderr]     |
[INFO] [stderr] 133 |     pub fn new(writer: &'a mut Write) -> BitWriter<'a> {
[INFO] [stderr]     |                                ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 133 |     pub fn new(writer: &'a mut dyn Write) -> BitWriter<'a> {
[INFO] [stderr]     |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:102:31
[INFO] [stderr]     |
[INFO] [stderr] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stderr]     |                               ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 102 | pub fn compress(istream: &mut dyn io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stderr]     |                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:102:55
[INFO] [stderr]     |
[INFO] [stderr] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stderr]     |                                                       ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut dyn io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:102:77
[INFO] [stderr]     |
[INFO] [stderr] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stderr]     |                                                                             ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 102 | pub fn compress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<dyn model::Model>) -> Result<(u64, u64)> {
[INFO] [stderr]     |                                                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:113:33
[INFO] [stderr]     |
[INFO] [stderr] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stderr]     |                                 ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 113 | pub fn decompress(istream: &mut dyn io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stderr]     |                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:113:57
[INFO] [stderr]     |
[INFO] [stderr] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stderr]     |                                                         ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut dyn io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stderr]     |                                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:113:79
[INFO] [stderr]     |
[INFO] [stderr] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<model::Model>) -> Result<(u64, u64)> {
[INFO] [stderr]     |                                                                               ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 113 | pub fn decompress(istream: &mut io::Read, ostream: &mut io::Write, model: Box<dyn model::Model>) -> Result<(u64, u64)> {
[INFO] [stderr]     |                                                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/codec.rs:28:23
[INFO] [stderr]    |
[INFO] [stderr] 28 |     pub fn new(m: Box<Model>) -> Codec {
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 28 |     pub fn new(m: Box<dyn Model>) -> Codec {
[INFO] [stderr]    |                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/codec.rs:39:51
[INFO] [stderr]    |
[INFO] [stderr] 39 |     fn put_bit(&mut self, bit: bool, output: &mut BitWrite) -> Result<()> {
[INFO] [stderr]    |                                                   ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 39 |     fn put_bit(&mut self, bit: bool, output: &mut dyn BitWrite) -> Result<()> {
[INFO] [stderr]    |                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/codec.rs:49:39
[INFO] [stderr]    |
[INFO] [stderr] 49 |     fn get_bit(&mut self, input: &mut BitRead) -> Result<()> {
[INFO] [stderr]    |                                       ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 49 |     fn get_bit(&mut self, input: &mut dyn BitRead) -> Result<()> {
[INFO] [stderr]    |                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/codec.rs:55:67
[INFO] [stderr]    |
[INFO] [stderr] 55 |     pub fn compress_symbol(&mut self, symbol: usize, output: &mut BitWrite) -> Result<()> {
[INFO] [stderr]    |                                                                   ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 55 |     pub fn compress_symbol(&mut self, symbol: usize, output: &mut dyn BitWrite) -> Result<()> {
[INFO] [stderr]    |                                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/codec.rs:104:51
[INFO] [stderr]     |
[INFO] [stderr] 104 |     pub fn compress_stream(&mut self, input: &mut BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stderr]     |                                                   ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 104 |     pub fn compress_stream(&mut self, input: &mut dyn BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stderr]     |                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/codec.rs:104:73
[INFO] [stderr]     |
[INFO] [stderr] 104 |     pub fn compress_stream(&mut self, input: &mut BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stderr]     |                                                                         ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 104 |     pub fn compress_stream(&mut self, input: &mut BitRead, output: &mut dyn BitWrite) -> Result<()> {
[INFO] [stderr]     |                                                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/codec.rs:123:53
[INFO] [stderr]     |
[INFO] [stderr] 123 |     pub fn decompress_symbol(&mut self, input: &mut BitRead) -> Result<usize> {
[INFO] [stderr]     |                                                     ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 123 |     pub fn decompress_symbol(&mut self, input: &mut dyn BitRead) -> Result<usize> {
[INFO] [stderr]     |                                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/codec.rs:164:53
[INFO] [stderr]     |
[INFO] [stderr] 164 |     pub fn decompress_stream(&mut self, input: &mut BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stderr]     |                                                     ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 164 |     pub fn decompress_stream(&mut self, input: &mut dyn BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stderr]     |                                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/codec.rs:164:75
[INFO] [stderr]     |
[INFO] [stderr] 164 |     pub fn decompress_stream(&mut self, input: &mut BitRead, output: &mut BitWrite) -> Result<()> {
[INFO] [stderr]     |                                                                           ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 164 |     pub fn decompress_stream(&mut self, input: &mut BitRead, output: &mut dyn BitWrite) -> Result<()> {
[INFO] [stderr]     |                                                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/model/adaptive_linear.rs:21:38
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub fn new(p: Parameters) -> Box<Model> {
[INFO] [stderr]    |                                      ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub fn new(p: Parameters) -> Box<dyn Model> {
[INFO] [stderr]    |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/model/adaptive_tree.rs:36:38
[INFO] [stderr]    |
[INFO] [stderr] 36 |     pub fn new(p: Parameters) -> Box<Model> {
[INFO] [stderr]    |                                      ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 36 |     pub fn new(p: Parameters) -> Box<dyn Model> {
[INFO] [stderr]    |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: `redux` (lib) generated 49 warnings (run `cargo fix --lib -p redux` to apply 32 suggestions)
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/main.rs:90:24
[INFO] [stderr]    |
[INFO] [stderr] 90 |     let mut input: Box<io::Read> = if options.is_stdin() {
[INFO] [stderr]    |                        ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 90 |     let mut input: Box<dyn io::Read> = if options.is_stdin() {
[INFO] [stderr]    |                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/main.rs:99:25
[INFO] [stderr]    |
[INFO] [stderr] 99 |     let mut output: Box<io::Write> = if options.is_stdout() {
[INFO] [stderr]    |                         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 99 |     let mut output: Box<dyn io::Write> = if options.is_stdout() {
[INFO] [stderr]    |                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: `redux` (bin "redux") generated 2 warnings (run `cargo fix --bin "redux" -p redux` to apply 2 suggestions)
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/model/tests.rs:23:26
[INFO] [stderr]    |
[INFO] [stderr] 23 | fn get_invalid_value(m: &Model) -> u64 {
[INFO] [stderr]    |                          ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 23 | fn get_invalid_value(m: &dyn Model) -> u64 {
[INFO] [stderr]    |                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/model/tests.rs:27:24
[INFO] [stderr]    |
[INFO] [stderr] 27 | fn get_valid_value(m: &Model) -> u64 {
[INFO] [stderr]    |                        ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 27 | fn get_valid_value(m: &dyn Model) -> u64 {
[INFO] [stderr]    |                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/model/tests.rs:31:32
[INFO] [stderr]    |
[INFO] [stderr] 31 | fn compare_freq_total(linear: &Model, tree: &Model) {
[INFO] [stderr]    |                                ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 31 | fn compare_freq_total(linear: &dyn Model, tree: &Model) {
[INFO] [stderr]    |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/model/tests.rs:31:46
[INFO] [stderr]    |
[INFO] [stderr] 31 | fn compare_freq_total(linear: &Model, tree: &Model) {
[INFO] [stderr]    |                                              ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 31 | fn compare_freq_total(linear: &Model, tree: &dyn Model) {
[INFO] [stderr]    |                                              +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/model/tests.rs:38:33
[INFO] [stderr]    |
[INFO] [stderr] 38 | fn compare_freq_tables(linear: &Model, tree: &Model) {
[INFO] [stderr]    |                                 ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 38 | fn compare_freq_tables(linear: &dyn Model, tree: &Model) {
[INFO] [stderr]    |                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/model/tests.rs:38:47
[INFO] [stderr]    |
[INFO] [stderr] 38 | fn compare_freq_tables(linear: &Model, tree: &Model) {
[INFO] [stderr]    |                                               ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 38 | fn compare_freq_tables(linear: &Model, tree: &dyn Model) {
[INFO] [stderr]    |                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: unused comparison that must be used
[INFO] [stderr]    --> src/lib.rs:128:32
[INFO] [stderr]     |
[INFO] [stderr] 128 |         ($a:expr, $b:expr) => ($a != $b)
[INFO] [stderr]     |                                ^^^^^^^^ the comparison produces a value
[INFO] [stderr] ...
[INFO] [stderr] 136 |         assert_ne!(Eof, InvalidInput);
[INFO] [stderr]     |         ----------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr]     = note: this warning originates in the macro `assert_ne` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 136 |         let _ = assert_ne!(Eof, InvalidInput);
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused comparison that must be used
[INFO] [stderr]    --> src/lib.rs:128:32
[INFO] [stderr]     |
[INFO] [stderr] 128 |         ($a:expr, $b:expr) => ($a != $b)
[INFO] [stderr]     |                                ^^^^^^^^ the comparison produces a value
[INFO] [stderr] ...
[INFO] [stderr] 137 |         assert_ne!(InvalidInput, IoError(io::Error::new(io::ErrorKind::Other, "Other")));
[INFO] [stderr]     |         -------------------------------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `assert_ne` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 137 |         let _ = assert_ne!(InvalidInput, IoError(io::Error::new(io::ErrorKind::Other, "Other")));
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused comparison that must be used
[INFO] [stderr]    --> src/lib.rs:128:32
[INFO] [stderr]     |
[INFO] [stderr] 128 |         ($a:expr, $b:expr) => ($a != $b)
[INFO] [stderr]     |                                ^^^^^^^^ the comparison produces a value
[INFO] [stderr] ...
[INFO] [stderr] 138 |         assert_ne!(IoError(io::Error::new(io::ErrorKind::NotFound, "NotFound")), Eof);
[INFO] [stderr]     |         ----------------------------------------------------------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `assert_ne` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 138 |         let _ = assert_ne!(IoError(io::Error::new(io::ErrorKind::NotFound, "NotFound")), Eof);
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> tests/corpora.rs:32:48
[INFO] [stderr]    |
[INFO] [stderr] 32 | fn test_operation(model: fn(Parameters) -> Box<Model>, bits: usize,
[INFO] [stderr]    |                                                ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 32 | fn test_operation(model: fn(Parameters) -> Box<dyn Model>, bits: usize,
[INFO] [stderr]    |                                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> tests/corpora.rs:33:33
[INFO] [stderr]    |
[INFO] [stderr] 33 |                  codec: fn(&mut Read, &mut Write, Box<Model>) -> redux::Result<(u64, u64)>,
[INFO] [stderr]    |                                 ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 33 |                  codec: fn(&mut dyn Read, &mut Write, Box<Model>) -> redux::Result<(u64, u64)>,
[INFO] [stderr]    |                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> tests/corpora.rs:33:44
[INFO] [stderr]    |
[INFO] [stderr] 33 |                  codec: fn(&mut Read, &mut Write, Box<Model>) -> redux::Result<(u64, u64)>,
[INFO] [stderr]    |                                            ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 33 |                  codec: fn(&mut Read, &mut dyn Write, Box<Model>) -> redux::Result<(u64, u64)>,
[INFO] [stderr]    |                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> tests/corpora.rs:33:55
[INFO] [stderr]    |
[INFO] [stderr] 33 |                  codec: fn(&mut Read, &mut Write, Box<Model>) -> redux::Result<(u64, u64)>,
[INFO] [stderr]    |                                                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 33 |                  codec: fn(&mut Read, &mut Write, Box<dyn Model>) -> redux::Result<(u64, u64)>,
[INFO] [stderr]    |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> tests/corpora.rs:45:43
[INFO] [stderr]    |
[INFO] [stderr] 45 | fn test_file(model: fn(Parameters) -> Box<Model>, bits: usize, file: &Path) -> (u64, u64, f64, f64) {
[INFO] [stderr]    |                                           ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 45 | fn test_file(model: fn(Parameters) -> Box<dyn Model>, bits: usize, file: &Path) -> (u64, u64, f64, f64) {
[INFO] [stderr]    |                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> tests/corpora.rs:67:70
[INFO] [stderr]    |
[INFO] [stderr] 67 | fn test_model(corpus: &str, name: &str, model: fn(Parameters) -> Box<Model>, bits: usize) {
[INFO] [stderr]    |                                                                      ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 67 | fn test_model(corpus: &str, name: &str, model: fn(Parameters) -> Box<dyn Model>, bits: usize) {
[INFO] [stderr]    |                                                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: `redux` (lib test) generated 58 warnings (49 duplicates) (run `cargo fix --lib -p redux --tests` to apply 6 suggestions)
[INFO] [stderr] warning: `redux` (bin "redux" test) generated 2 warnings (2 duplicates)
[INFO] [stderr] warning: `redux` (test "corpora") generated 6 warnings (run `cargo fix --test "corpora" -p redux` to apply 6 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/redux-15d336133015a38e)
[INFO] [stdout] 
[INFO] [stdout] running 38 tests
[INFO] [stdout] test bitio::tests::read_bits ... ok
[INFO] [stdout] test bitio::tests::read_bytes ... ok
[INFO] [stdout] test bitio::tests::read_eof ... ok
[INFO] [stdout] test bitio::tests::write_empty ... ok
[INFO] [stdout] test bitio::tests::read_mixed ... ok
[INFO] [stdout] test model::tests::compare_models_decode_12_14_16 ... ignored
[INFO] [stdout] test model::tests::compare_models_decode_12_22_24 ... ignored
[INFO] [stdout] test model::tests::compare_models_decode_12_24_30 ... ignored
[INFO] [stdout] test model::tests::compare_models_decode_12_30_32 ... ignored
[INFO] [stdout] test bitio::tests::write_mixed ... ok
[INFO] [stdout] test bitio::tests::write_flush ... ok
[INFO] [stdout] test bitio::tests::write_bits ... ok
[INFO] [stdout] test bitio::tests::write_bytes ... ok
[INFO] [stdout] test model::tests::compare_models_decode_8_10_16 ... ignored
[INFO] [stdout] test model::tests::compare_models_decode_8_14_16 ... ignored
[INFO] [stdout] test model::tests::compare_models_decode_8_22_24 ... ignored
[INFO] [stdout] test model::tests::compare_models_decode_8_24_30 ... ignored
[INFO] [stdout] test model::tests::compare_models_decode_8_30_32 ... ignored
[INFO] [stdout] test model::tests::compare_models_encode_12_14_16 ... ignored
[INFO] [stdout] test model::tests::compare_models_encode_12_22_24 ... ignored
[INFO] [stdout] test model::tests::compare_models_encode_12_24_30 ... ignored
[INFO] [stdout] test model::tests::compare_models_encode_12_30_32 ... ignored
[INFO] [stdout] test model::tests::compare_models_decode_4_10_16 ... ok
[INFO] [stdout] test model::tests::compare_models_decode_4_14_16 ... ok
[INFO] [stdout] test model::tests::compare_models_encode_4_10_16 ... ok
[INFO] [stdout] test model::tests::compare_models_encode_8_10_16 ... ignored
[INFO] [stdout] test model::tests::compare_models_encode_8_14_16 ... ignored
[INFO] [stdout] test model::tests::compare_models_encode_8_22_24 ... ignored
[INFO] [stdout] test model::tests::compare_models_encode_8_24_30 ... ignored
[INFO] [stdout] test model::tests::compare_models_encode_8_30_32 ... ignored
[INFO] [stdout] test tests::error_eq ... ok
[INFO] [stdout] test model::tests::compare_models_encode_4_14_16 ... ok
[INFO] [stdout] test model::tests::compare_models_encode_4_24_30 ... ok
[INFO] [stdout] test model::tests::compare_models_decode_4_24_30 ... ok
[INFO] [stdout] test model::tests::compare_models_encode_4_22_24 ... ok
[INFO] [stdout] test model::tests::compare_models_decode_4_22_24 ... ok
[INFO] [stdout] test model::tests::compare_models_encode_4_30_32 ... ok
[INFO] [stdout] test model::tests::compare_models_decode_4_30_32 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 20 passed; 0 failed; 18 ignored; 0 measured; 0 filtered out; finished in 2.63s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/redux-418209b95393bef0)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/corpora.rs (/opt/rustwide/target/debug/deps/corpora-008dad6b1b8738de)
[INFO] [stdout] 
[INFO] [stdout] running 30 tests
[INFO] [stdout] test calgary_linear14 ... ignored
[INFO] [stdout] test calgary_linear22 ... ignored
[INFO] [stdout] test calgary_linear30 ... ignored
[INFO] [stdout] test calgary_tree14 ... ignored
[INFO] [stdout] test calgary_tree22 ... ignored
[INFO] [stdout] test calgary_tree30 ... ignored
[INFO] [stdout] test canterbury_linear14 ... ignored
[INFO] [stdout] test canterbury_linear22 ... ignored
[INFO] [stdout] test canterbury_linear30 ... ignored
[INFO] [stdout] test canterbury_tree14 ... ignored
[INFO] [stdout] test canterbury_tree22 ... ignored
[INFO] [stdout] test canterbury_tree30 ... ignored
[INFO] [stdout] test large_linear14 ... ignored
[INFO] [stdout] test large_linear22 ... ignored
[INFO] [stdout] test large_linear30 ... ignored
[INFO] [stdout] test large_tree14 ... ignored
[INFO] [stdout] test large_tree22 ... ignored
[INFO] [stdout] test large_tree30 ... ignored
[INFO] [stdout] test misc_linear14 ... ignored
[INFO] [stdout] test misc_linear22 ... ignored
[INFO] [stdout] test misc_linear30 ... ignored
[INFO] [stdout] test misc_tree14 ... ignored
[INFO] [stdout] test misc_tree22 ... ignored
[INFO] [stdout] test misc_tree30 ... ignored
[INFO] [stdout] test artificial_tree22 ... ok
[INFO] [stdout] test artificial_tree14 ... ok
[INFO] [stdout] test artificial_tree30 ... ok
[INFO] [stdout] test artificial_linear14 ... ok
[INFO] [stdout] test artificial_linear30 ... ok
[INFO] [stdout] test artificial_linear22 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 24 ignored; 0 measured; 0 filtered out; finished in 7.96s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests redux
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]   --> src/codec.rs:77:28
[INFO] [stderr]    |
[INFO] [stderr] 77 |                self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stderr]    |                            ^^                                       ^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these braces
[INFO] [stderr]    |
[INFO] [stderr] 77 -                self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stderr] 77 +                self.low -= self.model.parameters().code_one_fourth;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]   --> src/codec.rs:78:29
[INFO] [stderr]    |
[INFO] [stderr] 78 |                self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stderr]    |                             ^^                                       ^^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]    |
[INFO] [stderr] 78 -                self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stderr] 78 +                self.high -= self.model.parameters().code_one_fourth;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around method argument
[INFO] [stderr]    --> src/codec.rs:106:48
[INFO] [stderr]     |
[INFO] [stderr] 106 |             let symbol = match input.read_bits({ self.model.parameters().symbol_bits }) {
[INFO] [stderr]     |                                                ^^                                   ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr] 106 -             let symbol = match input.read_bits({ self.model.parameters().symbol_bits }) {
[INFO] [stderr] 106 +             let symbol = match input.read_bits(self.model.parameters().symbol_bits) {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]    --> src/codec.rs:144:33
[INFO] [stderr]     |
[INFO] [stderr] 144 |                 self.pending -= { self.model.parameters().code_half };
[INFO] [stderr]     |                                 ^^                                 ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr] 144 -                 self.pending -= { self.model.parameters().code_half };
[INFO] [stderr] 144 +                 self.pending -= self.model.parameters().code_half;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]    --> src/codec.rs:145:29
[INFO] [stderr]     |
[INFO] [stderr] 145 |                 self.low -= { self.model.parameters().code_half };
[INFO] [stderr]     |                             ^^                                 ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr] 145 -                 self.low -= { self.model.parameters().code_half };
[INFO] [stderr] 145 +                 self.low -= self.model.parameters().code_half;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]    --> src/codec.rs:146:30
[INFO] [stderr]     |
[INFO] [stderr] 146 |                 self.high -= { self.model.parameters().code_half };
[INFO] [stderr]     |                              ^^                                 ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr] 146 -                 self.high -= { self.model.parameters().code_half };
[INFO] [stderr] 146 +                 self.high -= self.model.parameters().code_half;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]    --> src/codec.rs:148:33
[INFO] [stderr]     |
[INFO] [stderr] 148 |                 self.pending -= { self.model.parameters().code_one_fourth };
[INFO] [stderr]     |                                 ^^                                       ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr] 148 -                 self.pending -= { self.model.parameters().code_one_fourth };
[INFO] [stderr] 148 +                 self.pending -= self.model.parameters().code_one_fourth;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]    --> src/codec.rs:149:29
[INFO] [stderr]     |
[INFO] [stderr] 149 |                 self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stderr]     |                             ^^                                       ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr] 149 -                 self.low -= { self.model.parameters().code_one_fourth };
[INFO] [stderr] 149 +                 self.low -= self.model.parameters().code_one_fourth;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around assigned value
[INFO] [stderr]    --> src/codec.rs:150:30
[INFO] [stderr]     |
[INFO] [stderr] 150 |                 self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stderr]     |                              ^^                                       ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr] 150 -                 self.high -= { self.model.parameters().code_one_fourth };
[INFO] [stderr] 150 +                 self.high -= self.model.parameters().code_one_fourth;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary braces around method argument
[INFO] [stderr]    --> src/codec.rs:171:48
[INFO] [stderr]     |
[INFO] [stderr] 171 |                 try!(output.write_bits(symbol, { self.model.parameters().symbol_bits }));
[INFO] [stderr]     |                                                ^^                                   ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr] 171 -                 try!(output.write_bits(symbol, { self.model.parameters().symbol_bits }));
[INFO] [stderr] 171 +                 try!(output.write_bits(symbol, self.model.parameters().symbol_bits));
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: 10 warnings emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/lib.rs - (line 23) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d3136c5fd78e889a7aa9fc1261cd9aa85cb45aa7b21b76787ee4bc6f33d394dc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d3136c5fd78e889a7aa9fc1261cd9aa85cb45aa7b21b76787ee4bc6f33d394dc", kill_on_drop: false }`
[INFO] [stdout] d3136c5fd78e889a7aa9fc1261cd9aa85cb45aa7b21b76787ee4bc6f33d394dc
