[INFO] fetching crate bip_metainfo 0.12.0...
[INFO] testing bip_metainfo-0.12.0 against master#1871252fc8bb672d40787e67404e6eaae7059369 for pr-125151
[INFO] extracting crate bip_metainfo 0.12.0 into /workspace/builds/worker-0-tc1/source
[INFO] validating manifest of crates.io crate bip_metainfo 0.12.0 on toolchain 1871252fc8bb672d40787e67404e6eaae7059369
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate bip_metainfo 0.12.0
[INFO] finished tweaking crates.io crate bip_metainfo 0.12.0
[INFO] tweaked toml for crates.io crate bip_metainfo 0.12.0 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "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 75 packages to latest compatible versions
[INFO] [stderr]       Adding addr2line v0.21.0 (latest: v0.22.0)
[INFO] [stderr]       Adding chrono v0.2.25 (latest: v0.4.38)
[INFO] [stderr]       Adding crossbeam v0.3.2 (latest: v0.8.4)
[INFO] [stderr]       Adding error-chain v0.11.0 (latest: v0.12.4)
[INFO] [stderr]       Adding gimli v0.28.1 (latest: v0.29.0)
[INFO] [stderr]       Adding num v0.1.42 (latest: v0.4.3)
[INFO] [stderr]       Adding num-bigint v0.1.44 (latest: v0.4.5)
[INFO] [stderr]       Adding num-complex v0.1.43 (latest: v0.4.6)
[INFO] [stderr]       Adding num-rational v0.1.42 (latest: v0.4.2)
[INFO] [stderr]       Adding object v0.32.2 (latest: v0.35.0)
[INFO] [stderr]       Adding rand v0.3.23 (latest: v0.8.5)
[INFO] [stderr]       Adding rand v0.4.6 (latest: v0.8.5)
[INFO] [stderr]       Adding rand_core v0.3.1 (latest: v0.6.4)
[INFO] [stderr]       Adding rand_core v0.4.2 (latest: v0.6.4)
[INFO] [stderr]       Adding rdrand v0.4.0 (latest: v0.8.3)
[INFO] [stderr]       Adding time v0.1.45 (latest: v0.3.36)
[INFO] [stderr]       Adding wasi v0.10.0+wasi-snapshot-preview1 (latest: v0.13.1+wasi-0.2.0)
[INFO] [stderr]       Adding windows-core v0.52.0 (latest: v0.56.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `panic` setting is ignored for `bench` profile
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bip_bencode v0.4.4
[INFO] [stderr]   Downloaded error-chain v0.11.0
[INFO] [stderr]   Downloaded crossbeam v0.3.2
[INFO] [stderr]   Downloaded bip_util v0.5.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 17c307532aff0f0c131714e527f6c4f2da411ba1a5195b86c23c3cf212a32f81
[INFO] running `Command { std: "docker" "start" "-a" "17c307532aff0f0c131714e527f6c4f2da411ba1a5195b86c23c3cf212a32f81", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "17c307532aff0f0c131714e527f6c4f2da411ba1a5195b86c23c3cf212a32f81", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "17c307532aff0f0c131714e527f6c4f2da411ba1a5195b86c23c3cf212a32f81", kill_on_drop: false }`
[INFO] [stdout] 17c307532aff0f0c131714e527f6c4f2da411ba1a5195b86c23c3cf212a32f81
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 95f851bf6586b1360d5a6ed2f4d71ea200a310ebc58010f4a11fd92e97e59f2d
[INFO] running `Command { std: "docker" "start" "-a" "95f851bf6586b1360d5a6ed2f4d71ea200a310ebc58010f4a11fd92e97e59f2d", kill_on_drop: false }`
[INFO] [stderr] warning: `panic` setting is ignored for `bench` profile
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]    Compiling autocfg v1.3.0
[INFO] [stderr]    Compiling rustc-serialize v0.3.25
[INFO] [stderr]    Compiling cc v1.0.98
[INFO] [stderr]    Compiling memchr v2.7.2
[INFO] [stderr]    Compiling gimli v0.28.1
[INFO] [stderr]    Compiling adler v1.0.2
[INFO] [stderr]    Compiling gcc v0.3.55
[INFO] [stderr]    Compiling rustc-demangle v0.1.24
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling crossbeam v0.3.2
[INFO] [stderr]    Compiling miniz_oxide v0.7.3
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling object v0.32.2
[INFO] [stderr]    Compiling rust-crypto v0.2.36
[INFO] [stderr]    Compiling rand v0.4.6
[INFO] [stderr]    Compiling time v0.1.45
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling backtrace v0.3.71
[INFO] [stderr]    Compiling rand v0.3.23
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling num-bigint v0.1.44
[INFO] [stderr]    Compiling num-complex v0.1.43
[INFO] [stderr]    Compiling addr2line v0.21.0
[INFO] [stderr]    Compiling num-rational v0.1.42
[INFO] [stderr]    Compiling num v0.1.42
[INFO] [stderr]    Compiling chrono v0.2.25
[INFO] [stderr]    Compiling bip_util v0.5.0
[INFO] [stderr]    Compiling error-chain v0.11.0
[INFO] [stderr]    Compiling bip_bencode v0.4.4
[INFO] [stderr]    Compiling bip_metainfo v0.12.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/accessor.rs:80:29
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let absolute_path = try!(path.as_ref().canonicalize());
[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/accessor.rs:129:25
[INFO] [stdout]     |
[INFO] [stdout] 129 |             let entry = try!(res_entry);
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:130:34
[INFO] [stdout]     |
[INFO] [stdout] 130 |             let entry_metadata = try!(entry.metadata());
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |             try!(callback(PieceAccess::Compute(&mut file)));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:150:25
[INFO] [stdout]     |
[INFO] [stdout] 150 |             let entry = try!(res_entry);
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:151:28
[INFO] [stdout]     |
[INFO] [stdout] 151 |             let mut file = try!(File::open(entry.path()));
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/builder/buffer.rs:66:30
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let new_bytes_read = try!(callback(&mut self.buffer[self.bytes_read..]));
[INFO] [stdout]    |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/builder/worker.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     try!(accessor.access_pieces(|piece_access| {
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/worker.rs:103:25
[INFO] [stdout]     |
[INFO] [stdout] 103 |                         try!(curr_piece_buffer.write_bytes(|buffer| piece_region.read(buffer))) == 0;
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:136:24
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let accessor = try!(accessor.into_accessor());
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:185:24
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let accessor = try!(accessor.into_accessor());
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 207 |         try!(accessor.access_metadata(|len, path| {
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:219:27
[INFO] [stdout]     |
[INFO] [stdout] 219 |         let pieces_list = try!(worker::start_hasher_workers(&accessor,
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/metainfo.rs:91:24
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let root_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default()));
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/metainfo.rs:92:21
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let root_dict = try!(parse::parse_root_dict(&root_bencode));
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:100:24
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let info_bencode = try!(parse::parse_info_bencode(root_dict));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:101:16
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let info = try!(parse_info_dictionary(info_bencode));
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:224:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |             try!(callback(PieceAccess::PreComputed(ShaHash::from_hash(piece).unwrap())));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:233:24
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let info_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default()));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:242:21
[INFO] [stdout]     |
[INFO] [stdout] 242 |     let info_dict = try!(parse::parse_root_dict(info_bencode));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:243:21
[INFO] [stdout]     |
[INFO] [stdout] 243 |     let piece_len = try!(parse::parse_piece_length(info_dict));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:246:18
[INFO] [stdout]     |
[INFO] [stdout] 246 |     let pieces = try!(parse::parse_pieces(info_dict));
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:247:25
[INFO] [stdout]     |
[INFO] [stdout] 247 |     let piece_buffers = try!(allocate_pieces(pieces));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:250:30
[INFO] [stdout]     |
[INFO] [stdout] 250 |         let file_directory = try!(parse::parse_name(info_dict));
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:254:29
[INFO] [stdout]     |
[INFO] [stdout] 254 |         let files_bencode = try!(parse::parse_files_list(info_dict));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:258:29
[INFO] [stdout]     |
[INFO] [stdout] 258 |             let file_dict = try!(parse::parse_file_dict(file_bencode));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:259:24
[INFO] [stdout]     |
[INFO] [stdout] 259 |             let file = try!(File::as_multi_file(file_dict));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:273:20
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let file = try!(File::as_single_file(info_dict));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:327:22
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let length = try!(parse::parse_length(info_dict));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:329:20
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let name = try!(parse::parse_name(info_dict));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:341:22
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let length = try!(parse::parse_length(file_dict));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:344:33
[INFO] [stdout]     |
[INFO] [stdout] 344 |         let path_list_bencode = try!(parse::parse_path_list(file_dict));
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:348:24
[INFO] [stdout]     |
[INFO] [stdout] 348 |             let path = try!(parse::parse_path_str(path_bencode));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | / error_chain! {
[INFO] [stdout] 9  | |     types {
[INFO] [stdout] 10 | |         ParseError, ParseErrorKind, ParseResultEx, ParseResult;
[INFO] [stdout] 11 | |     }
[INFO] [stdout] ...  |
[INFO] [stdout] 27 | |     }
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/accessor.rs:62:21
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Compute(&'a mut Read),
[INFO] [stdout]    |                     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Compute(&'a mut dyn Read),
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:287:41
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn is_multi_file_torrent<B>(info_dict: &BDictAccess<B::BKey, B>) -> bool
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn is_multi_file_torrent<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> bool
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:44:61
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn parse_root_dict<B>(root_bencode: &B) -> ParseResult<&BDictAccess<B::BKey, B::BType>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn parse_root_dict<B>(root_bencode: &B) -> ParseResult<&dyn BDictAccess<B::BKey, B::BType>>
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:50:49
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:56:43
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn parse_creation_date<B>(root_dict: &BDictAccess<B::BKey, B>) -> 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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn parse_creation_date<B>(root_dict: &dyn BDictAccess<B::BKey, B>) -> Option<i64>
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:62:44
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn parse_comment<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn parse_comment<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:68:47
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:74:45
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:80:49
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&B>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&B>
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:88:42
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn parse_piece_length<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn parse_piece_length<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:94:43
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&'a [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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&'a [u8]>
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:100:37
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn parse_private<B>(info_dict: &BDictAccess<B::BKey, B>) -> Option<bool>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn parse_private<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> Option<bool>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:106:41
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn parse_name<'a, B>(info_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn parse_name<'a, B>(info_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&'a str>
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:112:40
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:112:81
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&dyn BListAccess<B>>
[INFO] [stdout]     |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:120:61
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn parse_file_dict<B>(file_bencode: &B) -> ParseResult<&BDictAccess<B::BKey, B::BType>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn parse_file_dict<B>(file_bencode: &B) -> ParseResult<&dyn BDictAccess<B::BKey, B::BType>>
[INFO] [stdout]     |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:126:44
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn parse_length<B>(info_or_file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn parse_length<B>(info_or_file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:132:51
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a [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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a [u8]>
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:138:39
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:138:80
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&dyn BListAccess<B>>
[INFO] [stdout]     |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:325:38
[INFO] [stdout]     |
[INFO] [stdout] 325 |     fn as_single_file<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<File>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 325 |     fn as_single_file<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:339:37
[INFO] [stdout]     |
[INFO] [stdout] 339 |     fn as_multi_file<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<File>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 339 |     fn as_multi_file<B>(file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/error.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | / error_chain! {
[INFO] [stdout] 9  | |     types {
[INFO] [stdout] 10 | |         ParseError, ParseErrorKind, ParseResultEx, ParseResult;
[INFO] [stdout] 11 | |     }
[INFO] [stdout] ...  |
[INFO] [stdout] 27 | |     }
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 57 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.79s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint v0.1.44, num-complex v0.1.43, num-rational v0.1.42
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "95f851bf6586b1360d5a6ed2f4d71ea200a310ebc58010f4a11fd92e97e59f2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "95f851bf6586b1360d5a6ed2f4d71ea200a310ebc58010f4a11fd92e97e59f2d", kill_on_drop: false }`
[INFO] [stdout] 95f851bf6586b1360d5a6ed2f4d71ea200a310ebc58010f4a11fd92e97e59f2d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8dff39dc692c992f105f507ca792d272f6e80f82c738ecdde56f58f80e1cf460
[INFO] running `Command { std: "docker" "start" "-a" "8dff39dc692c992f105f507ca792d272f6e80f82c738ecdde56f58f80e1cf460", kill_on_drop: false }`
[INFO] [stderr] warning: `panic` setting is ignored for `bench` profile
[INFO] [stderr]    Compiling crossbeam-utils v0.8.20
[INFO] [stderr]    Compiling iana-time-zone v0.1.60
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/accessor.rs:80:29
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let absolute_path = try!(path.as_ref().canonicalize());
[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/accessor.rs:129:25
[INFO] [stdout]     |
[INFO] [stdout] 129 |             let entry = try!(res_entry);
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:130:34
[INFO] [stdout]     |
[INFO] [stdout] 130 |             let entry_metadata = try!(entry.metadata());
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |             try!(callback(PieceAccess::Compute(&mut file)));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:150:25
[INFO] [stdout]     |
[INFO] [stdout] 150 |             let entry = try!(res_entry);
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:151:28
[INFO] [stdout]     |
[INFO] [stdout] 151 |             let mut file = try!(File::open(entry.path()));
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/builder/buffer.rs:66:30
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let new_bytes_read = try!(callback(&mut self.buffer[self.bytes_read..]));
[INFO] [stdout]    |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/builder/worker.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     try!(accessor.access_pieces(|piece_access| {
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/worker.rs:103:25
[INFO] [stdout]     |
[INFO] [stdout] 103 |                         try!(curr_piece_buffer.write_bytes(|buffer| piece_region.read(buffer))) == 0;
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:136:24
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let accessor = try!(accessor.into_accessor());
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:185:24
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let accessor = try!(accessor.into_accessor());
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 207 |         try!(accessor.access_metadata(|len, path| {
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:219:27
[INFO] [stdout]     |
[INFO] [stdout] 219 |         let pieces_list = try!(worker::start_hasher_workers(&accessor,
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/metainfo.rs:91:24
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let root_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default()));
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/metainfo.rs:92:21
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let root_dict = try!(parse::parse_root_dict(&root_bencode));
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:100:24
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let info_bencode = try!(parse::parse_info_bencode(root_dict));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:101:16
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let info = try!(parse_info_dictionary(info_bencode));
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:224:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |             try!(callback(PieceAccess::PreComputed(ShaHash::from_hash(piece).unwrap())));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:233:24
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let info_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default()));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:242:21
[INFO] [stdout]     |
[INFO] [stdout] 242 |     let info_dict = try!(parse::parse_root_dict(info_bencode));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:243:21
[INFO] [stdout]     |
[INFO] [stdout] 243 |     let piece_len = try!(parse::parse_piece_length(info_dict));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:246:18
[INFO] [stdout]     |
[INFO] [stdout] 246 |     let pieces = try!(parse::parse_pieces(info_dict));
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:247:25
[INFO] [stdout]     |
[INFO] [stdout] 247 |     let piece_buffers = try!(allocate_pieces(pieces));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:250:30
[INFO] [stdout]     |
[INFO] [stdout] 250 |         let file_directory = try!(parse::parse_name(info_dict));
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:254:29
[INFO] [stdout]     |
[INFO] [stdout] 254 |         let files_bencode = try!(parse::parse_files_list(info_dict));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:258:29
[INFO] [stdout]     |
[INFO] [stdout] 258 |             let file_dict = try!(parse::parse_file_dict(file_bencode));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:259:24
[INFO] [stdout]     |
[INFO] [stdout] 259 |             let file = try!(File::as_multi_file(file_dict));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:273:20
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let file = try!(File::as_single_file(info_dict));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:327:22
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let length = try!(parse::parse_length(info_dict));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:329:20
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let name = try!(parse::parse_name(info_dict));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:341:22
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let length = try!(parse::parse_length(file_dict));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:344:33
[INFO] [stdout]     |
[INFO] [stdout] 344 |         let path_list_bencode = try!(parse::parse_path_list(file_dict));
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:348:24
[INFO] [stdout]     |
[INFO] [stdout] 348 |             let path = try!(parse::parse_path_str(path_bencode));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | / error_chain! {
[INFO] [stdout] 9  | |     types {
[INFO] [stdout] 10 | |         ParseError, ParseErrorKind, ParseResultEx, ParseResult;
[INFO] [stdout] 11 | |     }
[INFO] [stdout] ...  |
[INFO] [stdout] 27 | |     }
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/accessor.rs:62:21
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Compute(&'a mut Read),
[INFO] [stdout]    |                     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Compute(&'a mut dyn Read),
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:287:41
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn is_multi_file_torrent<B>(info_dict: &BDictAccess<B::BKey, B>) -> bool
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn is_multi_file_torrent<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> bool
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:44:61
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn parse_root_dict<B>(root_bencode: &B) -> ParseResult<&BDictAccess<B::BKey, B::BType>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn parse_root_dict<B>(root_bencode: &B) -> ParseResult<&dyn BDictAccess<B::BKey, B::BType>>
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:50:49
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:56:43
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn parse_creation_date<B>(root_dict: &BDictAccess<B::BKey, B>) -> 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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn parse_creation_date<B>(root_dict: &dyn BDictAccess<B::BKey, B>) -> Option<i64>
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:62:44
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn parse_comment<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn parse_comment<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:68:47
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:74:45
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:80:49
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&B>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&B>
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:88:42
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn parse_piece_length<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn parse_piece_length<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:94:43
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&'a [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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&'a [u8]>
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:100:37
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn parse_private<B>(info_dict: &BDictAccess<B::BKey, B>) -> Option<bool>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn parse_private<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> Option<bool>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:106:41
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn parse_name<'a, B>(info_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn parse_name<'a, B>(info_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&'a str>
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:112:40
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:112:81
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&dyn BListAccess<B>>
[INFO] [stdout]     |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:120:61
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn parse_file_dict<B>(file_bencode: &B) -> ParseResult<&BDictAccess<B::BKey, B::BType>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn parse_file_dict<B>(file_bencode: &B) -> ParseResult<&dyn BDictAccess<B::BKey, B::BType>>
[INFO] [stdout]     |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:126:44
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn parse_length<B>(info_or_file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn parse_length<B>(info_or_file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:132:51
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a [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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a [u8]>
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:138:39
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:138:80
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&dyn BListAccess<B>>
[INFO] [stdout]     |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:325:38
[INFO] [stdout]     |
[INFO] [stdout] 325 |     fn as_single_file<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<File>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 325 |     fn as_single_file<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:339:37
[INFO] [stdout]     |
[INFO] [stdout] 339 |     fn as_multi_file<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<File>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 339 |     fn as_multi_file<B>(file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/error.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | / error_chain! {
[INFO] [stdout] 9  | |     types {
[INFO] [stdout] 10 | |         ParseError, ParseErrorKind, ParseResultEx, ParseResult;
[INFO] [stdout] 11 | |     }
[INFO] [stdout] ...  |
[INFO] [stdout] 27 | |     }
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 57 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling chrono v0.4.38
[INFO] [stderr]    Compiling crossbeam-channel v0.5.13
[INFO] [stderr]    Compiling pbr v1.1.1
[INFO] [stderr]    Compiling bip_metainfo v0.12.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp`: use `timestamp_opt()` instead
[INFO] [stdout]   --> examples/create_torrent.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         Utc.timestamp(c, 0)
[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/accessor.rs:80:29
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let absolute_path = try!(path.as_ref().canonicalize());
[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/accessor.rs:129:25
[INFO] [stdout]     |
[INFO] [stdout] 129 |             let entry = try!(res_entry);
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:130:34
[INFO] [stdout]     |
[INFO] [stdout] 130 |             let entry_metadata = try!(entry.metadata());
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |             try!(callback(PieceAccess::Compute(&mut file)));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:150:25
[INFO] [stdout]     |
[INFO] [stdout] 150 |             let entry = try!(res_entry);
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:151:28
[INFO] [stdout]     |
[INFO] [stdout] 151 |             let mut file = try!(File::open(entry.path()));
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/builder/buffer.rs:66:30
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let new_bytes_read = try!(callback(&mut self.buffer[self.bytes_read..]));
[INFO] [stdout]    |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/builder/worker.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     try!(accessor.access_pieces(|piece_access| {
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/worker.rs:103:25
[INFO] [stdout]     |
[INFO] [stdout] 103 |                         try!(curr_piece_buffer.write_bytes(|buffer| piece_region.read(buffer))) == 0;
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/worker.rs:273:17
[INFO] [stdout]     |
[INFO] [stdout] 273 |                 try!(callback(PieceAccess::Compute(&mut next_region)));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:136:24
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let accessor = try!(accessor.into_accessor());
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:185:24
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let accessor = try!(accessor.into_accessor());
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 207 |         try!(accessor.access_metadata(|len, path| {
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:219:27
[INFO] [stdout]     |
[INFO] [stdout] 219 |         let pieces_list = try!(worker::start_hasher_workers(&accessor,
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/metainfo.rs:91:24
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let root_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default()));
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/metainfo.rs:92:21
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let root_dict = try!(parse::parse_root_dict(&root_bencode));
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:100:24
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let info_bencode = try!(parse::parse_info_bencode(root_dict));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:101:16
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let info = try!(parse_info_dictionary(info_bencode));
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:224:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |             try!(callback(PieceAccess::PreComputed(ShaHash::from_hash(piece).unwrap())));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:233:24
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let info_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default()));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:242:21
[INFO] [stdout]     |
[INFO] [stdout] 242 |     let info_dict = try!(parse::parse_root_dict(info_bencode));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:243:21
[INFO] [stdout]     |
[INFO] [stdout] 243 |     let piece_len = try!(parse::parse_piece_length(info_dict));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:246:18
[INFO] [stdout]     |
[INFO] [stdout] 246 |     let pieces = try!(parse::parse_pieces(info_dict));
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:247:25
[INFO] [stdout]     |
[INFO] [stdout] 247 |     let piece_buffers = try!(allocate_pieces(pieces));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:250:30
[INFO] [stdout]     |
[INFO] [stdout] 250 |         let file_directory = try!(parse::parse_name(info_dict));
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:254:29
[INFO] [stdout]     |
[INFO] [stdout] 254 |         let files_bencode = try!(parse::parse_files_list(info_dict));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:258:29
[INFO] [stdout]     |
[INFO] [stdout] 258 |             let file_dict = try!(parse::parse_file_dict(file_bencode));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:259:24
[INFO] [stdout]     |
[INFO] [stdout] 259 |             let file = try!(File::as_multi_file(file_dict));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:273:20
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let file = try!(File::as_single_file(info_dict));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:327:22
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let length = try!(parse::parse_length(info_dict));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:329:20
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let name = try!(parse::parse_name(info_dict));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:341:22
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let length = try!(parse::parse_length(file_dict));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:344:33
[INFO] [stdout]     |
[INFO] [stdout] 344 |         let path_list_bencode = try!(parse::parse_path_list(file_dict));
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:348:24
[INFO] [stdout]     |
[INFO] [stdout] 348 |             let path = try!(parse::parse_path_str(path_bencode));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | / error_chain! {
[INFO] [stdout] 9  | |     types {
[INFO] [stdout] 10 | |         ParseError, ParseErrorKind, ParseResultEx, ParseResult;
[INFO] [stdout] 11 | |     }
[INFO] [stdout] ...  |
[INFO] [stdout] 27 | |     }
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/accessor.rs:62:21
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Compute(&'a mut Read),
[INFO] [stdout]    |                     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Compute(&'a mut dyn Read),
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:287:41
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn is_multi_file_torrent<B>(info_dict: &BDictAccess<B::BKey, B>) -> bool
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn is_multi_file_torrent<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> bool
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:44:61
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn parse_root_dict<B>(root_bencode: &B) -> ParseResult<&BDictAccess<B::BKey, B::BType>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn parse_root_dict<B>(root_bencode: &B) -> ParseResult<&dyn BDictAccess<B::BKey, B::BType>>
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:50:49
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:56:43
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn parse_creation_date<B>(root_dict: &BDictAccess<B::BKey, B>) -> 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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn parse_creation_date<B>(root_dict: &dyn BDictAccess<B::BKey, B>) -> Option<i64>
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:62:44
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn parse_comment<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn parse_comment<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:68:47
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:74:45
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:80:49
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&B>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&B>
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:88:42
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn parse_piece_length<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn parse_piece_length<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:94:43
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&'a [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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&'a [u8]>
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:100:37
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn parse_private<B>(info_dict: &BDictAccess<B::BKey, B>) -> Option<bool>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn parse_private<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> Option<bool>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:106:41
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn parse_name<'a, B>(info_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn parse_name<'a, B>(info_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&'a str>
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:112:40
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:112:81
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&dyn BListAccess<B>>
[INFO] [stdout]     |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:120:61
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn parse_file_dict<B>(file_bencode: &B) -> ParseResult<&BDictAccess<B::BKey, B::BType>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn parse_file_dict<B>(file_bencode: &B) -> ParseResult<&dyn BDictAccess<B::BKey, B::BType>>
[INFO] [stdout]     |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:126:44
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn parse_length<B>(info_or_file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn parse_length<B>(info_or_file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:132:51
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a [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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a [u8]>
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:138:39
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:138:80
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&dyn BListAccess<B>>
[INFO] [stdout]     |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:325:38
[INFO] [stdout]     |
[INFO] [stdout] 325 |     fn as_single_file<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<File>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 325 |     fn as_single_file<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:339:37
[INFO] [stdout]     |
[INFO] [stdout] 339 |     fn as_multi_file<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<File>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 339 |     fn as_multi_file<B>(file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/error.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | / error_chain! {
[INFO] [stdout] 9  | |     types {
[INFO] [stdout] 10 | |         ParseError, ParseErrorKind, ParseResultEx, ParseResult;
[INFO] [stdout] 11 | |     }
[INFO] [stdout] ...  |
[INFO] [stdout] 27 | |     }
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> src/builder/worker.rs:352:46
[INFO] [stdout]     |
[INFO] [stdout] 352 |         for &region_length in region_lengths.into_iter() {
[INFO] [stdout]     |                                              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 352 |         for &region_length in region_lengths.iter() {
[INFO] [stdout]     |                                              ~~~~
[INFO] [stdout] help: or remove `.into_iter()` to iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 352 -         for &region_length in region_lengths.into_iter() {
[INFO] [stdout] 352 +         for &region_length in region_lengths {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> src/builder/worker.rs:366:46
[INFO] [stdout]     |
[INFO] [stdout] 366 |         for &region_length in region_lengths.into_iter() {
[INFO] [stdout]     |                                              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 366 |         for &region_length in region_lengths.iter() {
[INFO] [stdout]     |                                              ~~~~
[INFO] [stdout] help: or remove `.into_iter()` to iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 366 -         for &region_length in region_lengths.into_iter() {
[INFO] [stdout] 366 +         for &region_length in region_lengths {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> src/builder/worker.rs:381:46
[INFO] [stdout]     |
[INFO] [stdout] 381 |         for &region_length in region_lengths.into_iter() {
[INFO] [stdout]     |                                              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 381 |         for &region_length in region_lengths.iter() {
[INFO] [stdout]     |                                              ~~~~
[INFO] [stdout] help: or remove `.into_iter()` to iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 381 -         for &region_length in region_lengths.into_iter() {
[INFO] [stdout] 381 +         for &region_length in region_lengths {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> src/builder/worker.rs:396:46
[INFO] [stdout]     |
[INFO] [stdout] 396 |         for &region_length in region_lengths.into_iter() {
[INFO] [stdout]     |                                              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 396 |         for &region_length in region_lengths.iter() {
[INFO] [stdout]     |                                              ~~~~
[INFO] [stdout] help: or remove `.into_iter()` to iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 396 -         for &region_length in region_lengths.into_iter() {
[INFO] [stdout] 396 +         for &region_length in region_lengths {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 62 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 6.04s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint v0.1.44, num-complex v0.1.43, num-rational v0.1.42
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "8dff39dc692c992f105f507ca792d272f6e80f82c738ecdde56f58f80e1cf460", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8dff39dc692c992f105f507ca792d272f6e80f82c738ecdde56f58f80e1cf460", kill_on_drop: false }`
[INFO] [stdout] 8dff39dc692c992f105f507ca792d272f6e80f82c738ecdde56f58f80e1cf460
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] b4c9cc0a462e496c785030d21e00edb9d1a380319654b654bc442542ef622e96
[INFO] running `Command { std: "docker" "start" "-a" "b4c9cc0a462e496c785030d21e00edb9d1a380319654b654bc442542ef622e96", kill_on_drop: false }`
[INFO] [stderr] warning: `panic` setting is ignored for `bench` profile
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/accessor.rs:80:29
[INFO] [stderr]    |
[INFO] [stderr] 80 |         let absolute_path = try!(path.as_ref().canonicalize());
[INFO] [stderr]    |                             ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/accessor.rs:129:25
[INFO] [stderr]     |
[INFO] [stderr] 129 |             let entry = try!(res_entry);
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/accessor.rs:130:34
[INFO] [stderr]     |
[INFO] [stderr] 130 |             let entry_metadata = try!(entry.metadata());
[INFO] [stderr]     |                                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/accessor.rs:153:13
[INFO] [stderr]     |
[INFO] [stderr] 153 |             try!(callback(PieceAccess::Compute(&mut file)));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/accessor.rs:150:25
[INFO] [stderr]     |
[INFO] [stderr] 150 |             let entry = try!(res_entry);
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/accessor.rs:151:28
[INFO] [stderr]     |
[INFO] [stderr] 151 |             let mut file = try!(File::open(entry.path()));
[INFO] [stderr]     |                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/builder/buffer.rs:66:30
[INFO] [stderr]    |
[INFO] [stderr] 66 |         let new_bytes_read = try!(callback(&mut self.buffer[self.bytes_read..]));
[INFO] [stderr]    |                              ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/builder/worker.rs:91:5
[INFO] [stderr]    |
[INFO] [stderr] 91 |     try!(accessor.access_pieces(|piece_access| {
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/builder/worker.rs:103:25
[INFO] [stderr]     |
[INFO] [stderr] 103 |                         try!(curr_piece_buffer.write_bytes(|buffer| piece_region.read(buffer))) == 0;
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/builder/mod.rs:136:24
[INFO] [stderr]     |
[INFO] [stderr] 136 |         let accessor = try!(accessor.into_accessor());
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/builder/mod.rs:185:24
[INFO] [stderr]     |
[INFO] [stderr] 185 |         let accessor = try!(accessor.into_accessor());
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/builder/mod.rs:207:9
[INFO] [stderr]     |
[INFO] [stderr] 207 |         try!(accessor.access_metadata(|len, path| {
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/builder/mod.rs:219:27
[INFO] [stderr]     |
[INFO] [stderr] 219 |         let pieces_list = try!(worker::start_hasher_workers(&accessor,
[INFO] [stderr]     |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/metainfo.rs:91:24
[INFO] [stderr]    |
[INFO] [stderr] 91 |     let root_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default()));
[INFO] [stderr]    |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/metainfo.rs:92:21
[INFO] [stderr]    |
[INFO] [stderr] 92 |     let root_dict = try!(parse::parse_root_dict(&root_bencode));
[INFO] [stderr]    |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:100:24
[INFO] [stderr]     |
[INFO] [stderr] 100 |     let info_bencode = try!(parse::parse_info_bencode(root_dict));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:101:16
[INFO] [stderr]     |
[INFO] [stderr] 101 |     let info = try!(parse_info_dictionary(info_bencode));
[INFO] [stderr]     |                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:224:13
[INFO] [stderr]     |
[INFO] [stderr] 224 |             try!(callback(PieceAccess::PreComputed(ShaHash::from_hash(piece).unwrap())));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:233:24
[INFO] [stderr]     |
[INFO] [stderr] 233 |     let info_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default()));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:242:21
[INFO] [stderr]     |
[INFO] [stderr] 242 |     let info_dict = try!(parse::parse_root_dict(info_bencode));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:243:21
[INFO] [stderr]     |
[INFO] [stderr] 243 |     let piece_len = try!(parse::parse_piece_length(info_dict));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:246:18
[INFO] [stderr]     |
[INFO] [stderr] 246 |     let pieces = try!(parse::parse_pieces(info_dict));
[INFO] [stderr]     |                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:247:25
[INFO] [stderr]     |
[INFO] [stderr] 247 |     let piece_buffers = try!(allocate_pieces(pieces));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:250:30
[INFO] [stderr]     |
[INFO] [stderr] 250 |         let file_directory = try!(parse::parse_name(info_dict));
[INFO] [stderr]     |                              ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:254:29
[INFO] [stderr]     |
[INFO] [stderr] 254 |         let files_bencode = try!(parse::parse_files_list(info_dict));
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:258:29
[INFO] [stderr]     |
[INFO] [stderr] 258 |             let file_dict = try!(parse::parse_file_dict(file_bencode));
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:259:24
[INFO] [stderr]     |
[INFO] [stderr] 259 |             let file = try!(File::as_multi_file(file_dict));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:273:20
[INFO] [stderr]     |
[INFO] [stderr] 273 |         let file = try!(File::as_single_file(info_dict));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:327:22
[INFO] [stderr]     |
[INFO] [stderr] 327 |         let length = try!(parse::parse_length(info_dict));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:329:20
[INFO] [stderr]     |
[INFO] [stderr] 329 |         let name = try!(parse::parse_name(info_dict));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:341:22
[INFO] [stderr]     |
[INFO] [stderr] 341 |         let length = try!(parse::parse_length(file_dict));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:344:33
[INFO] [stderr]     |
[INFO] [stderr] 344 |         let path_list_bencode = try!(parse::parse_path_list(file_dict));
[INFO] [stderr]     |                                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:348:24
[INFO] [stderr]     |
[INFO] [stderr] 348 |             let path = try!(parse::parse_path_str(path_bencode));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/error.rs:8:1
[INFO] [stderr]    |
[INFO] [stderr] 8  | / error_chain! {
[INFO] [stderr] 9  | |     types {
[INFO] [stderr] 10 | |         ParseError, ParseErrorKind, ParseResultEx, ParseResult;
[INFO] [stderr] 11 | |     }
[INFO] [stderr] ...  |
[INFO] [stderr] 27 | |     }
[INFO] [stderr] 28 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/accessor.rs:62:21
[INFO] [stderr]    |
[INFO] [stderr] 62 |     Compute(&'a mut Read),
[INFO] [stderr]    |                     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 62 |     Compute(&'a mut dyn Read),
[INFO] [stderr]    |                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/metainfo.rs:287:41
[INFO] [stderr]     |
[INFO] [stderr] 287 | fn is_multi_file_torrent<B>(info_dict: &BDictAccess<B::BKey, B>) -> bool
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 287 | fn is_multi_file_torrent<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> bool
[INFO] [stderr]     |                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:44:61
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub fn parse_root_dict<B>(root_bencode: &B) -> ParseResult<&BDictAccess<B::BKey, B::BType>>
[INFO] [stderr]    |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub fn parse_root_dict<B>(root_bencode: &B) -> ParseResult<&dyn BDictAccess<B::BKey, B::BType>>
[INFO] [stderr]    |                                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:50:49
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stderr]    |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:56:43
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub fn parse_creation_date<B>(root_dict: &BDictAccess<B::BKey, B>) -> Option<i64>
[INFO] [stderr]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub fn parse_creation_date<B>(root_dict: &dyn BDictAccess<B::BKey, B>) -> Option<i64>
[INFO] [stderr]    |                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:62:44
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub fn parse_comment<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stderr]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub fn parse_comment<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stderr]    |                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:68:47
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stderr]    |                                               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stderr]    |                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:74:45
[INFO] [stderr]    |
[INFO] [stderr] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stderr]    |                                             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stderr]    |                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:80:49
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&B>
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&B>
[INFO] [stderr]    |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:88:42
[INFO] [stderr]    |
[INFO] [stderr] 88 | pub fn parse_piece_length<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stderr]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 88 | pub fn parse_piece_length<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stderr]    |                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:94:43
[INFO] [stderr]    |
[INFO] [stderr] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&'a [u8]>
[INFO] [stderr]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&'a [u8]>
[INFO] [stderr]    |                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:100:37
[INFO] [stderr]     |
[INFO] [stderr] 100 | pub fn parse_private<B>(info_dict: &BDictAccess<B::BKey, B>) -> Option<bool>
[INFO] [stderr]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 100 | pub fn parse_private<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> Option<bool>
[INFO] [stderr]     |                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:106:41
[INFO] [stderr]     |
[INFO] [stderr] 106 | pub fn parse_name<'a, B>(info_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&'a str>
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 106 | pub fn parse_name<'a, B>(info_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&'a str>
[INFO] [stderr]     |                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:112:40
[INFO] [stderr]     |
[INFO] [stderr] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 112 | pub fn parse_files_list<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stderr]     |                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:112:81
[INFO] [stderr]     |
[INFO] [stderr] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stderr]     |                                                                                 ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&dyn BListAccess<B>>
[INFO] [stderr]     |                                                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:120:61
[INFO] [stderr]     |
[INFO] [stderr] 120 | pub fn parse_file_dict<B>(file_bencode: &B) -> ParseResult<&BDictAccess<B::BKey, B::BType>>
[INFO] [stderr]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 120 | pub fn parse_file_dict<B>(file_bencode: &B) -> ParseResult<&dyn BDictAccess<B::BKey, B::BType>>
[INFO] [stderr]     |                                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:126:44
[INFO] [stderr]     |
[INFO] [stderr] 126 | pub fn parse_length<B>(info_or_file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stderr]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 126 | pub fn parse_length<B>(info_or_file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stderr]     |                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:132:51
[INFO] [stderr]     |
[INFO] [stderr] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a [u8]>
[INFO] [stderr]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a [u8]>
[INFO] [stderr]     |                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:138:39
[INFO] [stderr]     |
[INFO] [stderr] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stderr]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 138 | pub fn parse_path_list<B>(file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stderr]     |                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:138:80
[INFO] [stderr]     |
[INFO] [stderr] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stderr]     |                                                                                ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&dyn BListAccess<B>>
[INFO] [stderr]     |                                                                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/metainfo.rs:325:38
[INFO] [stderr]     |
[INFO] [stderr] 325 |     fn as_single_file<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 325 |     fn as_single_file<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stderr]     |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/metainfo.rs:339:37
[INFO] [stderr]     |
[INFO] [stderr] 339 |     fn as_multi_file<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stderr]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 339 |     fn as_multi_file<B>(file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stderr]     |                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stderr]   --> src/error.rs:8:1
[INFO] [stderr]    |
[INFO] [stderr] 8  | / error_chain! {
[INFO] [stderr] 9  | |     types {
[INFO] [stderr] 10 | |         ParseError, ParseErrorKind, ParseResultEx, ParseResult;
[INFO] [stderr] 11 | |     }
[INFO] [stderr] ...  |
[INFO] [stderr] 27 | |     }
[INFO] [stderr] 28 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/builder/worker.rs:273:17
[INFO] [stderr]     |
[INFO] [stderr] 273 |                 try!(callback(PieceAccess::Compute(&mut next_region)));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stderr]    --> src/builder/worker.rs:352:46
[INFO] [stderr]     |
[INFO] [stderr] 352 |         for &region_length in region_lengths.into_iter() {
[INFO] [stderr]     |                                              ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 352 |         for &region_length in region_lengths.iter() {
[INFO] [stderr]     |                                              ~~~~
[INFO] [stderr] help: or remove `.into_iter()` to iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 352 -         for &region_length in region_lengths.into_iter() {
[INFO] [stderr] 352 +         for &region_length in region_lengths {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stderr]    --> src/builder/worker.rs:366:46
[INFO] [stderr]     |
[INFO] [stderr] 366 |         for &region_length in region_lengths.into_iter() {
[INFO] [stderr]     |                                              ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 366 |         for &region_length in region_lengths.iter() {
[INFO] [stderr]     |                                              ~~~~
[INFO] [stderr] help: or remove `.into_iter()` to iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 366 -         for &region_length in region_lengths.into_iter() {
[INFO] [stderr] 366 +         for &region_length in region_lengths {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stderr]    --> src/builder/worker.rs:381:46
[INFO] [stderr]     |
[INFO] [stderr] 381 |         for &region_length in region_lengths.into_iter() {
[INFO] [stderr]     |                                              ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 381 |         for &region_length in region_lengths.iter() {
[INFO] [stderr]     |                                              ~~~~
[INFO] [stderr] help: or remove `.into_iter()` to iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 381 -         for &region_length in region_lengths.into_iter() {
[INFO] [stderr] 381 +         for &region_length in region_lengths {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stderr]    --> src/builder/worker.rs:396:46
[INFO] [stderr]     |
[INFO] [stderr] 396 |         for &region_length in region_lengths.into_iter() {
[INFO] [stderr]     |                                              ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 396 |         for &region_length in region_lengths.iter() {
[INFO] [stderr]     |                                              ~~~~
[INFO] [stderr] help: or remove `.into_iter()` to iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 396 -         for &region_length in region_lengths.into_iter() {
[INFO] [stderr] 396 +         for &region_length in region_lengths {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `bip_metainfo` (lib) generated 57 warnings (run `cargo fix --lib -p bip_metainfo` to apply 22 suggestions)
[INFO] [stderr] warning: `bip_metainfo` (lib test) generated 62 warnings (57 duplicates) (run `cargo fix --lib -p bip_metainfo --tests` to apply 4 suggestions)
[INFO] [stderr] warning: use of deprecated method `chrono::TimeZone::timestamp`: use `timestamp_opt()` instead
[INFO] [stderr]   --> examples/create_torrent.rs:75:13
[INFO] [stderr]    |
[INFO] [stderr] 75 |         Utc.timestamp(c, 0)
[INFO] [stderr]    |             ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `bip_metainfo` (example "create_torrent") generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint v0.1.44, num-complex v0.1.43, num-rational v0.1.42
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/bip_metainfo-57eee947ff2ee67a)
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test builder::worker::tests::positive_piece_length_undivisible_region_multiple_threads ... ok
[INFO] [stdout] test builder::worker::tests::positive_piece_length_divisible_regions_multiple_threads ... ok
[INFO] [stdout] test builder::worker::tests::positive_piece_length_divisible_region_multiple_threads ... ok
[INFO] [stdout] test builder::worker::tests::positive_piece_length_divisible_region_single_thread ... ok
[INFO] [stdout] test builder::worker::tests::positive_piece_length_undivisible_regions_multiple_threads ... ok
[INFO] [stdout] test builder::worker::tests::positive_piece_length_undivisible_regions_single_thread ... ok
[INFO] [stdout] test builder::worker::tests::positive_piece_length_divisible_regions_single_thread ... ok
[INFO] [stdout] test builder::worker::tests::positive_piece_length_undivisible_region_single_thread ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_with_comment ... ok
[INFO] [stdout] test metainfo::tests::negative_parse_from_empty_bytes - should panic ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_from_single_file ... ok
[INFO] [stdout] test metainfo::tests::negative_parse_with_no_pieces - should panic ... ok
[INFO] [stdout] test metainfo::tests::negative_parse_from_single_file_with_no_file_length - should panic ... ok
[INFO] [stdout] test metainfo::tests::negative_parse_with_no_piece_length - should panic ... ok
[INFO] [stdout] test metainfo::tests::negative_parse_from_single_file_with_no_file_name - should panic ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_with_creation_date ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_from_empty_pieces ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_with_private_non_zero ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_with_created_by ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_with_encoding ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_with_no_main_tracker ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_with_private_zero ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_from_multi_files ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_with_private_one ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_from_multi_file ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.71s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests bip_metainfo
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test src/lib.rs - (line 7) ... ok
[INFO] [stdout] test src/lib.rs - (line 30) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.86s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "b4c9cc0a462e496c785030d21e00edb9d1a380319654b654bc442542ef622e96", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b4c9cc0a462e496c785030d21e00edb9d1a380319654b654bc442542ef622e96", kill_on_drop: false }`
[INFO] [stdout] b4c9cc0a462e496c785030d21e00edb9d1a380319654b654bc442542ef622e96
[INFO] testing bip_metainfo-0.12.0 against try#b642703cf9526da1e72c0b6755753b939a9c6b6d for pr-125151
[INFO] extracting crate bip_metainfo 0.12.0 into /workspace/builds/worker-0-tc2/source
[INFO] validating manifest of crates.io crate bip_metainfo 0.12.0 on toolchain b642703cf9526da1e72c0b6755753b939a9c6b6d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate bip_metainfo 0.12.0
[INFO] finished tweaking crates.io crate bip_metainfo 0.12.0
[INFO] tweaked toml for crates.io crate bip_metainfo 0.12.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 75 packages to latest compatible versions
[INFO] [stderr]       Adding addr2line v0.21.0 (latest: v0.22.0)
[INFO] [stderr]       Adding chrono v0.2.25 (latest: v0.4.38)
[INFO] [stderr]       Adding crossbeam v0.3.2 (latest: v0.8.4)
[INFO] [stderr]       Adding error-chain v0.11.0 (latest: v0.12.4)
[INFO] [stderr]       Adding gimli v0.28.1 (latest: v0.29.0)
[INFO] [stderr]       Adding num v0.1.42 (latest: v0.4.3)
[INFO] [stderr]       Adding num-bigint v0.1.44 (latest: v0.4.5)
[INFO] [stderr]       Adding num-complex v0.1.43 (latest: v0.4.6)
[INFO] [stderr]       Adding num-rational v0.1.42 (latest: v0.4.2)
[INFO] [stderr]       Adding object v0.32.2 (latest: v0.35.0)
[INFO] [stderr]       Adding rand v0.3.23 (latest: v0.8.5)
[INFO] [stderr]       Adding rand v0.4.6 (latest: v0.8.5)
[INFO] [stderr]       Adding rand_core v0.3.1 (latest: v0.6.4)
[INFO] [stderr]       Adding rand_core v0.4.2 (latest: v0.6.4)
[INFO] [stderr]       Adding rdrand v0.4.0 (latest: v0.8.3)
[INFO] [stderr]       Adding time v0.1.45 (latest: v0.3.36)
[INFO] [stderr]       Adding wasi v0.10.0+wasi-snapshot-preview1 (latest: v0.13.1+wasi-0.2.0)
[INFO] [stderr]       Adding windows-core v0.52.0 (latest: v0.56.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `panic` setting is ignored for `bench` profile
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9541c1714c3e7387f2db3f20b006dd92277bd134e8f13ed057b3467ff66ec954
[INFO] running `Command { std: "docker" "start" "-a" "9541c1714c3e7387f2db3f20b006dd92277bd134e8f13ed057b3467ff66ec954", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9541c1714c3e7387f2db3f20b006dd92277bd134e8f13ed057b3467ff66ec954", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9541c1714c3e7387f2db3f20b006dd92277bd134e8f13ed057b3467ff66ec954", kill_on_drop: false }`
[INFO] [stdout] 9541c1714c3e7387f2db3f20b006dd92277bd134e8f13ed057b3467ff66ec954
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 13309ac539e9acbe08cae06beded217261f73f200745cd5351e2c6153e01232a
[INFO] running `Command { std: "docker" "start" "-a" "13309ac539e9acbe08cae06beded217261f73f200745cd5351e2c6153e01232a", kill_on_drop: false }`
[INFO] [stderr] warning: `panic` setting is ignored for `bench` profile
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]    Compiling autocfg v1.3.0
[INFO] [stderr]    Compiling rustc-serialize v0.3.25
[INFO] [stderr]    Compiling cc v1.0.98
[INFO] [stderr]    Compiling adler v1.0.2
[INFO] [stderr]    Compiling gimli v0.28.1
[INFO] [stderr]    Compiling memchr v2.7.2
[INFO] [stderr]    Compiling gcc v0.3.55
[INFO] [stderr]    Compiling rustc-demangle v0.1.24
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling crossbeam v0.3.2
[INFO] [stderr]    Compiling miniz_oxide v0.7.3
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling rust-crypto v0.2.36
[INFO] [stderr]    Compiling object v0.32.2
[INFO] [stderr]    Compiling backtrace v0.3.71
[INFO] [stderr]    Compiling rand v0.4.6
[INFO] [stderr]    Compiling time v0.1.45
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling rand v0.3.23
[INFO] [stderr]    Compiling num-complex v0.1.43
[INFO] [stderr]    Compiling num-bigint v0.1.44
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling addr2line v0.21.0
[INFO] [stderr]    Compiling num-rational v0.1.42
[INFO] [stderr]    Compiling num v0.1.42
[INFO] [stderr]    Compiling chrono v0.2.25
[INFO] [stderr]    Compiling bip_util v0.5.0
[INFO] [stderr]    Compiling error-chain v0.11.0
[INFO] [stderr]    Compiling bip_bencode v0.4.4
[INFO] [stderr]    Compiling bip_metainfo v0.12.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/accessor.rs:80:29
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let absolute_path = try!(path.as_ref().canonicalize());
[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/accessor.rs:129:25
[INFO] [stdout]     |
[INFO] [stdout] 129 |             let entry = try!(res_entry);
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:130:34
[INFO] [stdout]     |
[INFO] [stdout] 130 |             let entry_metadata = try!(entry.metadata());
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |             try!(callback(PieceAccess::Compute(&mut file)));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:150:25
[INFO] [stdout]     |
[INFO] [stdout] 150 |             let entry = try!(res_entry);
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:151:28
[INFO] [stdout]     |
[INFO] [stdout] 151 |             let mut file = try!(File::open(entry.path()));
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/builder/buffer.rs:66:30
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let new_bytes_read = try!(callback(&mut self.buffer[self.bytes_read..]));
[INFO] [stdout]    |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/builder/worker.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     try!(accessor.access_pieces(|piece_access| {
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/worker.rs:103:25
[INFO] [stdout]     |
[INFO] [stdout] 103 |                         try!(curr_piece_buffer.write_bytes(|buffer| piece_region.read(buffer))) == 0;
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:136:24
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let accessor = try!(accessor.into_accessor());
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:185:24
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let accessor = try!(accessor.into_accessor());
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 207 |         try!(accessor.access_metadata(|len, path| {
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:219:27
[INFO] [stdout]     |
[INFO] [stdout] 219 |         let pieces_list = try!(worker::start_hasher_workers(&accessor,
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/metainfo.rs:91:24
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let root_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default()));
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/metainfo.rs:92:21
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let root_dict = try!(parse::parse_root_dict(&root_bencode));
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:100:24
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let info_bencode = try!(parse::parse_info_bencode(root_dict));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:101:16
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let info = try!(parse_info_dictionary(info_bencode));
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:224:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |             try!(callback(PieceAccess::PreComputed(ShaHash::from_hash(piece).unwrap())));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:233:24
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let info_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default()));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:242:21
[INFO] [stdout]     |
[INFO] [stdout] 242 |     let info_dict = try!(parse::parse_root_dict(info_bencode));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:243:21
[INFO] [stdout]     |
[INFO] [stdout] 243 |     let piece_len = try!(parse::parse_piece_length(info_dict));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:246:18
[INFO] [stdout]     |
[INFO] [stdout] 246 |     let pieces = try!(parse::parse_pieces(info_dict));
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:247:25
[INFO] [stdout]     |
[INFO] [stdout] 247 |     let piece_buffers = try!(allocate_pieces(pieces));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:250:30
[INFO] [stdout]     |
[INFO] [stdout] 250 |         let file_directory = try!(parse::parse_name(info_dict));
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:254:29
[INFO] [stdout]     |
[INFO] [stdout] 254 |         let files_bencode = try!(parse::parse_files_list(info_dict));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:258:29
[INFO] [stdout]     |
[INFO] [stdout] 258 |             let file_dict = try!(parse::parse_file_dict(file_bencode));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:259:24
[INFO] [stdout]     |
[INFO] [stdout] 259 |             let file = try!(File::as_multi_file(file_dict));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:273:20
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let file = try!(File::as_single_file(info_dict));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:327:22
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let length = try!(parse::parse_length(info_dict));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:329:20
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let name = try!(parse::parse_name(info_dict));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:341:22
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let length = try!(parse::parse_length(file_dict));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:344:33
[INFO] [stdout]     |
[INFO] [stdout] 344 |         let path_list_bencode = try!(parse::parse_path_list(file_dict));
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:348:24
[INFO] [stdout]     |
[INFO] [stdout] 348 |             let path = try!(parse::parse_path_str(path_bencode));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | / error_chain! {
[INFO] [stdout] 9  | |     types {
[INFO] [stdout] 10 | |         ParseError, ParseErrorKind, ParseResultEx, ParseResult;
[INFO] [stdout] 11 | |     }
[INFO] [stdout] ...  |
[INFO] [stdout] 27 | |     }
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/accessor.rs:62:21
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Compute(&'a mut Read),
[INFO] [stdout]    |                     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Compute(&'a mut dyn Read),
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:287:41
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn is_multi_file_torrent<B>(info_dict: &BDictAccess<B::BKey, B>) -> bool
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn is_multi_file_torrent<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> bool
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:44:61
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn parse_root_dict<B>(root_bencode: &B) -> ParseResult<&BDictAccess<B::BKey, B::BType>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn parse_root_dict<B>(root_bencode: &B) -> ParseResult<&dyn BDictAccess<B::BKey, B::BType>>
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:50:49
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:56:43
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn parse_creation_date<B>(root_dict: &BDictAccess<B::BKey, B>) -> 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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn parse_creation_date<B>(root_dict: &dyn BDictAccess<B::BKey, B>) -> Option<i64>
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:62:44
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn parse_comment<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn parse_comment<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:68:47
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:74:45
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:80:49
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&B>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&B>
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:88:42
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn parse_piece_length<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn parse_piece_length<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:94:43
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&'a [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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&'a [u8]>
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:100:37
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn parse_private<B>(info_dict: &BDictAccess<B::BKey, B>) -> Option<bool>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn parse_private<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> Option<bool>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:106:41
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn parse_name<'a, B>(info_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn parse_name<'a, B>(info_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&'a str>
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:112:40
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:112:81
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&dyn BListAccess<B>>
[INFO] [stdout]     |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:120:61
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn parse_file_dict<B>(file_bencode: &B) -> ParseResult<&BDictAccess<B::BKey, B::BType>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn parse_file_dict<B>(file_bencode: &B) -> ParseResult<&dyn BDictAccess<B::BKey, B::BType>>
[INFO] [stdout]     |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:126:44
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn parse_length<B>(info_or_file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn parse_length<B>(info_or_file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:132:51
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a [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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a [u8]>
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:138:39
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:138:80
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&dyn BListAccess<B>>
[INFO] [stdout]     |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:325:38
[INFO] [stdout]     |
[INFO] [stdout] 325 |     fn as_single_file<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<File>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 325 |     fn as_single_file<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:339:37
[INFO] [stdout]     |
[INFO] [stdout] 339 |     fn as_multi_file<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<File>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 339 |     fn as_multi_file<B>(file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/error.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | / error_chain! {
[INFO] [stdout] 9  | |     types {
[INFO] [stdout] 10 | |         ParseError, ParseErrorKind, ParseResultEx, ParseResult;
[INFO] [stdout] 11 | |     }
[INFO] [stdout] ...  |
[INFO] [stdout] 27 | |     }
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 57 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.60s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint v0.1.44, num-complex v0.1.43, num-rational v0.1.42
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "13309ac539e9acbe08cae06beded217261f73f200745cd5351e2c6153e01232a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "13309ac539e9acbe08cae06beded217261f73f200745cd5351e2c6153e01232a", kill_on_drop: false }`
[INFO] [stdout] 13309ac539e9acbe08cae06beded217261f73f200745cd5351e2c6153e01232a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 861a0d04e456d8c498900a6bf475389594d99dcabae200a41f4422a0696ba104
[INFO] running `Command { std: "docker" "start" "-a" "861a0d04e456d8c498900a6bf475389594d99dcabae200a41f4422a0696ba104", kill_on_drop: false }`
[INFO] [stderr] warning: `panic` setting is ignored for `bench` profile
[INFO] [stderr]    Compiling crossbeam-utils v0.8.20
[INFO] [stderr]    Compiling iana-time-zone v0.1.60
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/accessor.rs:80:29
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let absolute_path = try!(path.as_ref().canonicalize());
[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/accessor.rs:129:25
[INFO] [stdout]     |
[INFO] [stdout] 129 |             let entry = try!(res_entry);
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:130:34
[INFO] [stdout]     |
[INFO] [stdout] 130 |             let entry_metadata = try!(entry.metadata());
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |             try!(callback(PieceAccess::Compute(&mut file)));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:150:25
[INFO] [stdout]     |
[INFO] [stdout] 150 |             let entry = try!(res_entry);
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:151:28
[INFO] [stdout]     |
[INFO] [stdout] 151 |             let mut file = try!(File::open(entry.path()));
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/builder/buffer.rs:66:30
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let new_bytes_read = try!(callback(&mut self.buffer[self.bytes_read..]));
[INFO] [stdout]    |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/builder/worker.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     try!(accessor.access_pieces(|piece_access| {
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/worker.rs:103:25
[INFO] [stdout]     |
[INFO] [stdout] 103 |                         try!(curr_piece_buffer.write_bytes(|buffer| piece_region.read(buffer))) == 0;
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:136:24
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let accessor = try!(accessor.into_accessor());
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:185:24
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let accessor = try!(accessor.into_accessor());
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 207 |         try!(accessor.access_metadata(|len, path| {
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:219:27
[INFO] [stdout]     |
[INFO] [stdout] 219 |         let pieces_list = try!(worker::start_hasher_workers(&accessor,
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/metainfo.rs:91:24
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let root_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default()));
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/metainfo.rs:92:21
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let root_dict = try!(parse::parse_root_dict(&root_bencode));
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:100:24
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let info_bencode = try!(parse::parse_info_bencode(root_dict));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:101:16
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let info = try!(parse_info_dictionary(info_bencode));
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:224:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |             try!(callback(PieceAccess::PreComputed(ShaHash::from_hash(piece).unwrap())));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:233:24
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let info_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default()));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:242:21
[INFO] [stdout]     |
[INFO] [stdout] 242 |     let info_dict = try!(parse::parse_root_dict(info_bencode));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:243:21
[INFO] [stdout]     |
[INFO] [stdout] 243 |     let piece_len = try!(parse::parse_piece_length(info_dict));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:246:18
[INFO] [stdout]     |
[INFO] [stdout] 246 |     let pieces = try!(parse::parse_pieces(info_dict));
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:247:25
[INFO] [stdout]     |
[INFO] [stdout] 247 |     let piece_buffers = try!(allocate_pieces(pieces));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:250:30
[INFO] [stdout]     |
[INFO] [stdout] 250 |         let file_directory = try!(parse::parse_name(info_dict));
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:254:29
[INFO] [stdout]     |
[INFO] [stdout] 254 |         let files_bencode = try!(parse::parse_files_list(info_dict));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:258:29
[INFO] [stdout]     |
[INFO] [stdout] 258 |             let file_dict = try!(parse::parse_file_dict(file_bencode));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:259:24
[INFO] [stdout]     |
[INFO] [stdout] 259 |             let file = try!(File::as_multi_file(file_dict));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:273:20
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let file = try!(File::as_single_file(info_dict));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:327:22
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let length = try!(parse::parse_length(info_dict));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:329:20
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let name = try!(parse::parse_name(info_dict));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:341:22
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let length = try!(parse::parse_length(file_dict));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:344:33
[INFO] [stdout]     |
[INFO] [stdout] 344 |         let path_list_bencode = try!(parse::parse_path_list(file_dict));
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:348:24
[INFO] [stdout]     |
[INFO] [stdout] 348 |             let path = try!(parse::parse_path_str(path_bencode));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | / error_chain! {
[INFO] [stdout] 9  | |     types {
[INFO] [stdout] 10 | |         ParseError, ParseErrorKind, ParseResultEx, ParseResult;
[INFO] [stdout] 11 | |     }
[INFO] [stdout] ...  |
[INFO] [stdout] 27 | |     }
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/accessor.rs:62:21
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Compute(&'a mut Read),
[INFO] [stdout]    |                     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Compute(&'a mut dyn Read),
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:287:41
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn is_multi_file_torrent<B>(info_dict: &BDictAccess<B::BKey, B>) -> bool
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn is_multi_file_torrent<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> bool
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:44:61
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn parse_root_dict<B>(root_bencode: &B) -> ParseResult<&BDictAccess<B::BKey, B::BType>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn parse_root_dict<B>(root_bencode: &B) -> ParseResult<&dyn BDictAccess<B::BKey, B::BType>>
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:50:49
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:56:43
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn parse_creation_date<B>(root_dict: &BDictAccess<B::BKey, B>) -> 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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn parse_creation_date<B>(root_dict: &dyn BDictAccess<B::BKey, B>) -> Option<i64>
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:62:44
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn parse_comment<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn parse_comment<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:68:47
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:74:45
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:80:49
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&B>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&B>
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:88:42
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn parse_piece_length<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn parse_piece_length<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:94:43
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&'a [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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&'a [u8]>
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:100:37
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn parse_private<B>(info_dict: &BDictAccess<B::BKey, B>) -> Option<bool>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn parse_private<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> Option<bool>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:106:41
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn parse_name<'a, B>(info_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn parse_name<'a, B>(info_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&'a str>
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:112:40
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:112:81
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&dyn BListAccess<B>>
[INFO] [stdout]     |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:120:61
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn parse_file_dict<B>(file_bencode: &B) -> ParseResult<&BDictAccess<B::BKey, B::BType>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn parse_file_dict<B>(file_bencode: &B) -> ParseResult<&dyn BDictAccess<B::BKey, B::BType>>
[INFO] [stdout]     |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:126:44
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn parse_length<B>(info_or_file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn parse_length<B>(info_or_file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:132:51
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a [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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a [u8]>
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:138:39
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:138:80
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&dyn BListAccess<B>>
[INFO] [stdout]     |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:325:38
[INFO] [stdout]     |
[INFO] [stdout] 325 |     fn as_single_file<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<File>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 325 |     fn as_single_file<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:339:37
[INFO] [stdout]     |
[INFO] [stdout] 339 |     fn as_multi_file<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<File>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 339 |     fn as_multi_file<B>(file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/error.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | / error_chain! {
[INFO] [stdout] 9  | |     types {
[INFO] [stdout] 10 | |         ParseError, ParseErrorKind, ParseResultEx, ParseResult;
[INFO] [stdout] 11 | |     }
[INFO] [stdout] ...  |
[INFO] [stdout] 27 | |     }
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 57 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling chrono v0.4.38
[INFO] [stderr]    Compiling crossbeam-channel v0.5.13
[INFO] [stderr]    Compiling pbr v1.1.1
[INFO] [stderr]    Compiling bip_metainfo v0.12.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp`: use `timestamp_opt()` instead
[INFO] [stdout]   --> examples/create_torrent.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         Utc.timestamp(c, 0)
[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/accessor.rs:80:29
[INFO] [stdout]    |
[INFO] [stdout] 80 |         let absolute_path = try!(path.as_ref().canonicalize());
[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/accessor.rs:129:25
[INFO] [stdout]     |
[INFO] [stdout] 129 |             let entry = try!(res_entry);
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:130:34
[INFO] [stdout]     |
[INFO] [stdout] 130 |             let entry_metadata = try!(entry.metadata());
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |             try!(callback(PieceAccess::Compute(&mut file)));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:150:25
[INFO] [stdout]     |
[INFO] [stdout] 150 |             let entry = try!(res_entry);
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/accessor.rs:151:28
[INFO] [stdout]     |
[INFO] [stdout] 151 |             let mut file = try!(File::open(entry.path()));
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/builder/buffer.rs:66:30
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let new_bytes_read = try!(callback(&mut self.buffer[self.bytes_read..]));
[INFO] [stdout]    |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/builder/worker.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     try!(accessor.access_pieces(|piece_access| {
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/worker.rs:103:25
[INFO] [stdout]     |
[INFO] [stdout] 103 |                         try!(curr_piece_buffer.write_bytes(|buffer| piece_region.read(buffer))) == 0;
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/worker.rs:273:17
[INFO] [stdout]     |
[INFO] [stdout] 273 |                 try!(callback(PieceAccess::Compute(&mut next_region)));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:136:24
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let accessor = try!(accessor.into_accessor());
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:185:24
[INFO] [stdout]     |
[INFO] [stdout] 185 |         let accessor = try!(accessor.into_accessor());
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 207 |         try!(accessor.access_metadata(|len, path| {
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/builder/mod.rs:219:27
[INFO] [stdout]     |
[INFO] [stdout] 219 |         let pieces_list = try!(worker::start_hasher_workers(&accessor,
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/metainfo.rs:91:24
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let root_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default()));
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/metainfo.rs:92:21
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let root_dict = try!(parse::parse_root_dict(&root_bencode));
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:100:24
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let info_bencode = try!(parse::parse_info_bencode(root_dict));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:101:16
[INFO] [stdout]     |
[INFO] [stdout] 101 |     let info = try!(parse_info_dictionary(info_bencode));
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:224:13
[INFO] [stdout]     |
[INFO] [stdout] 224 |             try!(callback(PieceAccess::PreComputed(ShaHash::from_hash(piece).unwrap())));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:233:24
[INFO] [stdout]     |
[INFO] [stdout] 233 |     let info_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default()));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:242:21
[INFO] [stdout]     |
[INFO] [stdout] 242 |     let info_dict = try!(parse::parse_root_dict(info_bencode));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:243:21
[INFO] [stdout]     |
[INFO] [stdout] 243 |     let piece_len = try!(parse::parse_piece_length(info_dict));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:246:18
[INFO] [stdout]     |
[INFO] [stdout] 246 |     let pieces = try!(parse::parse_pieces(info_dict));
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:247:25
[INFO] [stdout]     |
[INFO] [stdout] 247 |     let piece_buffers = try!(allocate_pieces(pieces));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:250:30
[INFO] [stdout]     |
[INFO] [stdout] 250 |         let file_directory = try!(parse::parse_name(info_dict));
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:254:29
[INFO] [stdout]     |
[INFO] [stdout] 254 |         let files_bencode = try!(parse::parse_files_list(info_dict));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:258:29
[INFO] [stdout]     |
[INFO] [stdout] 258 |             let file_dict = try!(parse::parse_file_dict(file_bencode));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:259:24
[INFO] [stdout]     |
[INFO] [stdout] 259 |             let file = try!(File::as_multi_file(file_dict));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:273:20
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let file = try!(File::as_single_file(info_dict));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:327:22
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let length = try!(parse::parse_length(info_dict));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:329:20
[INFO] [stdout]     |
[INFO] [stdout] 329 |         let name = try!(parse::parse_name(info_dict));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:341:22
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let length = try!(parse::parse_length(file_dict));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:344:33
[INFO] [stdout]     |
[INFO] [stdout] 344 |         let path_list_bencode = try!(parse::parse_path_list(file_dict));
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/metainfo.rs:348:24
[INFO] [stdout]     |
[INFO] [stdout] 348 |             let path = try!(parse::parse_path_str(path_bencode));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/error.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | / error_chain! {
[INFO] [stdout] 9  | |     types {
[INFO] [stdout] 10 | |         ParseError, ParseErrorKind, ParseResultEx, ParseResult;
[INFO] [stdout] 11 | |     }
[INFO] [stdout] ...  |
[INFO] [stdout] 27 | |     }
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/accessor.rs:62:21
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Compute(&'a mut Read),
[INFO] [stdout]    |                     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Compute(&'a mut dyn Read),
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:287:41
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn is_multi_file_torrent<B>(info_dict: &BDictAccess<B::BKey, B>) -> bool
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 287 | fn is_multi_file_torrent<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> bool
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:44:61
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn parse_root_dict<B>(root_bencode: &B) -> ParseResult<&BDictAccess<B::BKey, B::BType>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn parse_root_dict<B>(root_bencode: &B) -> ParseResult<&dyn BDictAccess<B::BKey, B::BType>>
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:50:49
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:56:43
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn parse_creation_date<B>(root_dict: &BDictAccess<B::BKey, B>) -> 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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn parse_creation_date<B>(root_dict: &dyn BDictAccess<B::BKey, B>) -> Option<i64>
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:62:44
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn parse_comment<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn parse_comment<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:68:47
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:74:45
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:80:49
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&B>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&B>
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:88:42
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn parse_piece_length<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn parse_piece_length<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parse.rs:94:43
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&'a [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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&'a [u8]>
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:100:37
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn parse_private<B>(info_dict: &BDictAccess<B::BKey, B>) -> Option<bool>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn parse_private<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> Option<bool>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:106:41
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn parse_name<'a, B>(info_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&'a str>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn parse_name<'a, B>(info_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&'a str>
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:112:40
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:112:81
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&dyn BListAccess<B>>
[INFO] [stdout]     |                                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:120:61
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn parse_file_dict<B>(file_bencode: &B) -> ParseResult<&BDictAccess<B::BKey, B::BType>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn parse_file_dict<B>(file_bencode: &B) -> ParseResult<&dyn BDictAccess<B::BKey, B::BType>>
[INFO] [stdout]     |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:126:44
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn parse_length<B>(info_or_file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn parse_length<B>(info_or_file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:132:51
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a [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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a [u8]>
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:138:39
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parse.rs:138:80
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&dyn BListAccess<B>>
[INFO] [stdout]     |                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:325:38
[INFO] [stdout]     |
[INFO] [stdout] 325 |     fn as_single_file<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<File>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 325 |     fn as_single_file<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/metainfo.rs:339:37
[INFO] [stdout]     |
[INFO] [stdout] 339 |     fn as_multi_file<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<File>
[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/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 339 |     fn as_multi_file<B>(file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/error.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | / error_chain! {
[INFO] [stdout] 9  | |     types {
[INFO] [stdout] 10 | |         ParseError, ParseErrorKind, ParseResultEx, ParseResult;
[INFO] [stdout] 11 | |     }
[INFO] [stdout] ...  |
[INFO] [stdout] 27 | |     }
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> src/builder/worker.rs:352:46
[INFO] [stdout]     |
[INFO] [stdout] 352 |         for &region_length in region_lengths.into_iter() {
[INFO] [stdout]     |                                              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 352 |         for &region_length in region_lengths.iter() {
[INFO] [stdout]     |                                              ~~~~
[INFO] [stdout] help: or remove `.into_iter()` to iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 352 -         for &region_length in region_lengths.into_iter() {
[INFO] [stdout] 352 +         for &region_length in region_lengths {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> src/builder/worker.rs:366:46
[INFO] [stdout]     |
[INFO] [stdout] 366 |         for &region_length in region_lengths.into_iter() {
[INFO] [stdout]     |                                              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 366 |         for &region_length in region_lengths.iter() {
[INFO] [stdout]     |                                              ~~~~
[INFO] [stdout] help: or remove `.into_iter()` to iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 366 -         for &region_length in region_lengths.into_iter() {
[INFO] [stdout] 366 +         for &region_length in region_lengths {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> src/builder/worker.rs:381:46
[INFO] [stdout]     |
[INFO] [stdout] 381 |         for &region_length in region_lengths.into_iter() {
[INFO] [stdout]     |                                              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 381 |         for &region_length in region_lengths.iter() {
[INFO] [stdout]     |                                              ~~~~
[INFO] [stdout] help: or remove `.into_iter()` to iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 381 -         for &region_length in region_lengths.into_iter() {
[INFO] [stdout] 381 +         for &region_length in region_lengths {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stdout]    --> src/builder/worker.rs:396:46
[INFO] [stdout]     |
[INFO] [stdout] 396 |         for &region_length in region_lengths.into_iter() {
[INFO] [stdout]     |                                              ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 396 |         for &region_length in region_lengths.iter() {
[INFO] [stdout]     |                                              ~~~~
[INFO] [stdout] help: or remove `.into_iter()` to iterate by value
[INFO] [stdout]     |
[INFO] [stdout] 396 -         for &region_length in region_lengths.into_iter() {
[INFO] [stdout] 396 +         for &region_length in region_lengths {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 62 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.63s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint v0.1.44, num-complex v0.1.43, num-rational v0.1.42
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "861a0d04e456d8c498900a6bf475389594d99dcabae200a41f4422a0696ba104", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "861a0d04e456d8c498900a6bf475389594d99dcabae200a41f4422a0696ba104", kill_on_drop: false }`
[INFO] [stdout] 861a0d04e456d8c498900a6bf475389594d99dcabae200a41f4422a0696ba104
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 4c663bdec6448b5e28b16314c1b4f1561df8249184f74953ae4200947c8a867f
[INFO] running `Command { std: "docker" "start" "-a" "4c663bdec6448b5e28b16314c1b4f1561df8249184f74953ae4200947c8a867f", kill_on_drop: false }`
[INFO] [stderr] warning: `panic` setting is ignored for `bench` profile
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/accessor.rs:80:29
[INFO] [stderr]    |
[INFO] [stderr] 80 |         let absolute_path = try!(path.as_ref().canonicalize());
[INFO] [stderr]    |                             ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/accessor.rs:129:25
[INFO] [stderr]     |
[INFO] [stderr] 129 |             let entry = try!(res_entry);
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/accessor.rs:130:34
[INFO] [stderr]     |
[INFO] [stderr] 130 |             let entry_metadata = try!(entry.metadata());
[INFO] [stderr]     |                                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/accessor.rs:153:13
[INFO] [stderr]     |
[INFO] [stderr] 153 |             try!(callback(PieceAccess::Compute(&mut file)));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/accessor.rs:150:25
[INFO] [stderr]     |
[INFO] [stderr] 150 |             let entry = try!(res_entry);
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/accessor.rs:151:28
[INFO] [stderr]     |
[INFO] [stderr] 151 |             let mut file = try!(File::open(entry.path()));
[INFO] [stderr]     |                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/builder/buffer.rs:66:30
[INFO] [stderr]    |
[INFO] [stderr] 66 |         let new_bytes_read = try!(callback(&mut self.buffer[self.bytes_read..]));
[INFO] [stderr]    |                              ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/builder/worker.rs:91:5
[INFO] [stderr]    |
[INFO] [stderr] 91 |     try!(accessor.access_pieces(|piece_access| {
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/builder/worker.rs:103:25
[INFO] [stderr]     |
[INFO] [stderr] 103 |                         try!(curr_piece_buffer.write_bytes(|buffer| piece_region.read(buffer))) == 0;
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/builder/mod.rs:136:24
[INFO] [stderr]     |
[INFO] [stderr] 136 |         let accessor = try!(accessor.into_accessor());
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/builder/mod.rs:185:24
[INFO] [stderr]     |
[INFO] [stderr] 185 |         let accessor = try!(accessor.into_accessor());
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/builder/mod.rs:207:9
[INFO] [stderr]     |
[INFO] [stderr] 207 |         try!(accessor.access_metadata(|len, path| {
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/builder/mod.rs:219:27
[INFO] [stderr]     |
[INFO] [stderr] 219 |         let pieces_list = try!(worker::start_hasher_workers(&accessor,
[INFO] [stderr]     |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/metainfo.rs:91:24
[INFO] [stderr]    |
[INFO] [stderr] 91 |     let root_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default()));
[INFO] [stderr]    |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/metainfo.rs:92:21
[INFO] [stderr]    |
[INFO] [stderr] 92 |     let root_dict = try!(parse::parse_root_dict(&root_bencode));
[INFO] [stderr]    |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:100:24
[INFO] [stderr]     |
[INFO] [stderr] 100 |     let info_bencode = try!(parse::parse_info_bencode(root_dict));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:101:16
[INFO] [stderr]     |
[INFO] [stderr] 101 |     let info = try!(parse_info_dictionary(info_bencode));
[INFO] [stderr]     |                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:224:13
[INFO] [stderr]     |
[INFO] [stderr] 224 |             try!(callback(PieceAccess::PreComputed(ShaHash::from_hash(piece).unwrap())));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:233:24
[INFO] [stderr]     |
[INFO] [stderr] 233 |     let info_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default()));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:242:21
[INFO] [stderr]     |
[INFO] [stderr] 242 |     let info_dict = try!(parse::parse_root_dict(info_bencode));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:243:21
[INFO] [stderr]     |
[INFO] [stderr] 243 |     let piece_len = try!(parse::parse_piece_length(info_dict));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:246:18
[INFO] [stderr]     |
[INFO] [stderr] 246 |     let pieces = try!(parse::parse_pieces(info_dict));
[INFO] [stderr]     |                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:247:25
[INFO] [stderr]     |
[INFO] [stderr] 247 |     let piece_buffers = try!(allocate_pieces(pieces));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:250:30
[INFO] [stderr]     |
[INFO] [stderr] 250 |         let file_directory = try!(parse::parse_name(info_dict));
[INFO] [stderr]     |                              ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:254:29
[INFO] [stderr]     |
[INFO] [stderr] 254 |         let files_bencode = try!(parse::parse_files_list(info_dict));
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:258:29
[INFO] [stderr]     |
[INFO] [stderr] 258 |             let file_dict = try!(parse::parse_file_dict(file_bencode));
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:259:24
[INFO] [stderr]     |
[INFO] [stderr] 259 |             let file = try!(File::as_multi_file(file_dict));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:273:20
[INFO] [stderr]     |
[INFO] [stderr] 273 |         let file = try!(File::as_single_file(info_dict));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:327:22
[INFO] [stderr]     |
[INFO] [stderr] 327 |         let length = try!(parse::parse_length(info_dict));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:329:20
[INFO] [stderr]     |
[INFO] [stderr] 329 |         let name = try!(parse::parse_name(info_dict));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:341:22
[INFO] [stderr]     |
[INFO] [stderr] 341 |         let length = try!(parse::parse_length(file_dict));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:344:33
[INFO] [stderr]     |
[INFO] [stderr] 344 |         let path_list_bencode = try!(parse::parse_path_list(file_dict));
[INFO] [stderr]     |                                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/metainfo.rs:348:24
[INFO] [stderr]     |
[INFO] [stderr] 348 |             let path = try!(parse::parse_path_str(path_bencode));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]   --> src/error.rs:8:1
[INFO] [stderr]    |
[INFO] [stderr] 8  | / error_chain! {
[INFO] [stderr] 9  | |     types {
[INFO] [stderr] 10 | |         ParseError, ParseErrorKind, ParseResultEx, ParseResult;
[INFO] [stderr] 11 | |     }
[INFO] [stderr] ...  |
[INFO] [stderr] 27 | |     }
[INFO] [stderr] 28 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/accessor.rs:62:21
[INFO] [stderr]    |
[INFO] [stderr] 62 |     Compute(&'a mut Read),
[INFO] [stderr]    |                     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 62 |     Compute(&'a mut dyn Read),
[INFO] [stderr]    |                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/metainfo.rs:287:41
[INFO] [stderr]     |
[INFO] [stderr] 287 | fn is_multi_file_torrent<B>(info_dict: &BDictAccess<B::BKey, B>) -> bool
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 287 | fn is_multi_file_torrent<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> bool
[INFO] [stderr]     |                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:44:61
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub fn parse_root_dict<B>(root_bencode: &B) -> ParseResult<&BDictAccess<B::BKey, B::BType>>
[INFO] [stderr]    |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub fn parse_root_dict<B>(root_bencode: &B) -> ParseResult<&dyn BDictAccess<B::BKey, B::BType>>
[INFO] [stderr]    |                                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:50:49
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stderr]    |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:56:43
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub fn parse_creation_date<B>(root_dict: &BDictAccess<B::BKey, B>) -> Option<i64>
[INFO] [stderr]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub fn parse_creation_date<B>(root_dict: &dyn BDictAccess<B::BKey, B>) -> Option<i64>
[INFO] [stderr]    |                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:62:44
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub fn parse_comment<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stderr]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub fn parse_comment<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stderr]    |                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:68:47
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stderr]    |                                               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stderr]    |                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:74:45
[INFO] [stderr]    |
[INFO] [stderr] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stderr]    |                                             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a str>
[INFO] [stderr]    |                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:80:49
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&B>
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&B>
[INFO] [stderr]    |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:88:42
[INFO] [stderr]    |
[INFO] [stderr] 88 | pub fn parse_piece_length<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stderr]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 88 | pub fn parse_piece_length<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stderr]    |                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parse.rs:94:43
[INFO] [stderr]    |
[INFO] [stderr] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&'a [u8]>
[INFO] [stderr]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&'a [u8]>
[INFO] [stderr]    |                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:100:37
[INFO] [stderr]     |
[INFO] [stderr] 100 | pub fn parse_private<B>(info_dict: &BDictAccess<B::BKey, B>) -> Option<bool>
[INFO] [stderr]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 100 | pub fn parse_private<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> Option<bool>
[INFO] [stderr]     |                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:106:41
[INFO] [stderr]     |
[INFO] [stderr] 106 | pub fn parse_name<'a, B>(info_dict: &'a BDictAccess<B::BKey, B>) -> ParseResult<&'a str>
[INFO] [stderr]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 106 | pub fn parse_name<'a, B>(info_dict: &'a dyn BDictAccess<B::BKey, B>) -> ParseResult<&'a str>
[INFO] [stderr]     |                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:112:40
[INFO] [stderr]     |
[INFO] [stderr] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stderr]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 112 | pub fn parse_files_list<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stderr]     |                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:112:81
[INFO] [stderr]     |
[INFO] [stderr] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stderr]     |                                                                                 ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 112 | pub fn parse_files_list<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&dyn BListAccess<B>>
[INFO] [stderr]     |                                                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:120:61
[INFO] [stderr]     |
[INFO] [stderr] 120 | pub fn parse_file_dict<B>(file_bencode: &B) -> ParseResult<&BDictAccess<B::BKey, B::BType>>
[INFO] [stderr]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 120 | pub fn parse_file_dict<B>(file_bencode: &B) -> ParseResult<&dyn BDictAccess<B::BKey, B::BType>>
[INFO] [stderr]     |                                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:126:44
[INFO] [stderr]     |
[INFO] [stderr] 126 | pub fn parse_length<B>(info_or_file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stderr]     |                                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 126 | pub fn parse_length<B>(info_or_file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<u64>
[INFO] [stderr]     |                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:132:51
[INFO] [stderr]     |
[INFO] [stderr] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a BDictAccess<B::BKey, B>) -> Option<&'a [u8]>
[INFO] [stderr]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a dyn BDictAccess<B::BKey, B>) -> Option<&'a [u8]>
[INFO] [stderr]     |                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:138:39
[INFO] [stderr]     |
[INFO] [stderr] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stderr]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 138 | pub fn parse_path_list<B>(file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stderr]     |                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parse.rs:138:80
[INFO] [stderr]     |
[INFO] [stderr] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&BListAccess<B>>
[INFO] [stderr]     |                                                                                ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 138 | pub fn parse_path_list<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<&dyn BListAccess<B>>
[INFO] [stderr]     |                                                                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/metainfo.rs:325:38
[INFO] [stderr]     |
[INFO] [stderr] 325 |     fn as_single_file<B>(info_dict: &BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stderr]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 325 |     fn as_single_file<B>(info_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stderr]     |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/metainfo.rs:339:37
[INFO] [stderr]     |
[INFO] [stderr] 339 |     fn as_multi_file<B>(file_dict: &BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stderr]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is an object-safe trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 339 |     fn as_multi_file<B>(file_dict: &dyn BDictAccess<B::BKey, B>) -> ParseResult<File>
[INFO] [stderr]     |                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stderr]   --> src/error.rs:8:1
[INFO] [stderr]    |
[INFO] [stderr] 8  | / error_chain! {
[INFO] [stderr] 9  | |     types {
[INFO] [stderr] 10 | |         ParseError, ParseErrorKind, ParseResultEx, ParseResult;
[INFO] [stderr] 11 | |     }
[INFO] [stderr] ...  |
[INFO] [stderr] 27 | |     }
[INFO] [stderr] 28 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/builder/worker.rs:273:17
[INFO] [stderr]     |
[INFO] [stderr] 273 |                 try!(callback(PieceAccess::Compute(&mut next_region)));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stderr]    --> src/builder/worker.rs:352:46
[INFO] [stderr]     |
[INFO] [stderr] 352 |         for &region_length in region_lengths.into_iter() {
[INFO] [stderr]     |                                              ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 352 |         for &region_length in region_lengths.iter() {
[INFO] [stderr]     |                                              ~~~~
[INFO] [stderr] help: or remove `.into_iter()` to iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 352 -         for &region_length in region_lengths.into_iter() {
[INFO] [stderr] 352 +         for &region_length in region_lengths {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stderr]    --> src/builder/worker.rs:366:46
[INFO] [stderr]     |
[INFO] [stderr] 366 |         for &region_length in region_lengths.into_iter() {
[INFO] [stderr]     |                                              ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 366 |         for &region_length in region_lengths.iter() {
[INFO] [stderr]     |                                              ~~~~
[INFO] [stderr] help: or remove `.into_iter()` to iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 366 -         for &region_length in region_lengths.into_iter() {
[INFO] [stderr] 366 +         for &region_length in region_lengths {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stderr]    --> src/builder/worker.rs:381:46
[INFO] [stderr]     |
[INFO] [stderr] 381 |         for &region_length in region_lengths.into_iter() {
[INFO] [stderr]     |                                              ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 381 |         for &region_length in region_lengths.iter() {
[INFO] [stderr]     |                                              ~~~~
[INFO] [stderr] help: or remove `.into_iter()` to iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 381 -         for &region_length in region_lengths.into_iter() {
[INFO] [stderr] 381 +         for &region_length in region_lengths {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021
[INFO] [stderr]    --> src/builder/worker.rs:396:46
[INFO] [stderr]     |
[INFO] [stderr] 396 |         for &region_length in region_lengths.into_iter() {
[INFO] [stderr]     |                                              ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this changes meaning in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/IntoIterator-for-arrays.html>
[INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 396 |         for &region_length in region_lengths.iter() {
[INFO] [stderr]     |                                              ~~~~
[INFO] [stderr] help: or remove `.into_iter()` to iterate by value
[INFO] [stderr]     |
[INFO] [stderr] 396 -         for &region_length in region_lengths.into_iter() {
[INFO] [stderr] 396 +         for &region_length in region_lengths {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `bip_metainfo` (lib) generated 57 warnings (run `cargo fix --lib -p bip_metainfo` to apply 22 suggestions)
[INFO] [stderr] warning: `bip_metainfo` (lib test) generated 62 warnings (57 duplicates) (run `cargo fix --lib -p bip_metainfo --tests` to apply 4 suggestions)
[INFO] [stderr] warning: use of deprecated method `chrono::TimeZone::timestamp`: use `timestamp_opt()` instead
[INFO] [stderr]   --> examples/create_torrent.rs:75:13
[INFO] [stderr]    |
[INFO] [stderr] 75 |         Utc.timestamp(c, 0)
[INFO] [stderr]    |             ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `bip_metainfo` (example "create_torrent") generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint v0.1.44, num-complex v0.1.43, num-rational v0.1.42
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/bip_metainfo-57eee947ff2ee67a)
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test builder::worker::tests::positive_piece_length_undivisible_region_single_thread ... ok
[INFO] [stdout] test builder::worker::tests::positive_piece_length_undivisible_regions_single_thread ... ok
[INFO] [stdout] test builder::worker::tests::positive_piece_length_undivisible_regions_multiple_threads ... ok
[INFO] [stdout] test builder::worker::tests::positive_piece_length_undivisible_region_multiple_threads ... ok
[INFO] [stdout] test builder::worker::tests::positive_piece_length_divisible_region_multiple_threads ... ok
[INFO] [stdout] test builder::worker::tests::positive_piece_length_divisible_regions_multiple_threads ... ok
[INFO] [stdout] test builder::worker::tests::positive_piece_length_divisible_region_single_thread ... ok
[INFO] [stdout] test builder::worker::tests::positive_piece_length_divisible_regions_single_thread ... ok
[INFO] [stdout] test metainfo::tests::negative_parse_from_empty_bytes - should panic ... ok
[INFO] [stdout] test metainfo::tests::negative_parse_with_no_piece_length - should panic ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_from_multi_file ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_from_multi_files ... ok
[INFO] [stdout] test metainfo::tests::negative_parse_with_no_pieces - should panic ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_with_created_by ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_with_creation_date ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_with_private_one ... ok
[INFO] [stdout] test metainfo::tests::negative_parse_from_single_file_with_no_file_length - should panic ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_with_no_main_tracker ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_with_private_zero ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_with_encoding ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_from_single_file ... ok
[INFO] [stdout] test metainfo::tests::negative_parse_from_single_file_with_no_file_name - should panic ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_with_private_non_zero ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_with_comment ... ok
[INFO] [stdout] test metainfo::tests::positive_parse_from_empty_pieces ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.51s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests bip_metainfo
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test src/lib.rs - (line 30) ... ok
[INFO] [stdout] test src/lib.rs - (line 7) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.96s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "4c663bdec6448b5e28b16314c1b4f1561df8249184f74953ae4200947c8a867f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4c663bdec6448b5e28b16314c1b4f1561df8249184f74953ae4200947c8a867f", kill_on_drop: false }`
[INFO] [stdout] 4c663bdec6448b5e28b16314c1b4f1561df8249184f74953ae4200947c8a867f
