[INFO] fetching crate bip_peer 0.5.0...
[INFO] checking bip_peer-0.5.0 against 5c543b0b8c73c7b72bc8284ced4fb22ead15734d for pr-160186
[INFO] extracting crate bip_peer 0.5.0 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate bip_peer 0.5.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate bip_peer 0.5.0
[INFO] tweaked toml for crates.io crate bip_peer 0.5.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate bip_peer 0.5.0 on toolchain 5c543b0b8c73c7b72bc8284ced4fb22ead15734d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "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" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 96 packages to highest compatible versions
[INFO] [stderr]       Adding bytes v0.4.12 (available: v1.12.1)
[INFO] [stderr]       Adding crossbeam v0.3.2 (available: v0.8.5)
[INFO] [stderr]       Adding error-chain v0.11.0 (available: v0.12.4)
[INFO] [stderr]       Adding futures v0.1.31 (available: v0.3.34)
[INFO] [stderr]       Adding nom v3.2.1 (available: v8.0.0)
[INFO] [stderr]       Adding tokio-timer v0.1.2 (available: v0.2.13)
[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" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `bip_peer` (manifest) generated 1 warning
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-io v0.1.13
[INFO] [stderr]   Downloaded bytes v0.4.12
[INFO] [stderr]   Downloaded tokio-executor v0.1.10
[INFO] [stderr]   Downloaded tokio-timer v0.1.2
[INFO] [stderr]   Downloaded tokio-core v0.1.18
[INFO] [stderr]   Downloaded parking_lot_core v0.6.3
[INFO] [stderr]   Downloaded net2 v0.2.39
[INFO] [stderr]   Downloaded tokio-timer v0.2.13
[INFO] [stderr]   Downloaded tokio-reactor v0.1.12
[INFO] [stderr]   Downloaded tokio-sync v0.1.8
[INFO] [stderr]   Downloaded tokio-uds v0.2.7
[INFO] [stderr]   Downloaded tokio-codec v0.1.2
[INFO] [stderr]   Downloaded tokio-tcp v0.1.4
[INFO] [stderr]   Downloaded scoped-tls v0.1.2
[INFO] [stderr]   Downloaded tokio-udp v0.1.6
[INFO] [stderr]   Downloaded futures v0.1.31
[INFO] [stderr]   Downloaded tokio v0.1.22
[INFO] [stderr]   Downloaded tokio-threadpool v0.1.18
[INFO] [stderr]   Downloaded crossbeam-deque v0.7.4
[INFO] [stderr]   Downloaded tokio-fs v0.1.7
[INFO] [stderr]   Downloaded tokio-current-thread v0.1.7
[INFO] [stderr]   Downloaded error-chain v0.11.0
[INFO] [stderr]   Downloaded crossbeam v0.3.2
[INFO] [stderr]   Downloaded rand_core v0.3.2
[INFO] [stderr]   Downloaded rand v0.3.23
[INFO] [stderr]   Downloaded bip_util v0.5.0
[INFO] [stderr]   Downloaded rustc-serialize v0.3.25
[INFO] [stderr]   Downloaded num v0.1.43
[INFO] [stderr]   Downloaded chrono v0.2.25
[INFO] [stderr]   Downloaded num-rational v0.1.43
[INFO] [stderr]   Downloaded num-complex v0.1.44
[INFO] [stderr]   Downloaded rand_core v0.4.3
[INFO] [stderr]   Downloaded num-bigint v0.1.45
[INFO] [stderr]   Downloaded bip_bencode v0.4.4
[INFO] [stderr]   Downloaded bip_handshake v0.7.1
[INFO] [stderr]   Downloaded rust-crypto v0.2.36
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 2b0ff0534c5a457e4b18e29cd1f92909b5d3d3ad5512d8bb42850e98ff45ed1e
[INFO] running `Command { std: "docker" "start" "2b0ff0534c5a457e4b18e29cd1f92909b5d3d3ad5512d8bb42850e98ff45ed1e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2b0ff0534c5a457e4b18e29cd1f92909b5d3d3ad5512d8bb42850e98ff45ed1e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2b0ff0534c5a457e4b18e29cd1f92909b5d3d3ad5512d8bb42850e98ff45ed1e" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2b0ff0534c5a457e4b18e29cd1f92909b5d3d3ad5512d8bb42850e98ff45ed1e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2b0ff0534c5a457e4b18e29cd1f92909b5d3d3ad5512d8bb42850e98ff45ed1e" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `bip_peer` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.191
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]     Checking futures v0.1.31
[INFO] [stderr]     Checking lazy_static v1.5.1
[INFO] [stderr]    Compiling parking_lot_core v0.6.3
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]     Checking lock_api v0.3.4
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]     Checking rustc-serialize v0.3.25
[INFO] [stderr]     Checking num-integer v0.1.47
[INFO] [stderr]    Compiling num-bigint v0.1.45
[INFO] [stderr]    Compiling num-rational v0.1.43
[INFO] [stderr]    Compiling num-complex v0.1.44
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling gcc v0.3.55
[INFO] [stderr]     Checking num-iter v0.1.46
[INFO] [stderr]     Checking gimli v0.32.3
[INFO] [stderr]     Checking memchr v2.8.3
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking crossbeam-deque v0.7.4
[INFO] [stderr]     Checking crossbeam-queue v0.2.3
[INFO] [stderr]     Checking rustc-demangle v0.1.28
[INFO] [stderr]     Checking slab v0.3.0
[INFO] [stderr]     Checking scoped-tls v0.1.2
[INFO] [stderr]     Checking crossbeam v0.3.2
[INFO] [stderr]    Compiling rust-crypto v0.2.36
[INFO] [stderr]     Checking tokio-executor v0.1.10
[INFO] [stderr]     Checking tokio-sync v0.1.8
[INFO] [stderr]     Checking tokio-timer v0.1.2
[INFO] [stderr]     Checking tokio-current-thread v0.1.7
[INFO] [stderr]     Checking tokio-timer v0.2.13
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking net2 v0.2.39
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking tokio-threadpool v0.1.18
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking tokio-io v0.1.13
[INFO] [stderr]     Checking time v0.1.45
[INFO] [stderr]     Checking memchr v1.0.2
[INFO] [stderr]     Checking nom v3.2.1
[INFO] [stderr]     Checking tokio-codec v0.1.2
[INFO] [stderr]     Checking tokio-fs v0.1.7
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking tokio-reactor v0.1.12
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]     Checking tokio-tcp v0.1.4
[INFO] [stderr]     Checking tokio-udp v0.1.6
[INFO] [stderr]     Checking tokio-uds v0.2.7
[INFO] [stderr]     Checking tokio v0.1.22
[INFO] [stderr]     Checking tokio-core v0.1.18
[INFO] [stderr]     Checking addr2line v0.25.1
[INFO] [stderr]     Checking num v0.1.43
[INFO] [stderr]     Checking chrono v0.2.25
[INFO] [stderr]     Checking bip_util v0.5.0
[INFO] [stderr]     Checking bip_handshake v0.7.1
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]     Checking error-chain v0.11.0
[INFO] [stderr]     Checking bip_bencode v0.4.4
[INFO] [stderr]     Checking bip_peer v0.5.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let bytes = match try!(self.protocol.bytes_needed(src.as_ref())) {
[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/manager/mod.rs:266:17
[INFO] [stdout]     |
[INFO] [stdout] 266 |                 try!(result);
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/bits_ext/handshake.rs:240:36
[INFO] [stdout]     |
[INFO] [stdout] 240 |                     let ben_dict = try!(bencode::CONVERT.convert_dict(&bencode, ROOT_ERROR_KEY));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/bits_ext/handshake.rs:266:9
[INFO] [stdout]     |
[INFO] [stdout] 266 |         try!(message::write_length_id_pair(&mut writer, real_length as u32, Some(bits_ext::EXTENDED_MESSAGE_ID)));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/bits_ext/port.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         try!(message::write_length_id_pair(&mut writer, bits_ext::PORT_MESSAGE_LEN, Some(bits_ext::PORT_MESSAGE_ID)));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/message/bits_ext/port.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     map!(bytes, be_u16, |port| PortMessage::new(port))
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |               $submac!($($args)*)
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |               $submac!($($args)*)
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |               $submac!($($args)*)
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/codec.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let bytes = match try!(self.protocol.bytes_needed(src.as_ref())) {
[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/manager/mod.rs:266:17
[INFO] [stdout]     |
[INFO] [stdout] 266 |                 try!(result);
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |               $submac!($($args)*)
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/prot_ext/ut_metadata.rs:30:36
[INFO] [stdout]    |
[INFO] [stdout] 30 |                 let bencode_dict = try!(bencode::CONVERT.convert_dict(&bencode, ROOT_ERROR_KEY));
[INFO] [stdout]    |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/prot_ext/ut_metadata.rs:31:32
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 let msg_type = try!(bencode::parse_message_type(bencode_dict));
[INFO] [stdout]    |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/prot_ext/ut_metadata.rs:32:29
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 let piece = try!(bencode::parse_piece_index(bencode_dict));
[INFO] [stdout]    |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/prot_ext/ut_metadata.rs:41:42
[INFO] [stdout]    |
[INFO] [stdout] 41 |                         let total_size = try!(bencode::parse_total_size(bencode_dict));
[INFO] [stdout]    |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/prot_ext/ut_metadata.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         try!(writer.write_all(encoded_bytes.as_ref()));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/prot_ext/mod.rs:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 |                 try!(message::write_length_id_pair(&mut writer, total_len, Some(bits_ext::EXTENDED_MESSAGE_ID)));
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/prot_ext/mod.rs:51:17
[INFO] [stdout]    |
[INFO] [stdout] 51 |                 try!(writer.write_u8(ext_id));
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |               $submac!($($args)*)
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/prot_ext/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | /     alt!((),
[INFO] [stdout] 73 | |          ignore_input!(
[INFO] [stdout] 74 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8, be_u8)),
[INFO] [stdout] 75 | |                 (message_len, bits_ext::EXTENDED_MESSAGE_ID, message_id) =>
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |                |res_cust_ext| res_cust_ext.map(|cust_ext| PeerExtensionProtocolMessage::Custom(cust_ext)))
[INFO] [stdout] 80 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/bits_ext/handshake.rs:240:36
[INFO] [stdout]     |
[INFO] [stdout] 240 |                     let ben_dict = try!(bencode::CONVERT.convert_dict(&bencode, ROOT_ERROR_KEY));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/bits_ext/handshake.rs:266:9
[INFO] [stdout]     |
[INFO] [stdout] 266 |         try!(message::write_length_id_pair(&mut writer, real_length as u32, Some(bits_ext::EXTENDED_MESSAGE_ID)));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/bits_ext/port.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         try!(message::write_length_id_pair(&mut writer, bits_ext::PORT_MESSAGE_LEN, Some(bits_ext::PORT_MESSAGE_ID)));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/message/bits_ext/port.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     map!(bytes, be_u16, |port| PortMessage::new(port))
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/prot_ext/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | /     alt!((),
[INFO] [stdout] 73 | |          ignore_input!(
[INFO] [stdout] 74 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8, be_u8)),
[INFO] [stdout] 75 | |                 (message_len, bits_ext::EXTENDED_MESSAGE_ID, message_id) =>
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |                |res_cust_ext| res_cust_ext.map(|cust_ext| PeerExtensionProtocolMessage::Custom(cust_ext)))
[INFO] [stdout] 80 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/prot_ext/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | /     alt!((),
[INFO] [stdout] 73 | |          ignore_input!(
[INFO] [stdout] 74 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8, be_u8)),
[INFO] [stdout] 75 | |                 (message_len, bits_ext::EXTENDED_MESSAGE_ID, message_id) =>
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |                |res_cust_ext| res_cust_ext.map(|cust_ext| PeerExtensionProtocolMessage::Custom(cust_ext)))
[INFO] [stdout] 80 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |               $submac!($($args)*)
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/prot_ext/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | /     alt!((),
[INFO] [stdout] 73 | |          ignore_input!(
[INFO] [stdout] 74 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8, be_u8)),
[INFO] [stdout] 75 | |                 (message_len, bits_ext::EXTENDED_MESSAGE_ID, message_id) =>
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |                |res_cust_ext| res_cust_ext.map(|cust_ext| PeerExtensionProtocolMessage::Custom(cust_ext)))
[INFO] [stdout] 80 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/message/prot_ext/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | /     alt!((),
[INFO] [stdout] 73 | |          ignore_input!(
[INFO] [stdout] 74 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8, be_u8)),
[INFO] [stdout] 75 | |                 (message_len, bits_ext::EXTENDED_MESSAGE_ID, message_id) =>
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |                |res_cust_ext| res_cust_ext.map(|cust_ext| PeerExtensionProtocolMessage::Custom(cust_ext)))
[INFO] [stdout] 80 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/standard.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |         try!(message::write_length_id_pair(&mut writer, message::HAVE_MESSAGE_LEN, Some(message::HAVE_MESSAGE_ID)));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/message/standard.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     map!(bytes, be_u32, |index| Ok(HaveMessage::new(index)))
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/standard.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |         try!(message::write_length_id_pair(&mut writer, actual_length, Some(message::BITFIELD_MESSAGE_ID)));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |         try!(message::write_length_id_pair(&mut writer, message::REQUEST_MESSAGE_LEN, Some(message::REQUEST_MESSAGE_ID)));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 146 |         try!(writer.write_u32::<BigEndian>(self.piece_index));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         try!(writer.write_u32::<BigEndian>(self.block_offset));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 165 | /     map!(bytes,
[INFO] [stdout] 166 | |          tuple!(be_u32, be_u32, be_u32),
[INFO] [stdout] 167 | |          |(index, offset, length)| Ok(RequestMessage::new(index, offset, message::u32_to_usize(length)))
[INFO] [stdout] 168 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 165 | /     map!(bytes,
[INFO] [stdout] 166 | |          tuple!(be_u32, be_u32, be_u32),
[INFO] [stdout] 167 | |          |(index, offset, length)| Ok(RequestMessage::new(index, offset, message::u32_to_usize(length)))
[INFO] [stdout] 168 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |               $submac!($($args)*)
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |               $submac!($($args)*)
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 165 | /     map!(bytes,
[INFO] [stdout] 166 | |          tuple!(be_u32, be_u32, be_u32),
[INFO] [stdout] 167 | |          |(index, offset, length)| Ok(RequestMessage::new(index, offset, message::u32_to_usize(length)))
[INFO] [stdout] 168 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |               $submac!($($args)*)
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/bits_ext/mod.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | /     alt!((),
[INFO] [stdout] 66 | |         ignore_input!(
[INFO] [stdout] 67 | |             switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8)),
[INFO] [stdout] 68 | |                 (PORT_MESSAGE_LEN, PORT_MESSAGE_ID) => map!(
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/prot_ext/ut_metadata.rs:30:36
[INFO] [stdout]    |
[INFO] [stdout] 30 |                 let bencode_dict = try!(bencode::CONVERT.convert_dict(&bencode, ROOT_ERROR_KEY));
[INFO] [stdout]    |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/prot_ext/ut_metadata.rs:31:32
[INFO] [stdout]    |
[INFO] [stdout] 31 |                 let msg_type = try!(bencode::parse_message_type(bencode_dict));
[INFO] [stdout]    |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/prot_ext/ut_metadata.rs:32:29
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 let piece = try!(bencode::parse_piece_index(bencode_dict));
[INFO] [stdout]    |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/prot_ext/ut_metadata.rs:41:42
[INFO] [stdout]    |
[INFO] [stdout] 41 |                         let total_size = try!(bencode::parse_total_size(bencode_dict));
[INFO] [stdout]    |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/prot_ext/ut_metadata.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         try!(writer.write_all(encoded_bytes.as_ref()));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/prot_ext/mod.rs:50:17
[INFO] [stdout]    |
[INFO] [stdout] 50 |                 try!(message::write_length_id_pair(&mut writer, total_len, Some(bits_ext::EXTENDED_MESSAGE_ID)));
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/prot_ext/mod.rs:51:17
[INFO] [stdout]    |
[INFO] [stdout] 51 |                 try!(writer.write_u8(ext_id));
[INFO] [stdout]    |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |               $submac!($($args)*)
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/prot_ext/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | /     alt!((),
[INFO] [stdout] 73 | |          ignore_input!(
[INFO] [stdout] 74 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8, be_u8)),
[INFO] [stdout] 75 | |                 (message_len, bits_ext::EXTENDED_MESSAGE_ID, message_id) =>
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |                |res_cust_ext| res_cust_ext.map(|cust_ext| PeerExtensionProtocolMessage::Custom(cust_ext)))
[INFO] [stdout] 80 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/prot_ext/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | /     alt!((),
[INFO] [stdout] 73 | |          ignore_input!(
[INFO] [stdout] 74 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8, be_u8)),
[INFO] [stdout] 75 | |                 (message_len, bits_ext::EXTENDED_MESSAGE_ID, message_id) =>
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |                |res_cust_ext| res_cust_ext.map(|cust_ext| PeerExtensionProtocolMessage::Custom(cust_ext)))
[INFO] [stdout] 80 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/prot_ext/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | /     alt!((),
[INFO] [stdout] 73 | |          ignore_input!(
[INFO] [stdout] 74 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8, be_u8)),
[INFO] [stdout] 75 | |                 (message_len, bits_ext::EXTENDED_MESSAGE_ID, message_id) =>
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |                |res_cust_ext| res_cust_ext.map(|cust_ext| PeerExtensionProtocolMessage::Custom(cust_ext)))
[INFO] [stdout] 80 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 165 | /     map!(bytes,
[INFO] [stdout] 166 | |          tuple!(be_u32, be_u32, be_u32),
[INFO] [stdout] 167 | |          |(index, offset, length)| Ok(RequestMessage::new(index, offset, message::u32_to_usize(length)))
[INFO] [stdout] 168 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |         try!(message::write_length_id_pair(&mut writer, actual_length, Some(message::PIECE_MESSAGE_ID)));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:204:9
[INFO] [stdout]     |
[INFO] [stdout] 204 |         try!(writer.write_u32::<BigEndian>(self.piece_index));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         try!(writer.write_u32::<BigEndian>(self.block_offset));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 228 | /     do_parse!(bytes.as_ref(),
[INFO] [stdout] 229 | |         piece_index:  be_u32                                                    >>
[INFO] [stdout] 230 | |         block_offset: be_u32                                                    >>
[INFO] [stdout] 231 | |         block_len:    value!(message::u32_to_usize(len - 8))                    >>
[INFO] [stdout] 232 | |         block:        map!(take!(block_len), |_| bytes.slice(8, 8 + block_len)) >>
[INFO] [stdout] 233 | |         (Ok(PieceMessage::new(piece_index, block_offset, block)))
[INFO] [stdout] 234 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `do_parse`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `do_parse` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 228 | /     do_parse!(bytes.as_ref(),
[INFO] [stdout] 229 | |         piece_index:  be_u32                                                    >>
[INFO] [stdout] 230 | |         block_offset: be_u32                                                    >>
[INFO] [stdout] 231 | |         block_len:    value!(message::u32_to_usize(len - 8))                    >>
[INFO] [stdout] 232 | |         block:        map!(take!(block_len), |_| bytes.slice(8, 8 + block_len)) >>
[INFO] [stdout] 233 | |         (Ok(PieceMessage::new(piece_index, block_offset, block)))
[INFO] [stdout] 234 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `do_parse`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `do_parse` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 228 | /     do_parse!(bytes.as_ref(),
[INFO] [stdout] 229 | |         piece_index:  be_u32                                                    >>
[INFO] [stdout] 230 | |         block_offset: be_u32                                                    >>
[INFO] [stdout] 231 | |         block_len:    value!(message::u32_to_usize(len - 8))                    >>
[INFO] [stdout] 232 | |         block:        map!(take!(block_len), |_| bytes.slice(8, 8 + block_len)) >>
[INFO] [stdout] 233 | |         (Ok(PieceMessage::new(piece_index, block_offset, block)))
[INFO] [stdout] 234 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `do_parse` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:263:9
[INFO] [stdout]     |
[INFO] [stdout] 263 |         try!(message::write_length_id_pair(&mut writer, message::CANCEL_MESSAGE_LEN, Some(message::CANCEL_MESSAGE_ID)));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:265:9
[INFO] [stdout]     |
[INFO] [stdout] 265 |         try!(writer.write_u32::<BigEndian>(self.piece_index));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:266:9
[INFO] [stdout]     |
[INFO] [stdout] 266 |         try!(writer.write_u32::<BigEndian>(self.block_offset));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 | /     map!(bytes,
[INFO] [stdout] 285 | |          tuple!(be_u32, be_u32, be_u32),
[INFO] [stdout] 286 | |          |(index, offset, length)| Ok(CancelMessage::new(index, offset, message::u32_to_usize(length)))
[INFO] [stdout] 287 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 | /     map!(bytes,
[INFO] [stdout] 285 | |          tuple!(be_u32, be_u32, be_u32),
[INFO] [stdout] 286 | |          |(index, offset, length)| Ok(CancelMessage::new(index, offset, message::u32_to_usize(length)))
[INFO] [stdout] 287 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 | /     map!(bytes,
[INFO] [stdout] 285 | |          tuple!(be_u32, be_u32, be_u32),
[INFO] [stdout] 286 | |          |(index, offset, length)| Ok(CancelMessage::new(index, offset, message::u32_to_usize(length)))
[INFO] [stdout] 287 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 | /     map!(bytes,
[INFO] [stdout] 285 | |          tuple!(be_u32, be_u32, be_u32),
[INFO] [stdout] 286 | |          |(index, offset, length)| Ok(CancelMessage::new(index, offset, message::u32_to_usize(length)))
[INFO] [stdout] 287 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/mod.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 163 |     try!(writer.write_u32::<BigEndian>(length));
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:28:13
[INFO] [stdout]     |
[INFO] [stdout]  28 |               $submac!($($args)*)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/macros.rs:19:30
[INFO] [stdout]    |
[INFO] [stdout] 19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/message/prot_ext/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | /     alt!((),
[INFO] [stdout] 73 | |          ignore_input!(
[INFO] [stdout] 74 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8, be_u8)),
[INFO] [stdout] 75 | |                 (message_len, bits_ext::EXTENDED_MESSAGE_ID, message_id) =>
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |                |res_cust_ext| res_cust_ext.map(|cust_ext| PeerExtensionProtocolMessage::Custom(cust_ext)))
[INFO] [stdout] 80 | |     )
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/message/prot_ext/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 | /     alt!((),
[INFO] [stdout] 73 | |          ignore_input!(
[INFO] [stdout] 74 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, be_u8, be_u8)),
[INFO] [stdout] 75 | |                 (message_len, bits_ext::EXTENDED_MESSAGE_ID, message_id) =>
[INFO] [stdout] ...  |
[INFO] [stdout] 79 | |                |res_cust_ext| res_cust_ext.map(|cust_ext| PeerExtensionProtocolMessage::Custom(cust_ext)))
[INFO] [stdout] 80 | |     )
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/standard.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |         try!(message::write_length_id_pair(&mut writer, message::HAVE_MESSAGE_LEN, Some(message::HAVE_MESSAGE_ID)));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/message/standard.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     map!(bytes, be_u32, |index| Ok(HaveMessage::new(index)))
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/message/standard.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |         try!(message::write_length_id_pair(&mut writer, actual_length, Some(message::BITFIELD_MESSAGE_ID)));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:19:30
[INFO] [stdout]     |
[INFO] [stdout]  19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |         try!(message::write_length_id_pair(&mut writer, message::REQUEST_MESSAGE_LEN, Some(message::REQUEST_MESSAGE_ID)));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 146 |         try!(writer.write_u32::<BigEndian>(self.piece_index));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |         try!(writer.write_u32::<BigEndian>(self.block_offset));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 165 | /     map!(bytes,
[INFO] [stdout] 166 | |          tuple!(be_u32, be_u32, be_u32),
[INFO] [stdout] 167 | |          |(index, offset, length)| Ok(RequestMessage::new(index, offset, message::u32_to_usize(length)))
[INFO] [stdout] 168 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 165 | /     map!(bytes,
[INFO] [stdout] 166 | |          tuple!(be_u32, be_u32, be_u32),
[INFO] [stdout] 167 | |          |(index, offset, length)| Ok(RequestMessage::new(index, offset, message::u32_to_usize(length)))
[INFO] [stdout] 168 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:19:30
[INFO] [stdout]     |
[INFO] [stdout]  19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `opt`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `opt` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 165 | /     map!(bytes,
[INFO] [stdout] 166 | |          tuple!(be_u32, be_u32, be_u32),
[INFO] [stdout] 167 | |          |(index, offset, length)| Ok(RequestMessage::new(index, offset, message::u32_to_usize(length)))
[INFO] [stdout] 168 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:165:5
[INFO] [stdout]     |
[INFO] [stdout] 165 | /     map!(bytes,
[INFO] [stdout] 166 | |          tuple!(be_u32, be_u32, be_u32),
[INFO] [stdout] 167 | |          |(index, offset, length)| Ok(RequestMessage::new(index, offset, message::u32_to_usize(length)))
[INFO] [stdout] 168 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |         try!(message::write_length_id_pair(&mut writer, actual_length, Some(message::PIECE_MESSAGE_ID)));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:204:9
[INFO] [stdout]     |
[INFO] [stdout] 204 |         try!(writer.write_u32::<BigEndian>(self.piece_index));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         try!(writer.write_u32::<BigEndian>(self.block_offset));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:28:13
[INFO] [stdout]     |
[INFO] [stdout]  28 |               $submac!($($args)*)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 228 | /     do_parse!(bytes.as_ref(),
[INFO] [stdout] 229 | |         piece_index:  be_u32                                                    >>
[INFO] [stdout] 230 | |         block_offset: be_u32                                                    >>
[INFO] [stdout] 231 | |         block_len:    value!(message::u32_to_usize(len - 8))                    >>
[INFO] [stdout] 232 | |         block:        map!(take!(block_len), |_| bytes.slice(8, 8 + block_len)) >>
[INFO] [stdout] 233 | |         (Ok(PieceMessage::new(piece_index, block_offset, block)))
[INFO] [stdout] 234 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `do_parse`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `do_parse` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 228 | /     do_parse!(bytes.as_ref(),
[INFO] [stdout] 229 | |         piece_index:  be_u32                                                    >>
[INFO] [stdout] 230 | |         block_offset: be_u32                                                    >>
[INFO] [stdout] 231 | |         block_len:    value!(message::u32_to_usize(len - 8))                    >>
[INFO] [stdout] 232 | |         block:        map!(take!(block_len), |_| bytes.slice(8, 8 + block_len)) >>
[INFO] [stdout] 233 | |         (Ok(PieceMessage::new(piece_index, block_offset, block)))
[INFO] [stdout] 234 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `do_parse`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `do_parse` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:28:13
[INFO] [stdout]     |
[INFO] [stdout]  28 |               $submac!($($args)*)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:28:13
[INFO] [stdout]     |
[INFO] [stdout]  28 |               $submac!($($args)*)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:28:13
[INFO] [stdout]     |
[INFO] [stdout]  28 |               $submac!($($args)*)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:28:13
[INFO] [stdout]     |
[INFO] [stdout]  28 |               $submac!($($args)*)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 228 | /     do_parse!(bytes.as_ref(),
[INFO] [stdout] 229 | |         piece_index:  be_u32                                                    >>
[INFO] [stdout] 230 | |         block_offset: be_u32                                                    >>
[INFO] [stdout] 231 | |         block_len:    value!(message::u32_to_usize(len - 8))                    >>
[INFO] [stdout] 232 | |         block:        map!(take!(block_len), |_| bytes.slice(8, 8 + block_len)) >>
[INFO] [stdout] 233 | |         (Ok(PieceMessage::new(piece_index, block_offset, block)))
[INFO] [stdout] 234 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `do_parse` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:263:9
[INFO] [stdout]     |
[INFO] [stdout] 263 |         try!(message::write_length_id_pair(&mut writer, message::CANCEL_MESSAGE_LEN, Some(message::CANCEL_MESSAGE_ID)));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:265:9
[INFO] [stdout]     |
[INFO] [stdout] 265 |         try!(writer.write_u32::<BigEndian>(self.piece_index));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/standard.rs:266:9
[INFO] [stdout]     |
[INFO] [stdout] 266 |         try!(writer.write_u32::<BigEndian>(self.block_offset));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 | /     map!(bytes,
[INFO] [stdout] 285 | |          tuple!(be_u32, be_u32, be_u32),
[INFO] [stdout] 286 | |          |(index, offset, length)| Ok(CancelMessage::new(index, offset, message::u32_to_usize(length)))
[INFO] [stdout] 287 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 | /     map!(bytes,
[INFO] [stdout] 285 | |          tuple!(be_u32, be_u32, be_u32),
[INFO] [stdout] 286 | |          |(index, offset, length)| Ok(CancelMessage::new(index, offset, message::u32_to_usize(length)))
[INFO] [stdout] 287 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 | /     map!(bytes,
[INFO] [stdout] 285 | |          tuple!(be_u32, be_u32, be_u32),
[INFO] [stdout] 286 | |          |(index, offset, length)| Ok(CancelMessage::new(index, offset, message::u32_to_usize(length)))
[INFO] [stdout] 287 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/standard.rs:284:5
[INFO] [stdout]     |
[INFO] [stdout] 284 | /     map!(bytes,
[INFO] [stdout] 285 | |          tuple!(be_u32, be_u32, be_u32),
[INFO] [stdout] 286 | |          |(index, offset, length)| Ok(CancelMessage::new(index, offset, message::u32_to_usize(length)))
[INFO] [stdout] 287 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `map` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/message/mod.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 163 |     try!(writer.write_u32::<BigEndian>(length));
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:28:13
[INFO] [stdout]     |
[INFO] [stdout]  28 |               $submac!($($args)*)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:19:30
[INFO] [stdout]     |
[INFO] [stdout]  19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `tuple_parser`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `tuple_parser` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:19:30
[INFO] [stdout]     |
[INFO] [stdout]  19 |               throwaway_input!($submac!($i, $($args)*))
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `opt`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `opt` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:28:13
[INFO] [stdout]     |
[INFO] [stdout]  28 |               $submac!($($args)*)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:28:13
[INFO] [stdout]     |
[INFO] [stdout]  28 |               $submac!($($args)*)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:28:13
[INFO] [stdout]     |
[INFO] [stdout]  28 |               $submac!($($args)*)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:28:13
[INFO] [stdout]     |
[INFO] [stdout]  28 |               $submac!($($args)*)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:28:13
[INFO] [stdout]     |
[INFO] [stdout]  28 |               $submac!($($args)*)
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/message/mod.rs:201:5
[INFO] [stdout]     |
[INFO] [stdout] 201 | /     alt!((),
[INFO] [stdout] 202 | |          ignore_input!(
[INFO] [stdout] 203 | |              switch!(header_bytes.as_ref(), throwaway_input!(tuple!(be_u32, opt!(be_u8))),
[INFO] [stdout] 204 | |                 (KEEP_ALIVE_MESSAGE_LEN, None) => value!(
[INFO] [stdout] ...   |
[INFO] [stdout] 243 | |                |res_prot_ext| res_prot_ext.map(|prot_ext| PeerWireProtocolMessage::ProtExtension(prot_ext)))
[INFO] [stdout] 244 | |     )
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `map`
[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 #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map` which comes from the expansion of the macro `alt` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `macro_use` attribute cannot be used on macro defs
[INFO] [stdout]  --> src/macros.rs:1:3
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[macro_use]
[INFO] [stdout]   |   ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: the `macro_use` attribute can be applied to extern crates and modules
[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: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `macro_use` attribute cannot be used on macro defs
[INFO] [stdout]   --> src/macros.rs:24:3
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[macro_use]
[INFO] [stdout]    |   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the `macro_use` attribute can be applied to extern crates and modules
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/message/bencode.rs:34:34
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn parse_id_map<K, V>(root: &BDictAccess<K, V>) -> HashMap<ExtendedType, u8>
[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] 34 | pub fn parse_id_map<K, V>(root: &dyn BDictAccess<K, V>) -> HashMap<ExtendedType, u8>
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/message/bencode.rs:50:37
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn parse_client_id<K, V>(root: &BDictAccess<K, V>) -> Option<String>
[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] 50 | pub fn parse_client_id<K, V>(root: &dyn BDictAccess<K, V>) -> Option<String>
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/message/bencode.rs:57:43
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn parse_client_tcp_port<K, V>(root: &BDictAccess<K, V>) -> Option<u16>
[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] 57 | pub fn parse_client_tcp_port<K, V>(root: &dyn BDictAccess<K, V>) -> Option<u16>
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/message/bencode.rs:70:34
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn parse_our_ip<K, V>(root: &BDictAccess<K, V>) -> Option<IpAddr>
[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] 70 | pub fn parse_our_ip<K, V>(root: &dyn BDictAccess<K, V>) -> Option<IpAddr>
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/message/bencode.rs:85:44
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn parse_client_ipv6_addr<K, V>(root: &BDictAccess<K, V>) -> Option<Ipv6Addr>
[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] 85 | pub fn parse_client_ipv6_addr<K, V>(root: &dyn BDictAccess<K, V>) -> Option<Ipv6Addr>
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/message/bencode.rs:98:44
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn parse_client_ipv4_addr<K, V>(root: &BDictAccess<K, V>) -> Option<Ipv4Addr> 
[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] 98 | pub fn parse_client_ipv4_addr<K, V>(root: &dyn BDictAccess<K, V>) -> Option<Ipv4Addr> 
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/message/bencode.rs:111:47
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn parse_client_max_requests<K, V>(root: &BDictAccess<K, V>) -> Option<i64>
[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] 111 | pub fn parse_client_max_requests<K, V>(root: &dyn BDictAccess<K, V>) -> Option<i64>
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/message/bencode.rs:117:41
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn parse_metadata_size<K, V>(root: &BDictAccess<K, V>) -> Option<i64>
[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] 117 | pub fn parse_metadata_size<K, V>(root: &dyn BDictAccess<K, V>) -> Option<i64>
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/message/bencode.rs:140:40
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub fn parse_message_type<K, V>(root: &BDictAccess<K, V>) -> io::Result<u8>
[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] 140 | pub fn parse_message_type<K, V>(root: &dyn BDictAccess<K, V>) -> io::Result<u8>
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/message/bencode.rs:145:39
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub fn parse_piece_index<K, V>(root: &BDictAccess<K, V>) -> io::Result<i64>
[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] 145 | pub fn parse_piece_index<K, V>(root: &dyn BDictAccess<K, V>) -> io::Result<i64>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/message/bencode.rs:150:38
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub fn parse_total_size<K, V>(root: &BDictAccess<K, V>) -> io::Result<i64>
[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] 150 | pub fn parse_total_size<K, V>(root: &dyn BDictAccess<K, V>) -> io::Result<i64>
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `macro_use` attribute cannot be used on macro defs
[INFO] [stdout]  --> src/macros.rs:1:3
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[macro_use]
[INFO] [stdout]   |   ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: the `macro_use` attribute can be applied to extern crates and modules
[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: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `macro_use` attribute cannot be used on macro defs
[INFO] [stdout]   --> src/macros.rs:24:3
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[macro_use]
[INFO] [stdout]    |   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the `macro_use` attribute can be applied to extern crates and modules
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/message/bencode.rs:34:34
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn parse_id_map<K, V>(root: &BDictAccess<K, V>) -> HashMap<ExtendedType, u8>
[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] 34 | pub fn parse_id_map<K, V>(root: &dyn BDictAccess<K, V>) -> HashMap<ExtendedType, u8>
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/message/bencode.rs:50:37
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn parse_client_id<K, V>(root: &BDictAccess<K, V>) -> Option<String>
[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] 50 | pub fn parse_client_id<K, V>(root: &dyn BDictAccess<K, V>) -> Option<String>
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/message/bencode.rs:57:43
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn parse_client_tcp_port<K, V>(root: &BDictAccess<K, V>) -> Option<u16>
[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] 57 | pub fn parse_client_tcp_port<K, V>(root: &dyn BDictAccess<K, V>) -> Option<u16>
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/message/bencode.rs:70:34
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn parse_our_ip<K, V>(root: &BDictAccess<K, V>) -> Option<IpAddr>
[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] 70 | pub fn parse_our_ip<K, V>(root: &dyn BDictAccess<K, V>) -> Option<IpAddr>
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/message/bencode.rs:85:44
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn parse_client_ipv6_addr<K, V>(root: &BDictAccess<K, V>) -> Option<Ipv6Addr>
[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] 85 | pub fn parse_client_ipv6_addr<K, V>(root: &dyn BDictAccess<K, V>) -> Option<Ipv6Addr>
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/message/bencode.rs:98:44
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn parse_client_ipv4_addr<K, V>(root: &BDictAccess<K, V>) -> Option<Ipv4Addr> 
[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] 98 | pub fn parse_client_ipv4_addr<K, V>(root: &dyn BDictAccess<K, V>) -> Option<Ipv4Addr> 
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/message/bencode.rs:111:47
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn parse_client_max_requests<K, V>(root: &BDictAccess<K, V>) -> Option<i64>
[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] 111 | pub fn parse_client_max_requests<K, V>(root: &dyn BDictAccess<K, V>) -> Option<i64>
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/message/bencode.rs:117:41
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn parse_metadata_size<K, V>(root: &BDictAccess<K, V>) -> Option<i64>
[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] 117 | pub fn parse_metadata_size<K, V>(root: &dyn BDictAccess<K, V>) -> Option<i64>
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/message/bencode.rs:140:40
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub fn parse_message_type<K, V>(root: &BDictAccess<K, V>) -> io::Result<u8>
[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] 140 | pub fn parse_message_type<K, V>(root: &dyn BDictAccess<K, V>) -> io::Result<u8>
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/message/bencode.rs:145:39
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub fn parse_piece_index<K, V>(root: &BDictAccess<K, V>) -> io::Result<i64>
[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] 145 | pub fn parse_piece_index<K, V>(root: &dyn BDictAccess<K, V>) -> io::Result<i64>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/message/bencode.rs:150:38
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub fn parse_total_size<K, V>(root: &BDictAccess<K, V>) -> io::Result<i64>
[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] 150 | pub fn parse_total_size<K, V>(root: &dyn BDictAccess<K, V>) -> io::Result<i64>
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/manager/task.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 |     Peer(PeerError),
[INFO] [stdout]    |     ---- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 30 -     Peer(PeerError),
[INFO] [stdout] 30 +     Peer(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/manager/task.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 |     Peer(PeerError),
[INFO] [stdout]    |     ---- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 30 -     Peer(PeerError),
[INFO] [stdout] 30 +     Peer(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 29.52s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bip_handshake v0.7.1, bip_peer v0.5.0 (/opt/rustwide/workdir), nom v3.2.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 12`
[INFO] running `Command { std: "docker" "inspect" "2b0ff0534c5a457e4b18e29cd1f92909b5d3d3ad5512d8bb42850e98ff45ed1e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2b0ff0534c5a457e4b18e29cd1f92909b5d3d3ad5512d8bb42850e98ff45ed1e", kill_on_drop: false }`
[INFO] [stdout] 2b0ff0534c5a457e4b18e29cd1f92909b5d3d3ad5512d8bb42850e98ff45ed1e
