[INFO] fetching crate redox 0.0.3...
[INFO] checking redox-0.0.3 against master#39cb3386ddc6c71657418be28dbb3987eea4aa4b for pr-133536
[INFO] extracting crate redox 0.0.3 into /workspace/builds/worker-1-tc1/source
[INFO] validating manifest of crates.io crate redox 0.0.3 on toolchain 39cb3386ddc6c71657418be28dbb3987eea4aa4b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+39cb3386ddc6c71657418be28dbb3987eea4aa4b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate redox 0.0.3
[INFO] finished tweaking crates.io crate redox 0.0.3
[INFO] tweaked toml for crates.io crate redox 0.0.3 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+39cb3386ddc6c71657418be28dbb3987eea4aa4b" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 30 packages to latest compatible versions
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+39cb3386ddc6c71657418be28dbb3987eea4aa4b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+39cb3386ddc6c71657418be28dbb3987eea4aa4b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 07b2eabb4343d1472aa6c3faadfa97efce53b847eadeb415dcfe0a622c37bac0
[INFO] running `Command { std: "docker" "start" "-a" "07b2eabb4343d1472aa6c3faadfa97efce53b847eadeb415dcfe0a622c37bac0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "07b2eabb4343d1472aa6c3faadfa97efce53b847eadeb415dcfe0a622c37bac0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "07b2eabb4343d1472aa6c3faadfa97efce53b847eadeb415dcfe0a622c37bac0", kill_on_drop: false }`
[INFO] [stdout] 07b2eabb4343d1472aa6c3faadfa97efce53b847eadeb415dcfe0a622c37bac0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+39cb3386ddc6c71657418be28dbb3987eea4aa4b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4e78103e77a467579b52f265e70227d118fc4cfec9366d3ac57f9e7041b899a3
[INFO] running `Command { std: "docker" "start" "-a" "4e78103e77a467579b52f265e70227d118fc4cfec9366d3ac57f9e7041b899a3", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Checking time v0.3.36
[INFO] [stderr]    Compiling syn v2.0.90
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking redox v0.0.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/bencode/decode.rs:32:34
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let (bencode, end_pos) = try!(decode(bytes_ref, 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/bencode/decode.rs:85:21
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let curr_byte = try!(peek_byte(bytes, pos, "End Of Bytes Encountered"));
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/bencode/decode.rs:89:34
[INFO] [stdout]    |
[INFO] [stdout] 89 |             let (bencode, pos) = try!(decode_int(bytes, pos + 1, bencode::BEN_END));
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/bencode/decode.rs:93:34
[INFO] [stdout]    |
[INFO] [stdout] 93 |             let (bencode, pos) = try!(decode_list(bytes, pos + 1));
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/bencode/decode.rs:97:34
[INFO] [stdout]    |
[INFO] [stdout] 97 |             let (bencode, pos) = try!(decode_dict(bytes, pos + 1));
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/bencode/decode.rs:100:30
[INFO] [stdout]     |
[INFO] [stdout] 100 |         bencode::BYTE_LEN_LOW...bencode::BYTE_LEN_HIGH => {
[INFO] [stdout]     |                              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:101:34
[INFO] [stdout]     |
[INFO] [stdout] 101 |             let (bencode, pos) = try!(decode_bytes(bytes, pos));
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:150:34
[INFO] [stdout]     |
[INFO] [stdout] 150 |     let (num_bytes, start_pos) = try!(decode_int(bytes, pos, bencode::BYTE_LEN_END));
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:175:25
[INFO] [stdout]     |
[INFO] [stdout] 175 |     let mut curr_byte = try!(peek_byte(bytes, curr_pos, "End Of Bytes Element Encountered In List"));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         let (bencode, next_pos) = try!(decode(bytes, curr_pos));
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:183:21
[INFO] [stdout]     |
[INFO] [stdout] 183 |         curr_byte = try!(peek_byte(bytes, curr_pos, "End Of Bytes Element Encountered In List"));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:193:25
[INFO] [stdout]     |
[INFO] [stdout] 193 |     let mut curr_byte = try!(peek_byte(bytes, curr_pos, "End Of Bytes Element Encountered In Dictionary"));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:196:37
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let (key_bytes, next_pos) = try!(decode_bytes(bytes, curr_pos));
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:216:33
[INFO] [stdout]     |
[INFO] [stdout] 216 |         let (value, next_pos) = try!(decode(bytes, curr_pos));
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:226:21
[INFO] [stdout]     |
[INFO] [stdout] 226 |         curr_byte = try!(peek_byte(bytes, curr_pos, "End Of Bytes Element Encountered In Dictionary"));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/bencode/mod.rs:35:15
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn decode(T) -> BencodeResult<Self>;
[INFO] [stdout]    |               ^ help: try naming the parameter or explicitly ignoring it: `_: T`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/error.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |         try!(f.write_fmt(format_args!("Kind: {:?}", self.kind)));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/error.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |         try!(f.write_fmt(format_args!(", Description: {}", self.desc)));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/error.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |             try!(f.write_fmt(format_args!(", Position: {}", n)));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/error.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |         try!(f.write_fmt(format_args!("Kind: {:?}", self.kind)));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/error.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |         try!(f.write_fmt(format_args!(", Description: {}", self.desc)));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/error.rs:122:13
[INFO] [stdout]     |
[INFO] [stdout] 122 |             try!(f.write_fmt(format_args!(", Detail: {}", n)));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:42:27
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut bencode = try!(Bencode::decode(&bytes));
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:45:25
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let info_hash = try!(metainfo::generate_info_hash(&bencode));
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:47:20
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let info = try!(PieceInfoImpl::new(&mut bencode));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:48:20
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let file = try!(FileInfoImpl::new(&mut bencode));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:59:23
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let comment = try!(move_comment(&mut bencode));
[INFO] [stdout]    |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:60:26
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let created_by = try!(move_created_by(&mut bencode));
[INFO] [stdout]    |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:61:29
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let creation_date = try!(move_creation_date(&mut bencode));
[INFO] [stdout]    |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |         try!(torrent_file.read_to_end(&mut torrent_bytes));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:77:32
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let mut torrent_file = try!(fs::File::open(path));
[INFO] [stdout]    |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:142:22
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let length = try!(move_piece_length(root));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:143:22
[INFO] [stdout]     |
[INFO] [stdout] 143 |         let pieces = try!(move_pieces(root));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:169:37
[INFO] [stdout]     |
[INFO] [stdout] 169 |         Ok(FileInfoImpl{ file_type: try!(move_files(root)) })
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:290:21
[INFO] [stdout]     |
[INFO] [stdout] 290 |     let root_dict = try!(slice_root_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:304:21
[INFO] [stdout]     |
[INFO] [stdout] 304 |     let root_dict = try!(slice_root_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:311:21
[INFO] [stdout]     |
[INFO] [stdout] 311 |     let root_dict = try!(slice_root_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:327:20
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let host = try!(bytes_into_string(
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:339:21
[INFO] [stdout]     |
[INFO] [stdout] 339 |     let root_dict = try!(slice_root_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:348:21
[INFO] [stdout]     |
[INFO] [stdout] 348 |     let root_dict = try!(slice_root_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:357:21
[INFO] [stdout]     |
[INFO] [stdout] 357 |     let root_dict = try!(slice_root_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:363:21
[INFO] [stdout]     |
[INFO] [stdout] 363 |     let info_dict = try!(slice_info_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:369:21
[INFO] [stdout]     |
[INFO] [stdout] 369 |     let info_dict = try!(slice_info_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:389:21
[INFO] [stdout]     |
[INFO] [stdout] 389 |     let info_dict = try!(slice_info_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:400:16
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let name = try!(move_name(root));
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:401:21
[INFO] [stdout]     |
[INFO] [stdout] 401 |     let info_dict = try!(slice_info_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:406:24
[INFO] [stdout]     |
[INFO] [stdout] 406 |         let checksum = try!(move_checksum(info_dict));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:414:28
[INFO] [stdout]     |
[INFO] [stdout] 414 |             file_list.push(try!(move_file(&mut file)));
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:426:20
[INFO] [stdout]     |
[INFO] [stdout] 426 |     let checksum = try!(move_checksum(file));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:435:24
[INFO] [stdout]     |
[INFO] [stdout] 435 |         path_list.push(try!(bytes_into_string(path_entry_bytes.to_vec(), metainfo::PATH_KEY)));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `slice_dict`
[INFO] [stdout]   --> src/torrent/metainfo/lazy_metainfo.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 | macro_rules! slice_dict {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `slice_dict_opt`
[INFO] [stdout]   --> src/torrent/metainfo/lazy_metainfo.rs:41:14
[INFO] [stdout]    |
[INFO] [stdout] 41 | macro_rules! slice_dict_opt {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/mod.rs:45:21
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let root_dict = try!(lazy_metainfo::slice_root_dict(root));
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/mod.rs:47:16
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let info = try!(root_dict.lookup(INFO_KEY).ok_or(
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bencode/mod.rs:31:14
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Dict(&'b Dictionary<'a, T>)
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the 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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Dict(&'b dyn Dictionary<'a, T>)
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/torrent/mod.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     iter: Box<Iterator<Item=Node<'a>> + 'a>
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     iter: Box<dyn Iterator<Item=Node<'a>> + 'a>
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/mod.rs:204:15
[INFO] [stdout]     |
[INFO] [stdout] 204 |     iter: Box<Iterator<Item=File<'a>> + 'a>
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 204 |     iter: Box<dyn Iterator<Item=File<'a>> + 'a>
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/mod.rs:243:15
[INFO] [stdout]     |
[INFO] [stdout] 243 |     iter: Box<Iterator<Item=&'a str> + 'a>
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 243 |     iter: Box<dyn Iterator<Item=&'a str> + 'a>
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/bencode/decode.rs:32:34
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let (bencode, end_pos) = try!(decode(bytes_ref, 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/bencode/decode.rs:85:21
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let curr_byte = try!(peek_byte(bytes, pos, "End Of Bytes Encountered"));
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/bencode/decode.rs:89:34
[INFO] [stdout]    |
[INFO] [stdout] 89 |             let (bencode, pos) = try!(decode_int(bytes, pos + 1, bencode::BEN_END));
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/bencode/decode.rs:93:34
[INFO] [stdout]    |
[INFO] [stdout] 93 |             let (bencode, pos) = try!(decode_list(bytes, pos + 1));
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bencode/encode.rs:47:30
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn encode_dict<'a, T>(dict: &Dictionary<'a, T>) -> Vec<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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn encode_dict<'a, T>(dict: &dyn Dictionary<'a, T>) -> Vec<u8>
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/bencode/decode.rs:97:34
[INFO] [stdout]    |
[INFO] [stdout] 97 |             let (bencode, pos) = try!(decode_dict(bytes, pos + 1));
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/bencode/decode.rs:100:30
[INFO] [stdout]     |
[INFO] [stdout] 100 |         bencode::BYTE_LEN_LOW...bencode::BYTE_LEN_HIGH => {
[INFO] [stdout]     |                              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/torrent/metainfo/lazy_metainfo.rs:54:59
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn slice_root_dict<'a, T>(root: &T) -> TorrentResult<&Dictionary<'a, T>>
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the 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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn slice_root_dict<'a, T>(root: &T) -> TorrentResult<&dyn Dictionary<'a, T>>
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:101:34
[INFO] [stdout]     |
[INFO] [stdout] 101 |             let (bencode, pos) = try!(decode_bytes(bytes, pos));
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:150:34
[INFO] [stdout]     |
[INFO] [stdout] 150 |     let (num_bytes, start_pos) = try!(decode_int(bytes, pos, bencode::BYTE_LEN_END));
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:175:25
[INFO] [stdout]     |
[INFO] [stdout] 175 |     let mut curr_byte = try!(peek_byte(bytes, curr_pos, "End Of Bytes Element Encountered In List"));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:178:35
[INFO] [stdout]     |
[INFO] [stdout] 178 |         let (bencode, next_pos) = try!(decode(bytes, curr_pos));
[INFO] [stdout]     |                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:183:21
[INFO] [stdout]     |
[INFO] [stdout] 183 |         curr_byte = try!(peek_byte(bytes, curr_pos, "End Of Bytes Element Encountered In List"));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bencode/mod.rs:74:31
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn dict(&self) -> Option<&Dictionary<'a, Self::InnerView>>;
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the 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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn dict(&self) -> Option<&dyn Dictionary<'a, Self::InnerView>>;
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:193:25
[INFO] [stdout]     |
[INFO] [stdout] 193 |     let mut curr_byte = try!(peek_byte(bytes, curr_pos, "End Of Bytes Element Encountered In Dictionary"));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bencode/decode.rs:76:31
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn dict(&self) -> Option<&Dictionary<'a, Self::InnerView>> {
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the 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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn dict(&self) -> Option<&dyn Dictionary<'a, Self::InnerView>> {
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bencode/mod.rs:100:31
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn dict(&self) -> Option<&Dictionary<'a, Self::InnerView>> {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the 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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn dict(&self) -> Option<&dyn Dictionary<'a, Self::InnerView>> {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bencode/mod.rs:128:31
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn dict(&self) -> Option<&Dictionary<'a, Self::InnerView>> {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the 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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn dict(&self) -> Option<&dyn Dictionary<'a, Self::InnerView>> {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:196:37
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let (key_bytes, next_pos) = try!(decode_bytes(bytes, curr_pos));
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:216:33
[INFO] [stdout]     |
[INFO] [stdout] 216 |         let (value, next_pos) = try!(decode(bytes, curr_pos));
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/bencode/decode.rs:226:21
[INFO] [stdout]     |
[INFO] [stdout] 226 |         curr_byte = try!(peek_byte(bytes, curr_pos, "End Of Bytes Element Encountered In Dictionary"));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/bencode/mod.rs:35:15
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn decode(T) -> BencodeResult<Self>;
[INFO] [stdout]    |               ^ help: try naming the parameter or explicitly ignoring it: `_: T`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/error.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 55 |         try!(f.write_fmt(format_args!("Kind: {:?}", self.kind)));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/error.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |         try!(f.write_fmt(format_args!(", Description: {}", self.desc)));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/error.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |             try!(f.write_fmt(format_args!(", Position: {}", n)));
[INFO] [stdout]    |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/error.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |         try!(f.write_fmt(format_args!("Kind: {:?}", self.kind)));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/error.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |         try!(f.write_fmt(format_args!(", Description: {}", self.desc)));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/error.rs:122:13
[INFO] [stdout]     |
[INFO] [stdout] 122 |             try!(f.write_fmt(format_args!(", Detail: {}", n)));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:42:27
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut bencode = try!(Bencode::decode(&bytes));
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:45:25
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let info_hash = try!(metainfo::generate_info_hash(&bencode));
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:47:20
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let info = try!(PieceInfoImpl::new(&mut bencode));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:48:20
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let file = try!(FileInfoImpl::new(&mut bencode));
[INFO] [stdout]    |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:59:23
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let comment = try!(move_comment(&mut bencode));
[INFO] [stdout]    |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:60:26
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let created_by = try!(move_created_by(&mut bencode));
[INFO] [stdout]    |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:61:29
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let creation_date = try!(move_creation_date(&mut bencode));
[INFO] [stdout]    |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |         try!(torrent_file.read_to_end(&mut torrent_bytes));
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:77:32
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let mut torrent_file = try!(fs::File::open(path));
[INFO] [stdout]    |                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:142:22
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let length = try!(move_piece_length(root));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:143:22
[INFO] [stdout]     |
[INFO] [stdout] 143 |         let pieces = try!(move_pieces(root));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:169:37
[INFO] [stdout]     |
[INFO] [stdout] 169 |         Ok(FileInfoImpl{ file_type: try!(move_files(root)) })
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:290:21
[INFO] [stdout]     |
[INFO] [stdout] 290 |     let root_dict = try!(slice_root_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:304:21
[INFO] [stdout]     |
[INFO] [stdout] 304 |     let root_dict = try!(slice_root_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:311:21
[INFO] [stdout]     |
[INFO] [stdout] 311 |     let root_dict = try!(slice_root_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:327:20
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let host = try!(bytes_into_string(
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:339:21
[INFO] [stdout]     |
[INFO] [stdout] 339 |     let root_dict = try!(slice_root_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:348:21
[INFO] [stdout]     |
[INFO] [stdout] 348 |     let root_dict = try!(slice_root_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:357:21
[INFO] [stdout]     |
[INFO] [stdout] 357 |     let root_dict = try!(slice_root_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:363:21
[INFO] [stdout]     |
[INFO] [stdout] 363 |     let info_dict = try!(slice_info_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:369:21
[INFO] [stdout]     |
[INFO] [stdout] 369 |     let info_dict = try!(slice_info_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:389:21
[INFO] [stdout]     |
[INFO] [stdout] 389 |     let info_dict = try!(slice_info_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:400:16
[INFO] [stdout]     |
[INFO] [stdout] 400 |     let name = try!(move_name(root));
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:401:21
[INFO] [stdout]     |
[INFO] [stdout] 401 |     let info_dict = try!(slice_info_dict(root));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:406:24
[INFO] [stdout]     |
[INFO] [stdout] 406 |         let checksum = try!(move_checksum(info_dict));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:414:28
[INFO] [stdout]     |
[INFO] [stdout] 414 |             file_list.push(try!(move_file(&mut file)));
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:426:20
[INFO] [stdout]     |
[INFO] [stdout] 426 |     let checksum = try!(move_checksum(file));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:435:24
[INFO] [stdout]     |
[INFO] [stdout] 435 |         path_list.push(try!(bytes_into_string(path_entry_bytes.to_vec(), metainfo::PATH_KEY)));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `slice_dict`
[INFO] [stdout]   --> src/torrent/metainfo/lazy_metainfo.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 | macro_rules! slice_dict {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `slice_dict_opt`
[INFO] [stdout]   --> src/torrent/metainfo/lazy_metainfo.rs:41:14
[INFO] [stdout]    |
[INFO] [stdout] 41 | macro_rules! slice_dict_opt {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/mod.rs:45:21
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let root_dict = try!(lazy_metainfo::slice_root_dict(root));
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/torrent/metainfo/mod.rs:47:16
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let info = try!(root_dict.lookup(INFO_KEY).ok_or(
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bencode/mod.rs:31:14
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Dict(&'b Dictionary<'a, T>)
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the 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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Dict(&'b dyn Dictionary<'a, T>)
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/torrent/mod.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     iter: Box<Iterator<Item=Node<'a>> + 'a>
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 32 |     iter: Box<dyn Iterator<Item=Node<'a>> + 'a>
[INFO] [stdout]    |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/mod.rs:204:15
[INFO] [stdout]     |
[INFO] [stdout] 204 |     iter: Box<Iterator<Item=File<'a>> + 'a>
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 204 |     iter: Box<dyn Iterator<Item=File<'a>> + 'a>
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/mod.rs:243:15
[INFO] [stdout]     |
[INFO] [stdout] 243 |     iter: Box<Iterator<Item=&'a str> + 'a>
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 243 |     iter: Box<dyn Iterator<Item=&'a str> + 'a>
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bencode/encode.rs:47:30
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn encode_dict<'a, T>(dict: &Dictionary<'a, T>) -> Vec<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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn encode_dict<'a, T>(dict: &dyn Dictionary<'a, T>) -> Vec<u8>
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/torrent/metainfo/lazy_metainfo.rs:54:59
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn slice_root_dict<'a, T>(root: &T) -> TorrentResult<&Dictionary<'a, T>>
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the 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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn slice_root_dict<'a, T>(root: &T) -> TorrentResult<&dyn Dictionary<'a, T>>
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bencode/mod.rs:74:31
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn dict(&self) -> Option<&Dictionary<'a, Self::InnerView>>;
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the 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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn dict(&self) -> Option<&dyn Dictionary<'a, Self::InnerView>>;
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/bencode/decode.rs:76:31
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn dict(&self) -> Option<&Dictionary<'a, Self::InnerView>> {
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the 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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn dict(&self) -> Option<&dyn Dictionary<'a, Self::InnerView>> {
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bencode/mod.rs:100:31
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn dict(&self) -> Option<&Dictionary<'a, Self::InnerView>> {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the 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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn dict(&self) -> Option<&dyn Dictionary<'a, Self::InnerView>> {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/bencode/mod.rs:128:31
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn dict(&self) -> Option<&Dictionary<'a, Self::InnerView>> {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the 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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn dict(&self) -> Option<&dyn Dictionary<'a, Self::InnerView>> {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `Self` cannot be known at compilation time
[INFO] [stdout]   --> src/bencode/mod.rs:35:21
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn decode(T) -> BencodeResult<Self>;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout] note: required by an implicit `Sized` bound in `Result`
[INFO] [stdout]   --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/core/src/result.rs:528:1
[INFO] [stdout] help: consider further restricting `Self`
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn decode(T) -> BencodeResult<Self> where Self: Sized;
[INFO] [stdout]    |                                         +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `Self` cannot be known at compilation time
[INFO] [stdout]   --> src/bencode/mod.rs:35:21
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn decode(T) -> BencodeResult<Self>;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]    |
[INFO] [stdout] note: required by an implicit `Sized` bound in `Result`
[INFO] [stdout]   --> /rustc/39cb3386ddc6c71657418be28dbb3987eea4aa4b/library/core/src/result.rs:528:1
[INFO] [stdout] help: consider further restricting `Self`
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn decode(T) -> BencodeResult<Self> where Self: Sized;
[INFO] [stdout]    |                                         +++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/error.rs:70:32
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&Error> { None }
[INFO] [stdout]    |                                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the 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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&dyn Error> { None }
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/error.rs:150:32
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn cause(&self) -> Option<&Error> { None }
[INFO] [stdout]     |                                ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the 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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn cause(&self) -> Option<&dyn Error> { None }
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:285:84
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub fn slice_root_dict<'a, 'b>(root: &'b mut Bencode<'a>) -> TorrentResult<&'b mut Dictionary<'a, Bencode<'a>>> {
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub fn slice_root_dict<'a, 'b>(root: &'b mut Bencode<'a>) -> TorrentResult<&'b mut dyn Dictionary<'a, Bencode<'a>>> {
[INFO] [stdout]     |                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:289:84
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn slice_info_dict<'a, 'b>(root: &'b mut Bencode<'a>) -> TorrentResult<&'b mut Dictionary<'a, Bencode<'a>>> {
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn slice_info_dict<'a, 'b>(root: &'b mut Bencode<'a>) -> TorrentResult<&'b mut dyn Dictionary<'a, Bencode<'a>>> {
[INFO] [stdout]     |                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:377:33
[INFO] [stdout]     |
[INFO] [stdout] 377 | fn move_checksum<'a>(dict: &mut Dictionary<'a, Bencode<'a>>) -> TorrentResult<Option<Vec<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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 377 | fn move_checksum<'a>(dict: &mut dyn Dictionary<'a, Bencode<'a>>) -> TorrentResult<Option<Vec<u8>>> {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/error.rs:70:32
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&Error> { None }
[INFO] [stdout]    |                                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the 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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn cause(&self) -> Option<&dyn Error> { None }
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/error.rs:150:32
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn cause(&self) -> Option<&Error> { None }
[INFO] [stdout]     |                                ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the 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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn cause(&self) -> Option<&dyn Error> { None }
[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:133:19
[INFO] [stdout]     |
[INFO] [stdout] 133 |             error.description().to_owned()
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:93:28
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 })) as Box<Iterator<Item=(&'a str, u16)> + 'a>;
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 })) as Box<dyn Iterator<Item=(&'a str, u16)> + 'a>;
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:100:28
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 })) as Box<Iterator<Item=(&'a str, u16)> + 'a>;
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 })) as Box<dyn Iterator<Item=(&'a str, u16)> + 'a>;
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:285:84
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub fn slice_root_dict<'a, 'b>(root: &'b mut Bencode<'a>) -> TorrentResult<&'b mut Dictionary<'a, Bencode<'a>>> {
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub fn slice_root_dict<'a, 'b>(root: &'b mut Bencode<'a>) -> TorrentResult<&'b mut dyn Dictionary<'a, Bencode<'a>>> {
[INFO] [stdout]     |                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:289:84
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn slice_info_dict<'a, 'b>(root: &'b mut Bencode<'a>) -> TorrentResult<&'b mut Dictionary<'a, Bencode<'a>>> {
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn slice_info_dict<'a, 'b>(root: &'b mut Bencode<'a>) -> TorrentResult<&'b mut dyn Dictionary<'a, Bencode<'a>>> {
[INFO] [stdout]     |                                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:377:33
[INFO] [stdout]     |
[INFO] [stdout] 377 | fn move_checksum<'a>(dict: &mut Dictionary<'a, Bencode<'a>>) -> TorrentResult<Option<Vec<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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 377 | fn move_checksum<'a>(dict: &mut dyn Dictionary<'a, Bencode<'a>>) -> TorrentResult<Option<Vec<u8>>> {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:183:28
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 })) as Box<Iterator<Item=File<'a>>>;
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 })) as Box<dyn Iterator<Item=File<'a>>>;
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:176:75
[INFO] [stdout]     |
[INFO] [stdout] 176 |                     let path_iter = Box::new(Iter::new(&name[..])) as Box<Iterator<Item=&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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 176 |                     let path_iter = Box::new(Iter::new(&name[..])) as Box<dyn Iterator<Item=&str>>;
[INFO] [stdout]     |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:199:28
[INFO] [stdout]     |
[INFO] [stdout] 199 |                 })) as Box<Iterator<Item=File<'a>>>;
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 199 |                 })) as Box<dyn Iterator<Item=File<'a>>>;
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:192:88
[INFO] [stdout]     |
[INFO] [stdout] 192 |                     let path_iter = Box::new(path.iter().map(|path| &path[..])) as Box<Iterator<Item=&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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 192 |                     let path_iter = Box::new(path.iter().map(|path| &path[..])) as Box<dyn Iterator<Item=&str>>;
[INFO] [stdout]     |                                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `CoreWrapper` in the current scope
[INFO] [stdout]   --> src/util.rs:77:25
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let mut sha = Sha1::new();
[INFO] [stdout]    |                         ^^^ function or associated item not found in `CoreWrapper<Sha1Core>`
[INFO] [stdout]    |
[INFO] [stdout] note: if you're trying to build a new `CoreWrapper<Sha1Core>`, consider using `CoreWrapper::<T>::from_core` which returns `CoreWrapper<_>`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/digest-0.10.7/src/core_api/wrapper.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn from_core(core: T) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `Digest` which provides `new` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 3  + use sha1::Digest;
[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:133:19
[INFO] [stdout]     |
[INFO] [stdout] 133 |             error.description().to_owned()
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/torrent/metainfo/metainfo.rs:93:28
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 })) as Box<Iterator<Item=(&'a str, u16)> + 'a>;
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 })) as Box<dyn Iterator<Item=(&'a str, u16)> + 'a>;
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:100:28
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 })) as Box<Iterator<Item=(&'a str, u16)> + 'a>;
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 })) as Box<dyn Iterator<Item=(&'a str, u16)> + 'a>;
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:183:28
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 })) as Box<Iterator<Item=File<'a>>>;
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 })) as Box<dyn Iterator<Item=File<'a>>>;
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:176:75
[INFO] [stdout]     |
[INFO] [stdout] 176 |                     let path_iter = Box::new(Iter::new(&name[..])) as Box<Iterator<Item=&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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 176 |                     let path_iter = Box::new(Iter::new(&name[..])) as Box<dyn Iterator<Item=&str>>;
[INFO] [stdout]     |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:199:28
[INFO] [stdout]     |
[INFO] [stdout] 199 |                 })) as Box<Iterator<Item=File<'a>>>;
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 199 |                 })) as Box<dyn Iterator<Item=File<'a>>>;
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/torrent/metainfo/metainfo.rs:192:88
[INFO] [stdout]     |
[INFO] [stdout] 192 |                     let path_iter = Box::new(path.iter().map(|path| &path[..])) as Box<Iterator<Item=&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 a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 192 |                     let path_iter = Box::new(path.iter().map(|path| &path[..])) as Box<dyn Iterator<Item=&str>>;
[INFO] [stdout]     |                                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `CoreWrapper` in the current scope
[INFO] [stdout]   --> src/util.rs:77:25
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let mut sha = Sha1::new();
[INFO] [stdout]    |                         ^^^ function or associated item not found in `CoreWrapper<Sha1Core>`
[INFO] [stdout]    |
[INFO] [stdout] note: if you're trying to build a new `CoreWrapper<Sha1Core>`, consider using `CoreWrapper::<T>::from_core` which returns `CoreWrapper<_>`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/digest-0.10.7/src/core_api/wrapper.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn from_core(core: T) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `Digest` which provides `new` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 3  + use sha1::Digest;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `redox` (lib) due to 2 previous errors; 76 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `redox` (lib test) due to 2 previous errors; 76 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "4e78103e77a467579b52f265e70227d118fc4cfec9366d3ac57f9e7041b899a3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4e78103e77a467579b52f265e70227d118fc4cfec9366d3ac57f9e7041b899a3", kill_on_drop: false }`
[INFO] [stdout] 4e78103e77a467579b52f265e70227d118fc4cfec9366d3ac57f9e7041b899a3
