[INFO] fetching crate zmtp 0.6.0...
[INFO] testing zmtp-0.6.0 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-8
[INFO] extracting crate zmtp 0.6.0 into /workspace/builds/worker-6-tc1/source
[INFO] started tweaking crates.io crate zmtp 0.6.0
[INFO] finished tweaking crates.io crate zmtp 0.6.0
[INFO] tweaked toml for crates.io crate zmtp 0.6.0 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate zmtp 0.6.0 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 1 package to latest compatible version
[INFO] [stderr]       Adding byteorder v0.5.3 (available: v1.5.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bfcc61bb700753a6441bd119951d9ab92c5b1cc81a6ffa4cce27c21a9b8e5cb4
[INFO] running `Command { std: "docker" "start" "-a" "bfcc61bb700753a6441bd119951d9ab92c5b1cc81a6ffa4cce27c21a9b8e5cb4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bfcc61bb700753a6441bd119951d9ab92c5b1cc81a6ffa4cce27c21a9b8e5cb4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bfcc61bb700753a6441bd119951d9ab92c5b1cc81a6ffa4cce27c21a9b8e5cb4", kill_on_drop: false }`
[INFO] [stdout] bfcc61bb700753a6441bd119951d9ab92c5b1cc81a6ffa4cce27c21a9b8e5cb4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c35784b7826b6058c5ab28cf4dad30b0340125c0567f9bc0aef5e481a214aa88
[INFO] running `Command { std: "docker" "start" "-a" "c35784b7826b6058c5ab28cf4dad30b0340125c0567f9bc0aef5e481a214aa88", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling byteorder v0.5.3
[INFO] [stderr]    Compiling zmtp v0.6.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: patterns aren't allowed in functions without bodies
[INFO] [stdout]   --> src/types.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn peek(&mut self, mut buf: &mut [u8])  -> io::Result<usize>;
[INFO] [stdout]    |                        ^^^^^^^ help: remove `mut` from the parameter: `buf`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #35203 <https://github.com/rust-lang/rust/issues/35203>
[INFO] [stdout]    = note: `#[deny(patterns_in_fns_without_body)]` (part of `#[deny(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/types.rs:219:14
[INFO] [stdout]     |
[INFO] [stdout] 219 |             0...U8_MAX =>  Size::Short(size as u8),
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[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(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/types.rs:318:19
[INFO] [stdout]     |
[INFO] [stdout] 318 |             size@0...U8_MAX => Size::Short(size as u8),
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/peer.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         try!{ self.validate_cmd(&local, peer) }
[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/peer.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         try!{ CommandWriter::write(&local, peer) }
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/peer.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         try!{ self.validate_cmd(&remote, peer) }
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/peer.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let remote = try!(CommandReader::read(peer));
[INFO] [stdout]    |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/peer.rs:51:25
[INFO] [stdout]    |
[INFO] [stdout] 51 |                         try!{ self.send_error_cmd(&reason, peer) }
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/peer.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |         try!{ GreetingWriter::write(&peer.local.greeting.clone(), peer) };
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/peer.rs:103:32
[INFO] [stdout]     |
[INFO] [stdout] 103 |         peer.remote.greeting = try!{ GreetingReader::read(peer) };
[INFO] [stdout]     |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/peer.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 111 |         try!{ GreetingWriter::write_signature(&greeting, peer) }
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/peer.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |         try!{ GreetingWriter::write_version(&greeting, peer) }
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/peer.rs:341:29
[INFO] [stdout]     |
[INFO] [stdout] 341 |             0 => assert_eq!(try!{ self.source.read_exact(buf) }, ()),
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/peer.rs:349:28
[INFO] [stdout]     |
[INFO] [stdout] 349 |                 assert_eq!(try!{ self.source.read_exact(rest) }, ());
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/peer.rs:368:28
[INFO] [stdout]     |
[INFO] [stdout] 368 |                 assert_eq!(try!{ self.source.read_exact(buf) }, ());
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/peer.rs:375:28
[INFO] [stdout]     |
[INFO] [stdout] 375 |                 assert_eq!(try!{ self.source.read_exact(rest) }, ());
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/reader.rs:55:20
[INFO] [stdout]    |
[INFO] [stdout] 55 |         assert_eq!(try!(reader.read_exact(&mut bytes)),  ());
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/reader.rs:74:25
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let mut frame = try!(result);
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/reader.rs:75:20
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let size = try!(self.read_frame_size(reader, &mut frame));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/reader.rs:85:28
[INFO] [stdout]    |
[INFO] [stdout] 85 |                 assert_eq!(try!(reader.read_exact(&mut bytes)), ());
[INFO] [stdout]    |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/reader.rs:90:28
[INFO] [stdout]    |
[INFO] [stdout] 90 |                 assert_eq!(try!(reader.read_exact(&mut bytes)), ());
[INFO] [stdout]    |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/reader.rs:99:25
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut frame = try!(result);
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/reader.rs:102:20
[INFO] [stdout]     |
[INFO] [stdout] 102 |         assert_eq!(try!(reader.read_exact(&mut bytes)),  ());
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/reader.rs:161:21
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let frame = try!(FrameReader::read(peeker));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/reader.rs:166:25
[INFO] [stdout]     |
[INFO] [stdout] 166 |             let frame = try!(FrameReader::read(peeker));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/reader.rs:184:20
[INFO] [stdout]     |
[INFO] [stdout] 184 |         assert_eq!(try!{ peeker.read_exact(&mut bytes) },  ());
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/reader.rs:203:27
[INFO] [stdout]     |
[INFO] [stdout] 203 |                 let cmd = try!(CommandReader::read(peeker));
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/reader.rs:206:27
[INFO] [stdout]     |
[INFO] [stdout] 206 |                 let msg = try!(MessageReader::read(peeker));
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/writer.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let frame = try!{ result };
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/writer.rs:38:20
[INFO] [stdout]    |
[INFO] [stdout] 38 |         assert_eq!(try!{ writer.write(&[flags]) },  1);
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/writer.rs:45:21
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let frame = try!{ result };
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/writer.rs:48:28
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 assert_eq!(try!{ writer.write(&[size]) },  1),
[INFO] [stdout]    |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/writer.rs:52:28
[INFO] [stdout]    |
[INFO] [stdout] 52 |                 assert_eq!(try!{ writer.write(&bytes) }, BYTES_PER_U64);
[INFO] [stdout]    |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/writer.rs:61:21
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let frame = try!{ result };
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/writer.rs:94:21
[INFO] [stdout]    |
[INFO] [stdout] 94 |             size @ 0...0xFF => Size::Short(size as u8),
[INFO] [stdout]    |                     ^^^ help: use `..=` for an inclusive range
[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] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/writer.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |         try!{ Self::write_signature(g, writer) }
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/writer.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 146 |         try!{ Self::write_version(  g, writer) }
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/writer.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         try!{ Self::write_mechanism(g, writer) }
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/writer.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 148 |         try!{ Self::write_as_server(g, writer) }
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/writer.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |         try!{ Self::write_filler(   g, writer) }
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/writer.rs:150:23
[INFO] [stdout]     |
[INFO] [stdout] 150 |         Ok(assert_eq!(try!{ writer.flush() }, ()))
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/writer.rs:154:23
[INFO] [stdout]     |
[INFO] [stdout] 154 |         Ok(assert_eq!(try!{ writer.write(&g.signature) },  g.signature.len()))
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/writer.rs:159:23
[INFO] [stdout]     |
[INFO] [stdout] 159 |         Ok(assert_eq!(try!{ writer.write(&[major, minor]) },  2))
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/writer.rs:163:23
[INFO] [stdout]     |
[INFO] [stdout] 163 |         Ok(assert_eq!(try!{ writer.write(&g.mechanism) },   g.mechanism.len()))
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/writer.rs:167:23
[INFO] [stdout]     |
[INFO] [stdout] 167 |         Ok(assert_eq!(try!{ writer.write(&[g.as_server as u8]) },  1))
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/writer.rs:171:23
[INFO] [stdout]     |
[INFO] [stdout] 171 |         Ok(assert_eq!(try!{ writer.write(&g.filler) },  g.filler.len()))
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/peer.rs:214:17
[INFO] [stdout]     |
[INFO] [stdout] 214 |     source: Box<PeerSource>,
[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] 214 |     source: Box<dyn PeerSource>,
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/peer.rs:222:28
[INFO] [stdout]     |
[INFO] [stdout] 222 |     pub fn new(source: Box<PeerSource>) -> Self {
[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] 222 |     pub fn new(source: Box<dyn PeerSource>) -> Self {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/peer.rs:233:39
[INFO] [stdout]     |
[INFO] [stdout] 233 |     pub fn ref_mut(&mut self) -> &mut PeerSource { &mut self.source }
[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] 233 |     pub fn ref_mut(&mut self) -> &mut dyn PeerSource { &mut self.source }
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/peer.rs:235:30
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn as_ref(&self) -> &PeerSource { &self.source }
[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] 235 |     pub fn as_ref(&self) -> &dyn PeerSource { &self.source }
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0283]: type annotations needed
[INFO] [stdout]    --> src/reader.rs:152:17
[INFO] [stdout]     |
[INFO] [stdout] 152 |             cmd.add_metadata(name.borrow(), val_bytes);
[INFO] [stdout]     |                 ^^^^^^^^^^^^      ------ type must be known at this point
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 cannot infer type of the type parameter `S` declared on the method `add_metadata`
[INFO] [stdout]     |
[INFO] [stdout]     = note: multiple `impl`s satisfying `Cow<'_, str>: Borrow<_>` found in the following crates: `alloc`, `core`:
[INFO] [stdout]             - impl<'a, B> Borrow<B> for Cow<'a, B>
[INFO] [stdout]               where B: ToOwned, B: ?Sized;
[INFO] [stdout]             - impl<T> Borrow<T> for T
[INFO] [stdout]               where T: ?Sized;
[INFO] [stdout] help: consider specifying the generic argument
[INFO] [stdout]     |
[INFO] [stdout] 152 |             cmd.add_metadata::<&Borrowed>(name.borrow(), val_bytes);
[INFO] [stdout]     |                             +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ReadBytesExt`
[INFO] [stdout]  --> src/reader.rs:4:34
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::byteorder::{ByteOrder, ReadBytesExt, BigEndian};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/types.rs:40:24
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn peek(&mut self, mut buf: &mut [u8])  -> io::Result<usize> {
[INFO] [stdout]    |                        ----^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/peer.rs:348:21
[INFO] [stdout]     |
[INFO] [stdout] 348 |                 let mut rest = &mut buf[plen..];
[INFO] [stdout]     |                     ----^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/peer.rs:364:24
[INFO] [stdout]     |
[INFO] [stdout] 364 |     fn peek(&mut self, mut buf: &mut [u8]) -> io::Result<usize> {
[INFO] [stdout]     |                        ----^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0283`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zmtp` (lib) due to 2 previous errors; 53 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "c35784b7826b6058c5ab28cf4dad30b0340125c0567f9bc0aef5e481a214aa88", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c35784b7826b6058c5ab28cf4dad30b0340125c0567f9bc0aef5e481a214aa88", kill_on_drop: false }`
[INFO] [stdout] c35784b7826b6058c5ab28cf4dad30b0340125c0567f9bc0aef5e481a214aa88
