[INFO] cloning repository https://github.com/3541/bt [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/3541/bt" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F3541%2Fbt"` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F3541%2Fbt'... [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 5fd7a61201e34f1a7e0a9ea237cdc54f1129fb1f [INFO] checking 3541/bt against try#ea663bba38739867a4b75ac820991b4f5d093c3b for pr-62262-1 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F3541%2Fbt" "/workspace/builds/worker-14/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-14/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/3541/bt on toolchain ea663bba38739867a4b75ac820991b4f5d093c3b [INFO] running `"/workspace/cargo-home/bin/cargo" "+ea663bba38739867a4b75ac820991b4f5d093c3b" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/3541/bt [INFO] finished tweaking git repo https://github.com/3541/bt [INFO] tweaked toml for git repo https://github.com/3541/bt written to /workspace/builds/worker-14/source/Cargo.toml [INFO] crate git repo https://github.com/3541/bt already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+ea663bba38739867a4b75ac820991b4f5d093c3b" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+ea663bba38739867a4b75ac820991b4f5d093c3b" "check" "--frozen" "--all" "--all-targets"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 19890fd6d92d74e020020d3cd941d857920ee7c6aae1b23627dcfe84f94115ec [INFO] running `"docker" "start" "-a" "19890fd6d92d74e020020d3cd941d857920ee7c6aae1b23627dcfe84f94115ec"` [INFO] [stderr] Checking bt v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unused import: `std::io` [INFO] [stderr] --> src/main.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::io; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/torrent/bencode/mod.rs:46:25 [INFO] [stderr] | [INFO] [stderr] 46 | x @ '0' ... '9' => { acc.push(x as char) }, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/torrent/bencode/mod.rs:82:21 [INFO] [stderr] | [INFO] [stderr] 82 | '0' ... '9' => { ret.push(match ByteString::from_string((&text[i..]).to_vec()) { Ok((x, n)) => { i += n; len += n; x }, Err(e) => { return Err(e) } }); }, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/torrent/bencode/mod.rs:103:24 [INFO] [stderr] | [INFO] [stderr] 103 | if let '0' ... '9' = text[i] as char {} else { return Err(format!("Malformed key field. Keys must be bencode strings. Unexpected character {:?}", text[i] as char)); } [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/torrent/bencode/mod.rs:120:21 [INFO] [stderr] | [INFO] [stderr] 120 | '0' ... '9' => { match ByteString::from_string((&text[i..]).to_vec()) { Ok((x, n)) => { i += n; len += n; x}, Err(e) => { return Err(e) }, } }, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/torrent/bencode/mod.rs:140:16 [INFO] [stderr] | [INFO] [stderr] 140 | if let '0' ... '9' = text[0] as char {} else { return Err("Malformed number.".to_string()); } [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::*` [INFO] [stderr] --> src/torrent/bencode/mod.rs:155:9 [INFO] [stderr] | [INFO] [stderr] 155 | use super::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/torrent/bencode/mod.rs:156:9 [INFO] [stderr] | [INFO] [stderr] 156 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude::*` [INFO] [stderr] --> src/torrent/bencode/mod.rs:157:9 [INFO] [stderr] | [INFO] [stderr] 157 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io` [INFO] [stderr] --> src/torrent/mod.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::io; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io` [INFO] [stderr] --> src/main.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::io; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/torrent/bencode/mod.rs:46:25 [INFO] [stderr] | [INFO] [stderr] 46 | x @ '0' ... '9' => { acc.push(x as char) }, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/torrent/bencode/mod.rs:82:21 [INFO] [stderr] | [INFO] [stderr] 82 | '0' ... '9' => { ret.push(match ByteString::from_string((&text[i..]).to_vec()) { Ok((x, n)) => { i += n; len += n; x }, Err(e) => { return Err(e) } }); }, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/torrent/bencode/mod.rs:103:24 [INFO] [stderr] | [INFO] [stderr] 103 | if let '0' ... '9' = text[i] as char {} else { return Err(format!("Malformed key field. Keys must be bencode strings. Unexpected character {:?}", text[i] as char)); } [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/torrent/bencode/mod.rs:120:21 [INFO] [stderr] | [INFO] [stderr] 120 | '0' ... '9' => { match ByteString::from_string((&text[i..]).to_vec()) { Ok((x, n)) => { i += n; len += n; x}, Err(e) => { return Err(e) }, } }, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/torrent/bencode/mod.rs:140:16 [INFO] [stderr] | [INFO] [stderr] 140 | if let '0' ... '9' = text[0] as char {} else { return Err("Malformed number.".to_string()); } [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io` [INFO] [stderr] --> src/torrent/mod.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::io; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/torrent/mod.rs:67:41 [INFO] [stderr] | [INFO] [stderr] 67 | Ok((BencodeObject::Dict(d), len)) => { [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_len` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `s` [INFO] [stderr] --> src/torrent/mod.rs:114:42 [INFO] [stderr] | [INFO] [stderr] 114 | ... Some(s) => {}, [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_s` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `file` [INFO] [stderr] --> src/torrent/mod.rs:131:22 [INFO] [stderr] | [INFO] [stderr] 131 | pub fn new_multi(file: File) -> Torrent { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_file` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/torrent/bencode/mod.rs:150:13 [INFO] [stderr] | [INFO] [stderr] 150 | Err(e) => Err("Malformed string. Could not parse length".to_string()), [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_e` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `sign` is never read [INFO] [stderr] --> src/torrent/bencode/mod.rs:32:17 [INFO] [stderr] | [INFO] [stderr] 32 | let mut sign = 1; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/torrent/bencode/mod.rs:48:17 [INFO] [stderr] | [INFO] [stderr] 48 | e => { return Err("Unexpected character or field not delimited correctly.".to_string()) }, [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_e` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/torrent/bencode/mod.rs:53:17 [INFO] [stderr] | [INFO] [stderr] 53 | Err(e) => Err("Malformed number. Did not parse.".to_string()), [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_e` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/torrent/bencode/mod.rs:62:17 [INFO] [stderr] | [INFO] [stderr] 62 | Err(e) => { return Err("Could not parse string length.".to_string()); }, [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_e` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `key` is never read [INFO] [stderr] --> src/torrent/bencode/mod.rs:108:21 [INFO] [stderr] | [INFO] [stderr] 108 | let mut key = ByteString::new(); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `klen` is never read [INFO] [stderr] --> src/torrent/bencode/mod.rs:109:21 [INFO] [stderr] | [INFO] [stderr] 109 | let mut klen:usize = 0; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/main.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/torrent/mod.rs:137:5 [INFO] [stderr] | [INFO] [stderr] 137 | unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] [INFO] [stderr] warning: field is never used: `info` [INFO] [stderr] --> src/torrent/mod.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | info: Info, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `announce` [INFO] [stderr] --> src/torrent/mod.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | announce: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `creation_date` [INFO] [stderr] --> src/torrent/mod.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | creation_date: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `created_by` [INFO] [stderr] --> src/torrent/mod.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | created_by: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `comment` [INFO] [stderr] --> src/torrent/mod.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | comment: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `info` [INFO] [stderr] --> src/torrent/mod.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | info: InfoBuilder, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `created_by` [INFO] [stderr] --> src/torrent/mod.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | created_by: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `created_by` [INFO] [stderr] --> src/torrent/mod.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | fn created_by(&mut self, c: String) -> &mut TorrentBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `info` [INFO] [stderr] --> src/torrent/mod.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | fn info(&mut self, i: InfoBuilder) -> &mut TorrentBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `finalize` [INFO] [stderr] --> src/torrent/mod.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | fn finalize(self) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_multi` [INFO] [stderr] --> src/torrent/mod.rs:131:5 [INFO] [stderr] | [INFO] [stderr] 131 | pub fn new_multi(file: File) -> Torrent { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print_type` [INFO] [stderr] --> src/torrent/mod.rs:136:1 [INFO] [stderr] | [INFO] [stderr] 136 | fn print_type(_: &T) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `piece_length` [INFO] [stderr] --> src/torrent/mod.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | piece_length: u32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `pieces` [INFO] [stderr] --> src/torrent/mod.rs:143:5 [INFO] [stderr] | [INFO] [stderr] 143 | pieces: Vec<[u8; 20]>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `private` [INFO] [stderr] --> src/torrent/mod.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | private: bool, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `files` [INFO] [stderr] --> src/torrent/mod.rs:145:5 [INFO] [stderr] | [INFO] [stderr] 145 | files: TargetFiles, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `piece_length` [INFO] [stderr] --> src/torrent/mod.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | piece_length: u32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `pieces` [INFO] [stderr] --> src/torrent/mod.rs:150:5 [INFO] [stderr] | [INFO] [stderr] 150 | pieces: Vec<[u8; 20]>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `private` [INFO] [stderr] --> src/torrent/mod.rs:151:5 [INFO] [stderr] | [INFO] [stderr] 151 | private: bool, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `files` [INFO] [stderr] --> src/torrent/mod.rs:152:5 [INFO] [stderr] | [INFO] [stderr] 152 | files: TargetFiles, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `piece_length` [INFO] [stderr] --> src/torrent/mod.rs:160:5 [INFO] [stderr] | [INFO] [stderr] 160 | fn piece_length(&mut self, p: u32) -> &mut InfoBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `pieces` [INFO] [stderr] --> src/torrent/mod.rs:165:5 [INFO] [stderr] | [INFO] [stderr] 165 | fn pieces(&mut self, p: Vec<[u8; 20]>) -> &mut InfoBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `private` [INFO] [stderr] --> src/torrent/mod.rs:170:5 [INFO] [stderr] | [INFO] [stderr] 170 | fn private(&mut self, p: bool) -> &mut InfoBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `files` [INFO] [stderr] --> src/torrent/mod.rs:175:5 [INFO] [stderr] | [INFO] [stderr] 175 | fn files(&mut self, f: TargetFiles) -> &mut InfoBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `finalize` [INFO] [stderr] --> src/torrent/mod.rs:180:5 [INFO] [stderr] | [INFO] [stderr] 180 | fn finalize(self) -> Info { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Single` [INFO] [stderr] --> src/torrent/mod.rs:186:5 [INFO] [stderr] | [INFO] [stderr] 186 | Single(TargetFile), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `name` [INFO] [stderr] --> src/torrent/mod.rs:187:13 [INFO] [stderr] | [INFO] [stderr] 187 | Multi { name: String, files: Vec }, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `files` [INFO] [stderr] --> src/torrent/mod.rs:187:27 [INFO] [stderr] | [INFO] [stderr] 187 | Multi { name: String, files: Vec }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `name` [INFO] [stderr] --> src/torrent/mod.rs:192:5 [INFO] [stderr] | [INFO] [stderr] 192 | name: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `length` [INFO] [stderr] --> src/torrent/mod.rs:193:5 [INFO] [stderr] | [INFO] [stderr] 193 | length: u64, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `md5sum` [INFO] [stderr] --> src/torrent/mod.rs:194:5 [INFO] [stderr] | [INFO] [stderr] 194 | md5sum: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `path` [INFO] [stderr] --> src/torrent/mod.rs:195:5 [INFO] [stderr] | [INFO] [stderr] 195 | path: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print_type` [INFO] [stderr] --> src/main.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 | fn print_type(_: &T) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused attribute [INFO] [stderr] --> src/torrent/mod.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | #![feature(core_intrinsics)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_attributes)]` on by default [INFO] [stderr] [INFO] [stderr] warning: crate-level attribute should be in the root module [INFO] [stderr] --> src/torrent/mod.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | #![feature(core_intrinsics)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | file.read_to_end(&mut contents); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/torrent/mod.rs:67:41 [INFO] [stderr] | [INFO] [stderr] 67 | Ok((BencodeObject::Dict(d), len)) => { [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_len` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `s` [INFO] [stderr] --> src/torrent/mod.rs:114:42 [INFO] [stderr] | [INFO] [stderr] 114 | ... Some(s) => {}, [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_s` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `file` [INFO] [stderr] --> src/torrent/mod.rs:131:22 [INFO] [stderr] | [INFO] [stderr] 131 | pub fn new_multi(file: File) -> Torrent { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_file` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/torrent/bencode/mod.rs:150:13 [INFO] [stderr] | [INFO] [stderr] 150 | Err(e) => Err("Malformed string. Could not parse length".to_string()), [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_e` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `sign` is never read [INFO] [stderr] --> src/torrent/bencode/mod.rs:32:17 [INFO] [stderr] | [INFO] [stderr] 32 | let mut sign = 1; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/torrent/bencode/mod.rs:48:17 [INFO] [stderr] | [INFO] [stderr] 48 | e => { return Err("Unexpected character or field not delimited correctly.".to_string()) }, [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_e` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/torrent/bencode/mod.rs:53:17 [INFO] [stderr] | [INFO] [stderr] 53 | Err(e) => Err("Malformed number. Did not parse.".to_string()), [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_e` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/torrent/bencode/mod.rs:62:17 [INFO] [stderr] | [INFO] [stderr] 62 | Err(e) => { return Err("Could not parse string length.".to_string()); }, [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_e` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `key` is never read [INFO] [stderr] --> src/torrent/bencode/mod.rs:108:21 [INFO] [stderr] | [INFO] [stderr] 108 | let mut key = ByteString::new(); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `klen` is never read [INFO] [stderr] --> src/torrent/bencode/mod.rs:109:21 [INFO] [stderr] | [INFO] [stderr] 109 | let mut klen:usize = 0; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/torrent/bencode/mod.rs:227:38 [INFO] [stderr] | [INFO] [stderr] 227 | (BencodeObject::Dict(d), len) => { [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_len` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `len` [INFO] [stderr] --> src/torrent/bencode/mod.rs:259:37 [INFO] [stderr] | [INFO] [stderr] 259 | (BencodeObject::Dict(d), len) => { [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_len` [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/main.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/torrent/mod.rs:137:5 [INFO] [stderr] | [INFO] [stderr] 137 | unsafe { [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] [INFO] [stderr] warning: field is never used: `info` [INFO] [stderr] --> src/torrent/mod.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | info: Info, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `announce` [INFO] [stderr] --> src/torrent/mod.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | announce: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `creation_date` [INFO] [stderr] --> src/torrent/mod.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | creation_date: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `created_by` [INFO] [stderr] --> src/torrent/mod.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | created_by: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `comment` [INFO] [stderr] --> src/torrent/mod.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | comment: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `info` [INFO] [stderr] --> src/torrent/mod.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | info: InfoBuilder, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `created_by` [INFO] [stderr] --> src/torrent/mod.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | created_by: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `created_by` [INFO] [stderr] --> src/torrent/mod.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | fn created_by(&mut self, c: String) -> &mut TorrentBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `info` [INFO] [stderr] --> src/torrent/mod.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | fn info(&mut self, i: InfoBuilder) -> &mut TorrentBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `finalize` [INFO] [stderr] --> src/torrent/mod.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | fn finalize(self) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_multi` [INFO] [stderr] --> src/torrent/mod.rs:131:5 [INFO] [stderr] | [INFO] [stderr] 131 | pub fn new_multi(file: File) -> Torrent { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print_type` [INFO] [stderr] --> src/torrent/mod.rs:136:1 [INFO] [stderr] | [INFO] [stderr] 136 | fn print_type(_: &T) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `piece_length` [INFO] [stderr] --> src/torrent/mod.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | piece_length: u32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `pieces` [INFO] [stderr] --> src/torrent/mod.rs:143:5 [INFO] [stderr] | [INFO] [stderr] 143 | pieces: Vec<[u8; 20]>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `private` [INFO] [stderr] --> src/torrent/mod.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | private: bool, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `files` [INFO] [stderr] --> src/torrent/mod.rs:145:5 [INFO] [stderr] | [INFO] [stderr] 145 | files: TargetFiles, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `piece_length` [INFO] [stderr] --> src/torrent/mod.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | piece_length: u32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `pieces` [INFO] [stderr] --> src/torrent/mod.rs:150:5 [INFO] [stderr] | [INFO] [stderr] 150 | pieces: Vec<[u8; 20]>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `private` [INFO] [stderr] --> src/torrent/mod.rs:151:5 [INFO] [stderr] | [INFO] [stderr] 151 | private: bool, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `files` [INFO] [stderr] --> src/torrent/mod.rs:152:5 [INFO] [stderr] | [INFO] [stderr] 152 | files: TargetFiles, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `piece_length` [INFO] [stderr] --> src/torrent/mod.rs:160:5 [INFO] [stderr] | [INFO] [stderr] 160 | fn piece_length(&mut self, p: u32) -> &mut InfoBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `pieces` [INFO] [stderr] --> src/torrent/mod.rs:165:5 [INFO] [stderr] | [INFO] [stderr] 165 | fn pieces(&mut self, p: Vec<[u8; 20]>) -> &mut InfoBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `private` [INFO] [stderr] --> src/torrent/mod.rs:170:5 [INFO] [stderr] | [INFO] [stderr] 170 | fn private(&mut self, p: bool) -> &mut InfoBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `files` [INFO] [stderr] --> src/torrent/mod.rs:175:5 [INFO] [stderr] | [INFO] [stderr] 175 | fn files(&mut self, f: TargetFiles) -> &mut InfoBuilder { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `finalize` [INFO] [stderr] --> src/torrent/mod.rs:180:5 [INFO] [stderr] | [INFO] [stderr] 180 | fn finalize(self) -> Info { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Single` [INFO] [stderr] --> src/torrent/mod.rs:186:5 [INFO] [stderr] | [INFO] [stderr] 186 | Single(TargetFile), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `name` [INFO] [stderr] --> src/torrent/mod.rs:187:13 [INFO] [stderr] | [INFO] [stderr] 187 | Multi { name: String, files: Vec }, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `files` [INFO] [stderr] --> src/torrent/mod.rs:187:27 [INFO] [stderr] | [INFO] [stderr] 187 | Multi { name: String, files: Vec }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `name` [INFO] [stderr] --> src/torrent/mod.rs:192:5 [INFO] [stderr] | [INFO] [stderr] 192 | name: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `length` [INFO] [stderr] --> src/torrent/mod.rs:193:5 [INFO] [stderr] | [INFO] [stderr] 193 | length: u64, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `md5sum` [INFO] [stderr] --> src/torrent/mod.rs:194:5 [INFO] [stderr] | [INFO] [stderr] 194 | md5sum: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `path` [INFO] [stderr] --> src/torrent/mod.rs:195:5 [INFO] [stderr] | [INFO] [stderr] 195 | path: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print_type` [INFO] [stderr] --> src/main.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 | fn print_type(_: &T) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused attribute [INFO] [stderr] --> src/torrent/mod.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | #![feature(core_intrinsics)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_attributes)]` on by default [INFO] [stderr] [INFO] [stderr] warning: crate-level attribute should be in the root module [INFO] [stderr] --> src/torrent/mod.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | #![feature(core_intrinsics)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | file.read_to_end(&mut contents); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/torrent/bencode/mod.rs:256:8 [INFO] [stderr] | [INFO] [stderr] 256 | file.read_to_end(&mut contents); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.34s [INFO] running `"docker" "inspect" "19890fd6d92d74e020020d3cd941d857920ee7c6aae1b23627dcfe84f94115ec"` [INFO] running `"docker" "rm" "-f" "19890fd6d92d74e020020d3cd941d857920ee7c6aae1b23627dcfe84f94115ec"` [INFO] [stdout] 19890fd6d92d74e020020d3cd941d857920ee7c6aae1b23627dcfe84f94115ec