[INFO] fetching crate bip_metainfo 0.12.0...
[INFO] checking bip_metainfo-0.12.0 against master#b0696a5160711c068cb1f01b7437db7990d15750 for pr-121848
[INFO] extracting crate bip_metainfo 0.12.0 into /workspace/builds/worker-7-tc1/source
[INFO] validating manifest of crates.io crate bip_metainfo 0.12.0 on toolchain b0696a5160711c068cb1f01b7437db7990d15750
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "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-7-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `panic` setting is ignored for `bench` profile
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bip_bencode v0.4.4
[INFO] [stderr]   Downloaded bip_util v0.5.0
[INFO] [stderr]   Downloaded error-chain v0.11.0
[INFO] [stderr]   Downloaded crossbeam v0.3.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0be4d7e33302b684bcea17c011ce5c31a8b2cb3cdefc697e974cf1ddb532fb01
[INFO] running `Command { std: "docker" "start" "-a" "0be4d7e33302b684bcea17c011ce5c31a8b2cb3cdefc697e974cf1ddb532fb01", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0be4d7e33302b684bcea17c011ce5c31a8b2cb3cdefc697e974cf1ddb532fb01", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0be4d7e33302b684bcea17c011ce5c31a8b2cb3cdefc697e974cf1ddb532fb01", kill_on_drop: false }`
[INFO] [stdout] 0be4d7e33302b684bcea17c011ce5c31a8b2cb3cdefc697e974cf1ddb532fb01
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b0696a5160711c068cb1f01b7437db7990d15750" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 20c0faa2143f4971f4c0e00d2ad895675643d9e0e429b15c44d4efd612132776
[INFO] running `Command { std: "docker" "start" "-a" "20c0faa2143f4971f4c0e00d2ad895675643d9e0e429b15c44d4efd612132776", kill_on_drop: false }`
[INFO] [stderr] warning: `panic` setting is ignored for `bench` profile
[INFO] [stderr]     Checking rustc-serialize v0.3.25
[INFO] [stderr]    Compiling gcc v0.3.55
[INFO] [stderr]     Checking object v0.32.2
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking crossbeam v0.3.2
[INFO] [stderr]     Checking chrono v0.4.35
[INFO] [stderr]     Checking pbr v1.1.1
[INFO] [stderr]     Checking num-iter v0.1.44
[INFO] [stderr]    Compiling rust-crypto v0.2.36
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]     Checking num-bigint v0.1.44
[INFO] [stderr]     Checking num-complex v0.1.43
[INFO] [stderr]     Checking num-rational v0.1.42
[INFO] [stderr]     Checking num v0.1.42
[INFO] [stderr]     Checking chrono v0.2.25
[INFO] [stderr]     Checking backtrace v0.3.69
[INFO] [stderr]     Checking error-chain v0.11.0
[INFO] [stderr]     Checking bip_bencode v0.4.4
[INFO] [stderr]     Checking bip_util v0.5.0
[INFO] [stderr]     Checking bip_metainfo v0.12.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: the item `walkdir` is imported redundantly
[INFO] [stdout]   --> src/accessor.rs:6:15
[INFO] [stdout]    |
[INFO] [stdout] 6  | use walkdir::{self, WalkDir, DirEntry};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/lib.rs:65:1
[INFO] [stdout]    |
[INFO] [stdout] 65 | extern crate walkdir;
[INFO] [stdout]    | --------------------- the item `walkdir` is already imported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` 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: the item `ExactSizeIterator` is imported redundantly
[INFO] [stdout]  --> src/builder/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::iter::ExactSizeIterator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `ExactSizeIterator` is already defined here
[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: the item `walkdir` is imported redundantly
[INFO] [stdout]   --> src/error.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | use walkdir;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/lib.rs:65:1
[INFO] [stdout]    |
[INFO] [stdout] 65 | extern crate walkdir;
[INFO] [stdout]    | --------------------- the item `walkdir` is already imported here
[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: the item `walkdir` is imported redundantly
[INFO] [stdout]   --> src/accessor.rs:6:15
[INFO] [stdout]    |
[INFO] [stdout] 6  | use walkdir::{self, WalkDir, DirEntry};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/lib.rs:65:1
[INFO] [stdout]    |
[INFO] [stdout] 65 | extern crate walkdir;
[INFO] [stdout]    | --------------------- the item `walkdir` is already imported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` 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: the item `ExactSizeIterator` is imported redundantly
[INFO] [stdout]  --> src/builder/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::iter::ExactSizeIterator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  --> /rustc/b0696a5160711c068cb1f01b7437db7990d15750/library/std/src/prelude/mod.rs:105:13
[INFO] [stdout]   |
[INFO] [stdout]   = note: the item `ExactSizeIterator` is already defined here
[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: the item `rand` is imported redundantly
[INFO] [stdout]    --> src/builder/worker.rs:211:16
[INFO] [stdout]     |
[INFO] [stdout] 211 |     use rand::{self, Rng};
[INFO] [stdout]     |                ^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:70:1
[INFO] [stdout]     |
[INFO] [stdout] 70  | extern crate rand;
[INFO] [stdout]     | ------------------ the item `rand` is already imported here
[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: the item `walkdir` is imported redundantly
[INFO] [stdout]   --> src/error.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | use walkdir;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/lib.rs:65:1
[INFO] [stdout]    |
[INFO] [stdout] 65 | extern crate walkdir;
[INFO] [stdout]    | --------------------- the item `walkdir` is already imported here
[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/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: 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: 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/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: 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: 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: 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: 60 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[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: 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: 66 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.79s
[INFO] running `Command { std: "docker" "inspect" "20c0faa2143f4971f4c0e00d2ad895675643d9e0e429b15c44d4efd612132776", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "20c0faa2143f4971f4c0e00d2ad895675643d9e0e429b15c44d4efd612132776", kill_on_drop: false }`
[INFO] [stdout] 20c0faa2143f4971f4c0e00d2ad895675643d9e0e429b15c44d4efd612132776
