[INFO] fetching crate bip_metainfo 0.12.0... [INFO] testing bip_metainfo-0.12.0 against 1.60.0 for beta-1.61-1 [INFO] extracting crate bip_metainfo 0.12.0 into /workspace/builds/worker-24/source [INFO] validating manifest of crates.io crate bip_metainfo 0.12.0 on toolchain 1.60.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.60.0" "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-24/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.60.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.60.0" "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 pbr v1.0.4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-24/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-24/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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 759b5a2a23cd29548159215e8c59957865cd0c6f8987ab8dd64b048a160c97b4 [INFO] running `Command { std: "docker" "start" "-a" "759b5a2a23cd29548159215e8c59957865cd0c6f8987ab8dd64b048a160c97b4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "759b5a2a23cd29548159215e8c59957865cd0c6f8987ab8dd64b048a160c97b4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "759b5a2a23cd29548159215e8c59957865cd0c6f8987ab8dd64b048a160c97b4", kill_on_drop: false }` [INFO] [stdout] 759b5a2a23cd29548159215e8c59957865cd0c6f8987ab8dd64b048a160c97b4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-24/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-24/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=warn" "-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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 15597fdab51a051956d89cf454de03493b86dc6f865b81e07ae3f41981f13f9e [INFO] running `Command { std: "docker" "start" "-a" "15597fdab51a051956d89cf454de03493b86dc6f865b81e07ae3f41981f13f9e", kill_on_drop: false }` [INFO] [stderr] warning: `panic` setting is ignored for `bench` profile [INFO] [stderr] Compiling crossbeam v0.3.2 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling rust-crypto v0.2.36 [INFO] [stderr] Compiling rand v0.4.6 [INFO] [stderr] Compiling num-complex v0.1.43 [INFO] [stderr] Compiling error-chain v0.11.0 [INFO] [stderr] Compiling bip_bencode v0.4.4 [INFO] [stderr] Compiling rand v0.3.23 [INFO] [stderr] Compiling num-bigint v0.1.44 [INFO] [stderr] Compiling num-iter v0.1.42 [INFO] [stderr] Compiling num-rational v0.1.42 [INFO] [stderr] Compiling num v0.1.42 [INFO] [stderr] Compiling chrono v0.2.25 [INFO] [stderr] Compiling bip_util v0.5.0 [INFO] [stderr] Compiling bip_metainfo v0.12.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:80:29 [INFO] [stdout] | [INFO] [stdout] 80 | let absolute_path = try!(path.as_ref().canonicalize()); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:129:25 [INFO] [stdout] | [INFO] [stdout] 129 | let entry = try!(res_entry); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:130:34 [INFO] [stdout] | [INFO] [stdout] 130 | let entry_metadata = try!(entry.metadata()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:153:13 [INFO] [stdout] | [INFO] [stdout] 153 | try!(callback(PieceAccess::Compute(&mut file))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:150:25 [INFO] [stdout] | [INFO] [stdout] 150 | let entry = try!(res_entry); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:151:28 [INFO] [stdout] | [INFO] [stdout] 151 | let mut file = try!(File::open(entry.path())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/buffer.rs:66:30 [INFO] [stdout] | [INFO] [stdout] 66 | let new_bytes_read = try!(callback(&mut self.buffer[self.bytes_read..])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/worker.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | try!(accessor.access_pieces(|piece_access| { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/worker.rs:103:25 [INFO] [stdout] | [INFO] [stdout] 103 | try!(curr_piece_buffer.write_bytes(|buffer| piece_region.read(buffer))) == 0; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/mod.rs:136:24 [INFO] [stdout] | [INFO] [stdout] 136 | let accessor = try!(accessor.into_accessor()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/mod.rs:185:24 [INFO] [stdout] | [INFO] [stdout] 185 | let accessor = try!(accessor.into_accessor()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/mod.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 207 | try!(accessor.access_metadata(|len, path| { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let pieces_list = try!(worker::start_hasher_workers(&accessor, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:91:24 [INFO] [stdout] | [INFO] [stdout] 91 | let root_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:92:21 [INFO] [stdout] | [INFO] [stdout] 92 | let root_dict = try!(parse::parse_root_dict(&root_bencode)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:100:24 [INFO] [stdout] | [INFO] [stdout] 100 | let info_bencode = try!(parse::parse_info_bencode(root_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:101:16 [INFO] [stdout] | [INFO] [stdout] 101 | let info = try!(parse_info_dictionary(info_bencode)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:224:13 [INFO] [stdout] | [INFO] [stdout] 224 | try!(callback(PieceAccess::PreComputed(ShaHash::from_hash(piece).unwrap()))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:233:24 [INFO] [stdout] | [INFO] [stdout] 233 | let info_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:242:21 [INFO] [stdout] | [INFO] [stdout] 242 | let info_dict = try!(parse::parse_root_dict(info_bencode)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:243:21 [INFO] [stdout] | [INFO] [stdout] 243 | let piece_len = try!(parse::parse_piece_length(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:246:18 [INFO] [stdout] | [INFO] [stdout] 246 | let pieces = try!(parse::parse_pieces(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:247:25 [INFO] [stdout] | [INFO] [stdout] 247 | let piece_buffers = try!(allocate_pieces(pieces)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:250:30 [INFO] [stdout] | [INFO] [stdout] 250 | let file_directory = try!(parse::parse_name(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:254:29 [INFO] [stdout] | [INFO] [stdout] 254 | let files_bencode = try!(parse::parse_files_list(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:258:29 [INFO] [stdout] | [INFO] [stdout] 258 | let file_dict = try!(parse::parse_file_dict(file_bencode)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let file = try!(File::as_multi_file(file_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:273:20 [INFO] [stdout] | [INFO] [stdout] 273 | let file = try!(File::as_single_file(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:327:22 [INFO] [stdout] | [INFO] [stdout] 327 | let length = try!(parse::parse_length(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:329:20 [INFO] [stdout] | [INFO] [stdout] 329 | let name = try!(parse::parse_name(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:341:22 [INFO] [stdout] | [INFO] [stdout] 341 | let length = try!(parse::parse_length(file_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:344:33 [INFO] [stdout] | [INFO] [stdout] 344 | let path_list_bencode = try!(parse::parse_path_list(file_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:348:24 [INFO] [stdout] | [INFO] [stdout] 348 | let path = try!(parse::parse_path_str(path_bencode)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `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` (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] = note: `#[warn(bare_trait_objects)]` on by default [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 62 - Compute(&'a mut Read), [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(info_dict: &BDictAccess) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 287 - fn is_multi_file_torrent(info_dict: &BDictAccess) -> bool [INFO] [stdout] 287 + fn is_multi_file_torrent(info_dict: &dyn BDictAccess) -> 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(info_dict: &BDictAccess) -> ParseResult [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 325 - fn as_single_file(info_dict: &BDictAccess) -> ParseResult [INFO] [stdout] 325 + fn as_single_file(info_dict: &dyn BDictAccess) -> ParseResult [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(file_dict: &BDictAccess) -> ParseResult [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 339 - fn as_multi_file(file_dict: &BDictAccess) -> ParseResult [INFO] [stdout] 339 + fn as_multi_file(file_dict: &dyn BDictAccess) -> ParseResult [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(root_bencode: &B) -> ParseResult<&BDictAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 44 - pub fn parse_root_dict(root_bencode: &B) -> ParseResult<&BDictAccess> [INFO] [stdout] 44 + pub fn parse_root_dict(root_bencode: &B) -> ParseResult<&dyn BDictAccess> [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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 50 - pub fn parse_announce_url<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stdout] 50 + pub fn parse_announce_url<'a, B>(root_dict: &'a dyn BDictAccess) -> 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(root_dict: &BDictAccess) -> Option [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 56 - pub fn parse_creation_date(root_dict: &BDictAccess) -> Option [INFO] [stdout] 56 + pub fn parse_creation_date(root_dict: &dyn BDictAccess) -> Option [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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 62 - pub fn parse_comment<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stdout] 62 + pub fn parse_comment<'a, B>(root_dict: &'a dyn BDictAccess) -> 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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 68 - pub fn parse_created_by<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stdout] 68 + pub fn parse_created_by<'a, B>(root_dict: &'a dyn BDictAccess) -> 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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 74 - pub fn parse_encoding<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stdout] 74 + pub fn parse_encoding<'a, B>(root_dict: &'a dyn BDictAccess) -> 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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 80 - pub fn parse_info_bencode<'a, B>(root_dict: &'a BDictAccess) -> ParseResult<&B> [INFO] [stdout] 80 + pub fn parse_info_bencode<'a, B>(root_dict: &'a dyn BDictAccess) -> 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(info_dict: &BDictAccess) -> ParseResult [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 88 - pub fn parse_piece_length(info_dict: &BDictAccess) -> ParseResult [INFO] [stdout] 88 + pub fn parse_piece_length(info_dict: &dyn BDictAccess) -> ParseResult [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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 94 - pub fn parse_pieces<'a, B>(info_dict: &'a BDictAccess) -> ParseResult<&'a [u8]> [INFO] [stdout] 94 + pub fn parse_pieces<'a, B>(info_dict: &'a dyn BDictAccess) -> 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(info_dict: &BDictAccess) -> Option [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 100 - pub fn parse_private(info_dict: &BDictAccess) -> Option [INFO] [stdout] 100 + pub fn parse_private(info_dict: &dyn BDictAccess) -> Option [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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 106 - pub fn parse_name<'a, B>(info_dict: &'a BDictAccess) -> ParseResult<&'a str> [INFO] [stdout] 106 + pub fn parse_name<'a, B>(info_dict: &'a dyn BDictAccess) -> 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:81 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&BListAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 112 - pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stdout] 112 + pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&dyn BListAccess> [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(info_dict: &BDictAccess) -> ParseResult<&BListAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 112 - pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stdout] 112 + pub fn parse_files_list(info_dict: &dyn BDictAccess) -> ParseResult<&BListAccess> [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(file_bencode: &B) -> ParseResult<&BDictAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 120 - pub fn parse_file_dict(file_bencode: &B) -> ParseResult<&BDictAccess> [INFO] [stdout] 120 + pub fn parse_file_dict(file_bencode: &B) -> ParseResult<&dyn BDictAccess> [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(info_or_file_dict: &BDictAccess) -> ParseResult [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 126 - pub fn parse_length(info_or_file_dict: &BDictAccess) -> ParseResult [INFO] [stdout] 126 + pub fn parse_length(info_or_file_dict: &dyn BDictAccess) -> ParseResult [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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 132 - pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a BDictAccess) -> Option<&'a [u8]> [INFO] [stdout] 132 + pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a dyn BDictAccess) -> 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:80 [INFO] [stdout] | [INFO] [stdout] 138 | pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&BListAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 138 - pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stdout] 138 + pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&dyn BListAccess> [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(file_dict: &BDictAccess) -> ParseResult<&BListAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 138 - pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stdout] 138 + pub fn parse_path_list(file_dict: &dyn BDictAccess) -> ParseResult<&BListAccess> [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `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` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 57 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 5.78s [INFO] running `Command { std: "docker" "inspect" "15597fdab51a051956d89cf454de03493b86dc6f865b81e07ae3f41981f13f9e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "15597fdab51a051956d89cf454de03493b86dc6f865b81e07ae3f41981f13f9e", kill_on_drop: false }` [INFO] [stdout] 15597fdab51a051956d89cf454de03493b86dc6f865b81e07ae3f41981f13f9e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-24/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-24/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=warn" "-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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7465cbe37c4ab08071041e5fd530631a9dc85df4572630c9dad2f17c7c81458f [INFO] running `Command { std: "docker" "start" "-a" "7465cbe37c4ab08071041e5fd530631a9dc85df4572630c9dad2f17c7c81458f", kill_on_drop: false }` [INFO] [stderr] warning: `panic` setting is ignored for `bench` profile [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling crossbeam-utils v0.8.8 [INFO] [stderr] Compiling chrono v0.4.19 [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:80:29 [INFO] [stdout] | [INFO] [stdout] 80 | let absolute_path = try!(path.as_ref().canonicalize()); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:129:25 [INFO] [stdout] | [INFO] [stdout] 129 | let entry = try!(res_entry); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:130:34 [INFO] [stdout] | [INFO] [stdout] 130 | let entry_metadata = try!(entry.metadata()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:153:13 [INFO] [stdout] | [INFO] [stdout] 153 | try!(callback(PieceAccess::Compute(&mut file))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:150:25 [INFO] [stdout] | [INFO] [stdout] 150 | let entry = try!(res_entry); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:151:28 [INFO] [stdout] | [INFO] [stdout] 151 | let mut file = try!(File::open(entry.path())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/buffer.rs:66:30 [INFO] [stdout] | [INFO] [stdout] 66 | let new_bytes_read = try!(callback(&mut self.buffer[self.bytes_read..])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/worker.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | try!(accessor.access_pieces(|piece_access| { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/worker.rs:103:25 [INFO] [stdout] | [INFO] [stdout] 103 | try!(curr_piece_buffer.write_bytes(|buffer| piece_region.read(buffer))) == 0; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/mod.rs:136:24 [INFO] [stdout] | [INFO] [stdout] 136 | let accessor = try!(accessor.into_accessor()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/mod.rs:185:24 [INFO] [stdout] | [INFO] [stdout] 185 | let accessor = try!(accessor.into_accessor()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/mod.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 207 | try!(accessor.access_metadata(|len, path| { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let pieces_list = try!(worker::start_hasher_workers(&accessor, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:91:24 [INFO] [stdout] | [INFO] [stdout] 91 | let root_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:92:21 [INFO] [stdout] | [INFO] [stdout] 92 | let root_dict = try!(parse::parse_root_dict(&root_bencode)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:100:24 [INFO] [stdout] | [INFO] [stdout] 100 | let info_bencode = try!(parse::parse_info_bencode(root_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:101:16 [INFO] [stdout] | [INFO] [stdout] 101 | let info = try!(parse_info_dictionary(info_bencode)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:224:13 [INFO] [stdout] | [INFO] [stdout] 224 | try!(callback(PieceAccess::PreComputed(ShaHash::from_hash(piece).unwrap()))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:233:24 [INFO] [stdout] | [INFO] [stdout] 233 | let info_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:242:21 [INFO] [stdout] | [INFO] [stdout] 242 | let info_dict = try!(parse::parse_root_dict(info_bencode)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:243:21 [INFO] [stdout] | [INFO] [stdout] 243 | let piece_len = try!(parse::parse_piece_length(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:246:18 [INFO] [stdout] | [INFO] [stdout] 246 | let pieces = try!(parse::parse_pieces(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:247:25 [INFO] [stdout] | [INFO] [stdout] 247 | let piece_buffers = try!(allocate_pieces(pieces)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:250:30 [INFO] [stdout] | [INFO] [stdout] 250 | let file_directory = try!(parse::parse_name(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:254:29 [INFO] [stdout] | [INFO] [stdout] 254 | let files_bencode = try!(parse::parse_files_list(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:258:29 [INFO] [stdout] | [INFO] [stdout] 258 | let file_dict = try!(parse::parse_file_dict(file_bencode)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let file = try!(File::as_multi_file(file_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:273:20 [INFO] [stdout] | [INFO] [stdout] 273 | let file = try!(File::as_single_file(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:327:22 [INFO] [stdout] | [INFO] [stdout] 327 | let length = try!(parse::parse_length(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:329:20 [INFO] [stdout] | [INFO] [stdout] 329 | let name = try!(parse::parse_name(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:341:22 [INFO] [stdout] | [INFO] [stdout] 341 | let length = try!(parse::parse_length(file_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:344:33 [INFO] [stdout] | [INFO] [stdout] 344 | let path_list_bencode = try!(parse::parse_path_list(file_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:348:24 [INFO] [stdout] | [INFO] [stdout] 348 | let path = try!(parse::parse_path_str(path_bencode)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `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` (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] = note: `#[warn(bare_trait_objects)]` on by default [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 62 - Compute(&'a mut Read), [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(info_dict: &BDictAccess) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 287 - fn is_multi_file_torrent(info_dict: &BDictAccess) -> bool [INFO] [stdout] 287 + fn is_multi_file_torrent(info_dict: &dyn BDictAccess) -> 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(info_dict: &BDictAccess) -> ParseResult [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 325 - fn as_single_file(info_dict: &BDictAccess) -> ParseResult [INFO] [stdout] 325 + fn as_single_file(info_dict: &dyn BDictAccess) -> ParseResult [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(file_dict: &BDictAccess) -> ParseResult [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 339 - fn as_multi_file(file_dict: &BDictAccess) -> ParseResult [INFO] [stdout] 339 + fn as_multi_file(file_dict: &dyn BDictAccess) -> ParseResult [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(root_bencode: &B) -> ParseResult<&BDictAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 44 - pub fn parse_root_dict(root_bencode: &B) -> ParseResult<&BDictAccess> [INFO] [stdout] 44 + pub fn parse_root_dict(root_bencode: &B) -> ParseResult<&dyn BDictAccess> [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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 50 - pub fn parse_announce_url<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stdout] 50 + pub fn parse_announce_url<'a, B>(root_dict: &'a dyn BDictAccess) -> 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(root_dict: &BDictAccess) -> Option [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 56 - pub fn parse_creation_date(root_dict: &BDictAccess) -> Option [INFO] [stdout] 56 + pub fn parse_creation_date(root_dict: &dyn BDictAccess) -> Option [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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 62 - pub fn parse_comment<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stdout] 62 + pub fn parse_comment<'a, B>(root_dict: &'a dyn BDictAccess) -> 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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 68 - pub fn parse_created_by<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stdout] 68 + pub fn parse_created_by<'a, B>(root_dict: &'a dyn BDictAccess) -> 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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 74 - pub fn parse_encoding<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stdout] 74 + pub fn parse_encoding<'a, B>(root_dict: &'a dyn BDictAccess) -> 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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 80 - pub fn parse_info_bencode<'a, B>(root_dict: &'a BDictAccess) -> ParseResult<&B> [INFO] [stdout] 80 + pub fn parse_info_bencode<'a, B>(root_dict: &'a dyn BDictAccess) -> 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(info_dict: &BDictAccess) -> ParseResult [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 88 - pub fn parse_piece_length(info_dict: &BDictAccess) -> ParseResult [INFO] [stdout] 88 + pub fn parse_piece_length(info_dict: &dyn BDictAccess) -> ParseResult [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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 94 - pub fn parse_pieces<'a, B>(info_dict: &'a BDictAccess) -> ParseResult<&'a [u8]> [INFO] [stdout] 94 + pub fn parse_pieces<'a, B>(info_dict: &'a dyn BDictAccess) -> 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(info_dict: &BDictAccess) -> Option [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 100 - pub fn parse_private(info_dict: &BDictAccess) -> Option [INFO] [stdout] 100 + pub fn parse_private(info_dict: &dyn BDictAccess) -> Option [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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 106 - pub fn parse_name<'a, B>(info_dict: &'a BDictAccess) -> ParseResult<&'a str> [INFO] [stdout] 106 + pub fn parse_name<'a, B>(info_dict: &'a dyn BDictAccess) -> 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:81 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&BListAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 112 - pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stdout] 112 + pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&dyn BListAccess> [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(info_dict: &BDictAccess) -> ParseResult<&BListAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 112 - pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stdout] 112 + pub fn parse_files_list(info_dict: &dyn BDictAccess) -> ParseResult<&BListAccess> [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(file_bencode: &B) -> ParseResult<&BDictAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 120 - pub fn parse_file_dict(file_bencode: &B) -> ParseResult<&BDictAccess> [INFO] [stdout] 120 + pub fn parse_file_dict(file_bencode: &B) -> ParseResult<&dyn BDictAccess> [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(info_or_file_dict: &BDictAccess) -> ParseResult [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 126 - pub fn parse_length(info_or_file_dict: &BDictAccess) -> ParseResult [INFO] [stdout] 126 + pub fn parse_length(info_or_file_dict: &dyn BDictAccess) -> ParseResult [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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 132 - pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a BDictAccess) -> Option<&'a [u8]> [INFO] [stdout] 132 + pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a dyn BDictAccess) -> 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:80 [INFO] [stdout] | [INFO] [stdout] 138 | pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&BListAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 138 - pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stdout] 138 + pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&dyn BListAccess> [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(file_dict: &BDictAccess) -> ParseResult<&BListAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 138 - pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stdout] 138 + pub fn parse_path_list(file_dict: &dyn BDictAccess) -> ParseResult<&BListAccess> [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `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` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 57 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling crossbeam-channel v0.5.4 [INFO] [stderr] Compiling pbr v1.0.4 [INFO] [stderr] Compiling bip_metainfo v0.12.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:80:29 [INFO] [stdout] | [INFO] [stdout] 80 | let absolute_path = try!(path.as_ref().canonicalize()); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:129:25 [INFO] [stdout] | [INFO] [stdout] 129 | let entry = try!(res_entry); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:130:34 [INFO] [stdout] | [INFO] [stdout] 130 | let entry_metadata = try!(entry.metadata()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:153:13 [INFO] [stdout] | [INFO] [stdout] 153 | try!(callback(PieceAccess::Compute(&mut file))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:150:25 [INFO] [stdout] | [INFO] [stdout] 150 | let entry = try!(res_entry); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/accessor.rs:151:28 [INFO] [stdout] | [INFO] [stdout] 151 | let mut file = try!(File::open(entry.path())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/buffer.rs:66:30 [INFO] [stdout] | [INFO] [stdout] 66 | let new_bytes_read = try!(callback(&mut self.buffer[self.bytes_read..])); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/worker.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | try!(accessor.access_pieces(|piece_access| { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/worker.rs:103:25 [INFO] [stdout] | [INFO] [stdout] 103 | try!(curr_piece_buffer.write_bytes(|buffer| piece_region.read(buffer))) == 0; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/worker.rs:273:17 [INFO] [stdout] | [INFO] [stdout] 273 | try!(callback(PieceAccess::Compute(&mut next_region))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/mod.rs:136:24 [INFO] [stdout] | [INFO] [stdout] 136 | let accessor = try!(accessor.into_accessor()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/mod.rs:185:24 [INFO] [stdout] | [INFO] [stdout] 185 | let accessor = try!(accessor.into_accessor()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/mod.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 207 | try!(accessor.access_metadata(|len, path| { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/builder/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let pieces_list = try!(worker::start_hasher_workers(&accessor, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:91:24 [INFO] [stdout] | [INFO] [stdout] 91 | let root_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:92:21 [INFO] [stdout] | [INFO] [stdout] 92 | let root_dict = try!(parse::parse_root_dict(&root_bencode)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:100:24 [INFO] [stdout] | [INFO] [stdout] 100 | let info_bencode = try!(parse::parse_info_bencode(root_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:101:16 [INFO] [stdout] | [INFO] [stdout] 101 | let info = try!(parse_info_dictionary(info_bencode)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:224:13 [INFO] [stdout] | [INFO] [stdout] 224 | try!(callback(PieceAccess::PreComputed(ShaHash::from_hash(piece).unwrap()))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:233:24 [INFO] [stdout] | [INFO] [stdout] 233 | let info_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default())); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:242:21 [INFO] [stdout] | [INFO] [stdout] 242 | let info_dict = try!(parse::parse_root_dict(info_bencode)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:243:21 [INFO] [stdout] | [INFO] [stdout] 243 | let piece_len = try!(parse::parse_piece_length(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:246:18 [INFO] [stdout] | [INFO] [stdout] 246 | let pieces = try!(parse::parse_pieces(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:247:25 [INFO] [stdout] | [INFO] [stdout] 247 | let piece_buffers = try!(allocate_pieces(pieces)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:250:30 [INFO] [stdout] | [INFO] [stdout] 250 | let file_directory = try!(parse::parse_name(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:254:29 [INFO] [stdout] | [INFO] [stdout] 254 | let files_bencode = try!(parse::parse_files_list(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:258:29 [INFO] [stdout] | [INFO] [stdout] 258 | let file_dict = try!(parse::parse_file_dict(file_bencode)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let file = try!(File::as_multi_file(file_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:273:20 [INFO] [stdout] | [INFO] [stdout] 273 | let file = try!(File::as_single_file(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:327:22 [INFO] [stdout] | [INFO] [stdout] 327 | let length = try!(parse::parse_length(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:329:20 [INFO] [stdout] | [INFO] [stdout] 329 | let name = try!(parse::parse_name(info_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:341:22 [INFO] [stdout] | [INFO] [stdout] 341 | let length = try!(parse::parse_length(file_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:344:33 [INFO] [stdout] | [INFO] [stdout] 344 | let path_list_bencode = try!(parse::parse_path_list(file_dict)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/metainfo.rs:348:24 [INFO] [stdout] | [INFO] [stdout] 348 | let path = try!(parse::parse_path_str(path_bencode)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `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` (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] = note: `#[warn(bare_trait_objects)]` on by default [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 62 - Compute(&'a mut Read), [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(info_dict: &BDictAccess) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 287 - fn is_multi_file_torrent(info_dict: &BDictAccess) -> bool [INFO] [stdout] 287 + fn is_multi_file_torrent(info_dict: &dyn BDictAccess) -> 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(info_dict: &BDictAccess) -> ParseResult [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 325 - fn as_single_file(info_dict: &BDictAccess) -> ParseResult [INFO] [stdout] 325 + fn as_single_file(info_dict: &dyn BDictAccess) -> ParseResult [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(file_dict: &BDictAccess) -> ParseResult [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 339 - fn as_multi_file(file_dict: &BDictAccess) -> ParseResult [INFO] [stdout] 339 + fn as_multi_file(file_dict: &dyn BDictAccess) -> ParseResult [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(root_bencode: &B) -> ParseResult<&BDictAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 44 - pub fn parse_root_dict(root_bencode: &B) -> ParseResult<&BDictAccess> [INFO] [stdout] 44 + pub fn parse_root_dict(root_bencode: &B) -> ParseResult<&dyn BDictAccess> [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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 50 - pub fn parse_announce_url<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stdout] 50 + pub fn parse_announce_url<'a, B>(root_dict: &'a dyn BDictAccess) -> 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(root_dict: &BDictAccess) -> Option [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 56 - pub fn parse_creation_date(root_dict: &BDictAccess) -> Option [INFO] [stdout] 56 + pub fn parse_creation_date(root_dict: &dyn BDictAccess) -> Option [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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 62 - pub fn parse_comment<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stdout] 62 + pub fn parse_comment<'a, B>(root_dict: &'a dyn BDictAccess) -> 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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 68 - pub fn parse_created_by<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stdout] 68 + pub fn parse_created_by<'a, B>(root_dict: &'a dyn BDictAccess) -> 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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 74 - pub fn parse_encoding<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stdout] 74 + pub fn parse_encoding<'a, B>(root_dict: &'a dyn BDictAccess) -> 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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 80 - pub fn parse_info_bencode<'a, B>(root_dict: &'a BDictAccess) -> ParseResult<&B> [INFO] [stdout] 80 + pub fn parse_info_bencode<'a, B>(root_dict: &'a dyn BDictAccess) -> 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(info_dict: &BDictAccess) -> ParseResult [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 88 - pub fn parse_piece_length(info_dict: &BDictAccess) -> ParseResult [INFO] [stdout] 88 + pub fn parse_piece_length(info_dict: &dyn BDictAccess) -> ParseResult [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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 94 - pub fn parse_pieces<'a, B>(info_dict: &'a BDictAccess) -> ParseResult<&'a [u8]> [INFO] [stdout] 94 + pub fn parse_pieces<'a, B>(info_dict: &'a dyn BDictAccess) -> 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(info_dict: &BDictAccess) -> Option [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 100 - pub fn parse_private(info_dict: &BDictAccess) -> Option [INFO] [stdout] 100 + pub fn parse_private(info_dict: &dyn BDictAccess) -> Option [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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 106 - pub fn parse_name<'a, B>(info_dict: &'a BDictAccess) -> ParseResult<&'a str> [INFO] [stdout] 106 + pub fn parse_name<'a, B>(info_dict: &'a dyn BDictAccess) -> 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:81 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&BListAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 112 - pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stdout] 112 + pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&dyn BListAccess> [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(info_dict: &BDictAccess) -> ParseResult<&BListAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 112 - pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stdout] 112 + pub fn parse_files_list(info_dict: &dyn BDictAccess) -> ParseResult<&BListAccess> [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(file_bencode: &B) -> ParseResult<&BDictAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 120 - pub fn parse_file_dict(file_bencode: &B) -> ParseResult<&BDictAccess> [INFO] [stdout] 120 + pub fn parse_file_dict(file_bencode: &B) -> ParseResult<&dyn BDictAccess> [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(info_or_file_dict: &BDictAccess) -> ParseResult [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 126 - pub fn parse_length(info_or_file_dict: &BDictAccess) -> ParseResult [INFO] [stdout] 126 + pub fn parse_length(info_or_file_dict: &dyn BDictAccess) -> ParseResult [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) -> 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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 132 - pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a BDictAccess) -> Option<&'a [u8]> [INFO] [stdout] 132 + pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a dyn BDictAccess) -> 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:80 [INFO] [stdout] | [INFO] [stdout] 138 | pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&BListAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 138 - pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stdout] 138 + pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&dyn BListAccess> [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(file_dict: &BDictAccess) -> ParseResult<&BListAccess> [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 138 - pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stdout] 138 + pub fn parse_path_list(file_dict: &dyn BDictAccess) -> ParseResult<&BListAccess> [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `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` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stdout] --> src/builder/worker.rs:352:46 [INFO] [stdout] | [INFO] [stdout] 352 | for ®ion_length in region_lengths.into_iter() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(array_into_iter)]` on by default [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 352 | for ®ion_length in region_lengths.iter() { [INFO] [stdout] | ~~~~ [INFO] [stdout] help: or remove `.into_iter()` to iterate by value [INFO] [stdout] | [INFO] [stdout] 352 - for ®ion_length in region_lengths.into_iter() { [INFO] [stdout] 352 + for ®ion_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 ®ion_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 [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 366 | for ®ion_length in region_lengths.iter() { [INFO] [stdout] | ~~~~ [INFO] [stdout] help: or remove `.into_iter()` to iterate by value [INFO] [stdout] | [INFO] [stdout] 366 - for ®ion_length in region_lengths.into_iter() { [INFO] [stdout] 366 + for ®ion_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 ®ion_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 [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 381 | for ®ion_length in region_lengths.iter() { [INFO] [stdout] | ~~~~ [INFO] [stdout] help: or remove `.into_iter()` to iterate by value [INFO] [stdout] | [INFO] [stdout] 381 - for ®ion_length in region_lengths.into_iter() { [INFO] [stdout] 381 + for ®ion_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 ®ion_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 [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 396 | for ®ion_length in region_lengths.iter() { [INFO] [stdout] | ~~~~ [INFO] [stdout] help: or remove `.into_iter()` to iterate by value [INFO] [stdout] | [INFO] [stdout] 396 - for ®ion_length in region_lengths.into_iter() { [INFO] [stdout] 396 + for ®ion_length in region_lengths { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 62 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 5.84s [INFO] running `Command { std: "docker" "inspect" "7465cbe37c4ab08071041e5fd530631a9dc85df4572630c9dad2f17c7c81458f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7465cbe37c4ab08071041e5fd530631a9dc85df4572630c9dad2f17c7c81458f", kill_on_drop: false }` [INFO] [stdout] 7465cbe37c4ab08071041e5fd530631a9dc85df4572630c9dad2f17c7c81458f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-24/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-24/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=warn" "-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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] f206ae45478728c3c16b7b7c4e8702f02a081f25c801129dc6165655f589cc3b [INFO] running `Command { std: "docker" "start" "-a" "f206ae45478728c3c16b7b7c4e8702f02a081f25c801129dc6165655f589cc3b", kill_on_drop: false }` [INFO] [stderr] warning: `panic` setting is ignored for `bench` profile [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/accessor.rs:80:29 [INFO] [stderr] | [INFO] [stderr] 80 | let absolute_path = try!(path.as_ref().canonicalize()); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/accessor.rs:129:25 [INFO] [stderr] | [INFO] [stderr] 129 | let entry = try!(res_entry); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/accessor.rs:130:34 [INFO] [stderr] | [INFO] [stderr] 130 | let entry_metadata = try!(entry.metadata()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/accessor.rs:153:13 [INFO] [stderr] | [INFO] [stderr] 153 | try!(callback(PieceAccess::Compute(&mut file))); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/accessor.rs:150:25 [INFO] [stderr] | [INFO] [stderr] 150 | let entry = try!(res_entry); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/accessor.rs:151:28 [INFO] [stderr] | [INFO] [stderr] 151 | let mut file = try!(File::open(entry.path())); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/builder/buffer.rs:66:30 [INFO] [stderr] | [INFO] [stderr] 66 | let new_bytes_read = try!(callback(&mut self.buffer[self.bytes_read..])); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/builder/worker.rs:91:5 [INFO] [stderr] | [INFO] [stderr] 91 | try!(accessor.access_pieces(|piece_access| { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/builder/worker.rs:103:25 [INFO] [stderr] | [INFO] [stderr] 103 | try!(curr_piece_buffer.write_bytes(|buffer| piece_region.read(buffer))) == 0; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/builder/mod.rs:136:24 [INFO] [stderr] | [INFO] [stderr] 136 | let accessor = try!(accessor.into_accessor()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/builder/mod.rs:185:24 [INFO] [stderr] | [INFO] [stderr] 185 | let accessor = try!(accessor.into_accessor()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/builder/mod.rs:207:9 [INFO] [stderr] | [INFO] [stderr] 207 | try!(accessor.access_metadata(|len, path| { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/builder/mod.rs:219:27 [INFO] [stderr] | [INFO] [stderr] 219 | let pieces_list = try!(worker::start_hasher_workers(&accessor, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:91:24 [INFO] [stderr] | [INFO] [stderr] 91 | let root_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default())); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:92:21 [INFO] [stderr] | [INFO] [stderr] 92 | let root_dict = try!(parse::parse_root_dict(&root_bencode)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:100:24 [INFO] [stderr] | [INFO] [stderr] 100 | let info_bencode = try!(parse::parse_info_bencode(root_dict)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:101:16 [INFO] [stderr] | [INFO] [stderr] 101 | let info = try!(parse_info_dictionary(info_bencode)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:224:13 [INFO] [stderr] | [INFO] [stderr] 224 | try!(callback(PieceAccess::PreComputed(ShaHash::from_hash(piece).unwrap()))); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:233:24 [INFO] [stderr] | [INFO] [stderr] 233 | let info_bencode = try!(BencodeRef::decode(bytes, BDecodeOpt::default())); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:242:21 [INFO] [stderr] | [INFO] [stderr] 242 | let info_dict = try!(parse::parse_root_dict(info_bencode)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:243:21 [INFO] [stderr] | [INFO] [stderr] 243 | let piece_len = try!(parse::parse_piece_length(info_dict)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:246:18 [INFO] [stderr] | [INFO] [stderr] 246 | let pieces = try!(parse::parse_pieces(info_dict)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:247:25 [INFO] [stderr] | [INFO] [stderr] 247 | let piece_buffers = try!(allocate_pieces(pieces)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:250:30 [INFO] [stderr] | [INFO] [stderr] 250 | let file_directory = try!(parse::parse_name(info_dict)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:254:29 [INFO] [stderr] | [INFO] [stderr] 254 | let files_bencode = try!(parse::parse_files_list(info_dict)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:258:29 [INFO] [stderr] | [INFO] [stderr] 258 | let file_dict = try!(parse::parse_file_dict(file_bencode)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:259:24 [INFO] [stderr] | [INFO] [stderr] 259 | let file = try!(File::as_multi_file(file_dict)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:273:20 [INFO] [stderr] | [INFO] [stderr] 273 | let file = try!(File::as_single_file(info_dict)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:327:22 [INFO] [stderr] | [INFO] [stderr] 327 | let length = try!(parse::parse_length(info_dict)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:329:20 [INFO] [stderr] | [INFO] [stderr] 329 | let name = try!(parse::parse_name(info_dict)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:341:22 [INFO] [stderr] | [INFO] [stderr] 341 | let length = try!(parse::parse_length(file_dict)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:344:33 [INFO] [stderr] | [INFO] [stderr] 344 | let path_list_bencode = try!(parse::parse_path_list(file_dict)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/metainfo.rs:348:24 [INFO] [stderr] | [INFO] [stderr] 348 | let path = try!(parse::parse_path_str(path_bencode)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stderr] --> src/error.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | / error_chain! { [INFO] [stderr] 9 | | types { [INFO] [stderr] 10 | | ParseError, ParseErrorKind, ParseResultEx, ParseResult; [INFO] [stderr] 11 | | } [INFO] [stderr] ... | [INFO] [stderr] 27 | | } [INFO] [stderr] 28 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `impl_error_chain_processed` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/accessor.rs:62:21 [INFO] [stderr] | [INFO] [stderr] 62 | Compute(&'a mut Read), [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 62 - Compute(&'a mut Read), [INFO] [stderr] 62 + Compute(&'a mut dyn Read), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/metainfo.rs:287:41 [INFO] [stderr] | [INFO] [stderr] 287 | fn is_multi_file_torrent(info_dict: &BDictAccess) -> bool [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 287 - fn is_multi_file_torrent(info_dict: &BDictAccess) -> bool [INFO] [stderr] 287 + fn is_multi_file_torrent(info_dict: &dyn BDictAccess) -> bool [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/metainfo.rs:325:38 [INFO] [stderr] | [INFO] [stderr] 325 | fn as_single_file(info_dict: &BDictAccess) -> ParseResult [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 325 - fn as_single_file(info_dict: &BDictAccess) -> ParseResult [INFO] [stderr] 325 + fn as_single_file(info_dict: &dyn BDictAccess) -> ParseResult [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/metainfo.rs:339:37 [INFO] [stderr] | [INFO] [stderr] 339 | fn as_multi_file(file_dict: &BDictAccess) -> ParseResult [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 339 - fn as_multi_file(file_dict: &BDictAccess) -> ParseResult [INFO] [stderr] 339 + fn as_multi_file(file_dict: &dyn BDictAccess) -> ParseResult [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:44:61 [INFO] [stderr] | [INFO] [stderr] 44 | pub fn parse_root_dict(root_bencode: &B) -> ParseResult<&BDictAccess> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 44 - pub fn parse_root_dict(root_bencode: &B) -> ParseResult<&BDictAccess> [INFO] [stderr] 44 + pub fn parse_root_dict(root_bencode: &B) -> ParseResult<&dyn BDictAccess> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:50:49 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn parse_announce_url<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 50 - pub fn parse_announce_url<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stderr] 50 + pub fn parse_announce_url<'a, B>(root_dict: &'a dyn BDictAccess) -> Option<&'a str> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:56:43 [INFO] [stderr] | [INFO] [stderr] 56 | pub fn parse_creation_date(root_dict: &BDictAccess) -> Option [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 56 - pub fn parse_creation_date(root_dict: &BDictAccess) -> Option [INFO] [stderr] 56 + pub fn parse_creation_date(root_dict: &dyn BDictAccess) -> Option [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:62:44 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn parse_comment<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 62 - pub fn parse_comment<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stderr] 62 + pub fn parse_comment<'a, B>(root_dict: &'a dyn BDictAccess) -> Option<&'a str> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:68:47 [INFO] [stderr] | [INFO] [stderr] 68 | pub fn parse_created_by<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 68 - pub fn parse_created_by<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stderr] 68 + pub fn parse_created_by<'a, B>(root_dict: &'a dyn BDictAccess) -> Option<&'a str> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:74:45 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn parse_encoding<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 74 - pub fn parse_encoding<'a, B>(root_dict: &'a BDictAccess) -> Option<&'a str> [INFO] [stderr] 74 + pub fn parse_encoding<'a, B>(root_dict: &'a dyn BDictAccess) -> Option<&'a str> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:80:49 [INFO] [stderr] | [INFO] [stderr] 80 | pub fn parse_info_bencode<'a, B>(root_dict: &'a BDictAccess) -> ParseResult<&B> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 80 - pub fn parse_info_bencode<'a, B>(root_dict: &'a BDictAccess) -> ParseResult<&B> [INFO] [stderr] 80 + pub fn parse_info_bencode<'a, B>(root_dict: &'a dyn BDictAccess) -> ParseResult<&B> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:88:42 [INFO] [stderr] | [INFO] [stderr] 88 | pub fn parse_piece_length(info_dict: &BDictAccess) -> ParseResult [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 88 - pub fn parse_piece_length(info_dict: &BDictAccess) -> ParseResult [INFO] [stderr] 88 + pub fn parse_piece_length(info_dict: &dyn BDictAccess) -> ParseResult [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:94:43 [INFO] [stderr] | [INFO] [stderr] 94 | pub fn parse_pieces<'a, B>(info_dict: &'a BDictAccess) -> ParseResult<&'a [u8]> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 94 - pub fn parse_pieces<'a, B>(info_dict: &'a BDictAccess) -> ParseResult<&'a [u8]> [INFO] [stderr] 94 + pub fn parse_pieces<'a, B>(info_dict: &'a dyn BDictAccess) -> ParseResult<&'a [u8]> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:100:37 [INFO] [stderr] | [INFO] [stderr] 100 | pub fn parse_private(info_dict: &BDictAccess) -> Option [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 100 - pub fn parse_private(info_dict: &BDictAccess) -> Option [INFO] [stderr] 100 + pub fn parse_private(info_dict: &dyn BDictAccess) -> Option [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:106:41 [INFO] [stderr] | [INFO] [stderr] 106 | pub fn parse_name<'a, B>(info_dict: &'a BDictAccess) -> ParseResult<&'a str> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 106 - pub fn parse_name<'a, B>(info_dict: &'a BDictAccess) -> ParseResult<&'a str> [INFO] [stderr] 106 + pub fn parse_name<'a, B>(info_dict: &'a dyn BDictAccess) -> ParseResult<&'a str> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:112:81 [INFO] [stderr] | [INFO] [stderr] 112 | pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 112 - pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stderr] 112 + pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&dyn BListAccess> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:112:40 [INFO] [stderr] | [INFO] [stderr] 112 | pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 112 - pub fn parse_files_list(info_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stderr] 112 + pub fn parse_files_list(info_dict: &dyn BDictAccess) -> ParseResult<&BListAccess> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:120:61 [INFO] [stderr] | [INFO] [stderr] 120 | pub fn parse_file_dict(file_bencode: &B) -> ParseResult<&BDictAccess> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 120 - pub fn parse_file_dict(file_bencode: &B) -> ParseResult<&BDictAccess> [INFO] [stderr] 120 + pub fn parse_file_dict(file_bencode: &B) -> ParseResult<&dyn BDictAccess> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:126:44 [INFO] [stderr] | [INFO] [stderr] 126 | pub fn parse_length(info_or_file_dict: &BDictAccess) -> ParseResult [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 126 - pub fn parse_length(info_or_file_dict: &BDictAccess) -> ParseResult [INFO] [stderr] 126 + pub fn parse_length(info_or_file_dict: &dyn BDictAccess) -> ParseResult [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:132:51 [INFO] [stderr] | [INFO] [stderr] 132 | pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a BDictAccess) -> Option<&'a [u8]> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 132 - pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a BDictAccess) -> Option<&'a [u8]> [INFO] [stderr] 132 + pub fn parse_md5sum<'a, B>(info_or_file_dict: &'a dyn BDictAccess) -> Option<&'a [u8]> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:138:80 [INFO] [stderr] | [INFO] [stderr] 138 | pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 138 - pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stderr] 138 + pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&dyn BListAccess> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parse.rs:138:39 [INFO] [stderr] | [INFO] [stderr] 138 | pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 138 - pub fn parse_path_list(file_dict: &BDictAccess) -> ParseResult<&BListAccess> [INFO] [stderr] 138 + pub fn parse_path_list(file_dict: &dyn BDictAccess) -> ParseResult<&BListAccess> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting [INFO] [stderr] --> src/error.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | / error_chain! { [INFO] [stderr] 9 | | types { [INFO] [stderr] 10 | | ParseError, ParseErrorKind, ParseResultEx, ParseResult; [INFO] [stderr] 11 | | } [INFO] [stderr] ... | [INFO] [stderr] 27 | | } [INFO] [stderr] 28 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `impl_error_chain_processed` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/builder/worker.rs:273:17 [INFO] [stderr] | [INFO] [stderr] 273 | try!(callback(PieceAccess::Compute(&mut next_region))); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stderr] --> src/builder/worker.rs:352:46 [INFO] [stderr] | [INFO] [stderr] 352 | for ®ion_length in region_lengths.into_iter() { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(array_into_iter)]` on by default [INFO] [stderr] = warning: this changes meaning in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stderr] | [INFO] [stderr] 352 | for ®ion_length in region_lengths.iter() { [INFO] [stderr] | ~~~~ [INFO] [stderr] help: or remove `.into_iter()` to iterate by value [INFO] [stderr] | [INFO] [stderr] 352 - for ®ion_length in region_lengths.into_iter() { [INFO] [stderr] 352 + for ®ion_length in region_lengths { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stderr] --> src/builder/worker.rs:366:46 [INFO] [stderr] | [INFO] [stderr] 366 | for ®ion_length in region_lengths.into_iter() { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this changes meaning in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stderr] | [INFO] [stderr] 366 | for ®ion_length in region_lengths.iter() { [INFO] [stderr] | ~~~~ [INFO] [stderr] help: or remove `.into_iter()` to iterate by value [INFO] [stderr] | [INFO] [stderr] 366 - for ®ion_length in region_lengths.into_iter() { [INFO] [stderr] 366 + for ®ion_length in region_lengths { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stderr] --> src/builder/worker.rs:381:46 [INFO] [stderr] | [INFO] [stderr] 381 | for ®ion_length in region_lengths.into_iter() { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this changes meaning in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stderr] | [INFO] [stderr] 381 | for ®ion_length in region_lengths.iter() { [INFO] [stderr] | ~~~~ [INFO] [stderr] help: or remove `.into_iter()` to iterate by value [INFO] [stderr] | [INFO] [stderr] 381 - for ®ion_length in region_lengths.into_iter() { [INFO] [stderr] 381 + for ®ion_length in region_lengths { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <[T; N] as IntoIterator>::into_iter in Rust 2021 [INFO] [stderr] --> src/builder/worker.rs:396:46 [INFO] [stderr] | [INFO] [stderr] 396 | for ®ion_length in region_lengths.into_iter() { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this changes meaning in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stderr] | [INFO] [stderr] 396 | for ®ion_length in region_lengths.iter() { [INFO] [stderr] | ~~~~ [INFO] [stderr] help: or remove `.into_iter()` to iterate by value [INFO] [stderr] | [INFO] [stderr] 396 - for ®ion_length in region_lengths.into_iter() { [INFO] [stderr] 396 + for ®ion_length in region_lengths { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `bip_metainfo` (lib) generated 57 warnings [INFO] [stderr] warning: `bip_metainfo` (lib test) generated 62 warnings (57 duplicates) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.03s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/bip_metainfo-f562612ccc2b5a84) [INFO] [stdout] [INFO] [stdout] running 25 tests [INFO] [stderr] thread panicked while panicking. aborting. [INFO] [stderr] error: test failed, to rerun pass '--lib' [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `/opt/rustwide/target/debug/deps/bip_metainfo-f562612ccc2b5a84` (signal: 6, SIGABRT: process abort signal) [INFO] running `Command { std: "docker" "inspect" "f206ae45478728c3c16b7b7c4e8702f02a081f25c801129dc6165655f589cc3b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f206ae45478728c3c16b7b7c4e8702f02a081f25c801129dc6165655f589cc3b", kill_on_drop: false }` [INFO] [stdout] f206ae45478728c3c16b7b7c4e8702f02a081f25c801129dc6165655f589cc3b