[INFO] cloning repository https://github.com/ksnll/furia
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ksnll/furia" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fksnll%2Ffuria", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fksnll%2Ffuria'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 50921389629ffad195fe66df40b5da50e48e59df
[INFO] testing ksnll/furia against try#bd7d74411512a3dd3b35d2f699c51dd2557c7e7e+cargoflags=-Zbuild-dir-new-layout for pr-149852-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fksnll%2Ffuria" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ksnll/furia
[INFO] finished tweaking git repo https://github.com/ksnll/furia
[INFO] tweaked toml for git repo https://github.com/ksnll/furia written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ksnll/furia on toolchain bd7d74411512a3dd3b35d2f699c51dd2557c7e7e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ksnll/furia already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 91f859321c8953b8cc5a6c9024030b78e82b8c454370065a81a447057cba6b2d
[INFO] running `Command { std: "docker" "start" "-a" "91f859321c8953b8cc5a6c9024030b78e82b8c454370065a81a447057cba6b2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "91f859321c8953b8cc5a6c9024030b78e82b8c454370065a81a447057cba6b2d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "91f859321c8953b8cc5a6c9024030b78e82b8c454370065a81a447057cba6b2d", kill_on_drop: false }`
[INFO] [stdout] 91f859321c8953b8cc5a6c9024030b78e82b8c454370065a81a447057cba6b2d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "build" "--frozen" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] a6c29a17b9d0b6bd9f22c3c140ee11d666756129d3461a70f4f44b7f9e29734a
[INFO] running `Command { std: "docker" "start" "-a" "a6c29a17b9d0b6bd9f22c3c140ee11d666756129d3461a70f4f44b7f9e29734a", kill_on_drop: false }`
[INFO] [stderr]    Compiling tracing-core v0.1.32
[INFO] [stderr]    Compiling syn v2.0.48
[INFO] [stderr]    Compiling parking_lot_core v0.9.9
[INFO] [stderr]    Compiling openssl-sys v0.9.98
[INFO] [stderr]    Compiling getrandom v0.2.12
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]    Compiling overload v0.1.1
[INFO] [stderr]    Compiling thread_local v1.1.7
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling nu-ansi-term v0.46.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling openssl v0.10.62
[INFO] [stderr]    Compiling native-tls v0.2.11
[INFO] [stderr]    Compiling parking_lot v0.12.1
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling tracing-subscriber v0.3.18
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling tokio-macros v2.2.0
[INFO] [stderr]    Compiling serde_derive v1.0.195
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling num-derive v0.4.1
[INFO] [stderr]    Compiling tokio v1.35.1
[INFO] [stderr]    Compiling futures-util v0.3.30
[INFO] [stderr]    Compiling tracing v0.1.40
[INFO] [stderr]    Compiling serde v1.0.195
[INFO] [stderr]    Compiling futures-executor v0.3.30
[INFO] [stderr]    Compiling futures v0.3.30
[INFO] [stderr]    Compiling tokio-util v0.7.10
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling h2 v0.3.24
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_bytes v0.11.14
[INFO] [stderr]    Compiling serde_json v1.0.111
[INFO] [stderr]    Compiling url v2.5.0
[INFO] [stderr]    Compiling serde_bencode v0.2.4
[INFO] [stderr]    Compiling hyper v0.14.28
[INFO] [stderr]    Compiling hyper-tls v0.5.0
[INFO] [stderr]    Compiling reqwest v0.11.23
[INFO] [stderr]    Compiling furia v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Rng` and `distributions::Alphanumeric`
[INFO] [stdout]  --> src/tracker.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{distributions::Alphanumeric, Rng};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ByteArray`
[INFO] [stdout]   --> src/tracker.rs:55:23
[INFO] [stdout]    |
[INFO] [stdout] 55 |     use serde_bytes::{ByteArray, ByteBuf};
[INFO] [stdout]    |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `download`
[INFO] [stdout]   --> src/messages.rs:62:44
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn bitfield(torrent: &TorrentFile, download: &Download) -> Vec<u8> {
[INFO] [stdout]    |                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_download`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_index`
[INFO] [stdout]   --> src/messages.rs:91:18
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn piece(piece_index: u8, piece_offset: u8, block: Vec<u8>) {
[INFO] [stdout]    |                  ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_offset`
[INFO] [stdout]   --> src/messages.rs:91:35
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn piece(piece_index: u8, piece_offset: u8, block: Vec<u8>) {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block`
[INFO] [stdout]   --> src/messages.rs:91:53
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn piece(piece_index: u8, piece_offset: u8, block: Vec<u8>) {
[INFO] [stdout]    |                                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_block`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_index`
[INFO] [stdout]   --> src/messages.rs:95:19
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn cancel(piece_index: u8, piece_offset: u8) {
[INFO] [stdout]    |                   ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_offset`
[INFO] [stdout]   --> src/messages.rs:95:36
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn cancel(piece_index: u8, piece_offset: u8) {
[INFO] [stdout]    |                                    ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> src/messages.rs:99:17
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn port(port: u8) {
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]   --> src/messages.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Message {
[INFO] [stdout]    | ------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn choke() -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn unchoke() -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn not_interested() -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn bitfield(torrent: &TorrentFile, download: &Download) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn have(piece_index: u32) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub fn piece(piece_index: u8, piece_offset: u8, block: Vec<u8>) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn cancel(piece_index: u8, piece_offset: u8) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fn port(port: u8) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bitfield_size` is never used
[INFO] [stdout]   --> src/parse_torrent.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn bitfield_size(torrent: &TorrentFile) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peer_status` is never read
[INFO] [stdout]    --> src/peers.rs:219:5
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub struct PeerConnection {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 219 |     peer_status: Option<PeerStatus>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `bitfield` and `have` are never used
[INFO] [stdout]    --> src/peers.rs:268:14
[INFO] [stdout]     |
[INFO] [stdout] 224 | impl PeerConnection {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 268 |     async fn bitfield(&mut self, torrent: &TorrentFile, download: &Download) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     async fn have(&mut self, piece_index: u32) -> Result<()> {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Event` is never used
[INFO] [stdout]   --> src/tracker.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | enum Event {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `failure_reason`, `warning_message`, `interval`, `tracker_id`, `complete`, and `incomplete` are never read
[INFO] [stdout]   --> src/tracker.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct TrackerResponse {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 38 |     #[serde(rename = "failure reason")]
[INFO] [stdout] 39 |     failure_reason: Option<bool>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 40 |     #[serde(rename = "warning message")]
[INFO] [stdout] 41 |     warning_message: Option<bool>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     /// Interval in seconds that the client should wait between sending regular requests to the tracker
[INFO] [stdout] 43 |     interval: u32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 44 |     #[serde(rename = "tracker id")]
[INFO] [stdout] 45 |     tracker_id: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 46 |     complete: Option<u32>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 47 |     incomplete: Option<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TrackerResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/messages.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(FromPrimitive)]
[INFO] [stdout]    |          ^------------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `FromPrimitive` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_MessageType`
[INFO] [stdout] 13 | pub enum MessageType {
[INFO] [stdout]    |          ----------- `MessageType` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.38s
[INFO] running `Command { std: "docker" "inspect" "a6c29a17b9d0b6bd9f22c3c140ee11d666756129d3461a70f4f44b7f9e29734a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a6c29a17b9d0b6bd9f22c3c140ee11d666756129d3461a70f4f44b7f9e29734a", kill_on_drop: false }`
[INFO] [stdout] a6c29a17b9d0b6bd9f22c3c140ee11d666756129d3461a70f4f44b7f9e29734a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "--no-run" "--message-format=json" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] 6e858d8233c6f5de13504d54ae270341b21630e030a79891ae1b5d372aa88bd0
[INFO] running `Command { std: "docker" "start" "-a" "6e858d8233c6f5de13504d54ae270341b21630e030a79891ae1b5d372aa88bd0", kill_on_drop: false }`
[INFO] [stderr]    Compiling furia v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Rng` and `distributions::Alphanumeric`
[INFO] [stdout]  --> src/tracker.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{distributions::Alphanumeric, Rng};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ByteArray`
[INFO] [stdout]   --> src/tracker.rs:55:23
[INFO] [stdout]    |
[INFO] [stdout] 55 |     use serde_bytes::{ByteArray, ByteBuf};
[INFO] [stdout]    |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `download`
[INFO] [stdout]   --> src/messages.rs:62:44
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn bitfield(torrent: &TorrentFile, download: &Download) -> Vec<u8> {
[INFO] [stdout]    |                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_download`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_index`
[INFO] [stdout]   --> src/messages.rs:91:18
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn piece(piece_index: u8, piece_offset: u8, block: Vec<u8>) {
[INFO] [stdout]    |                  ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_offset`
[INFO] [stdout]   --> src/messages.rs:91:35
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn piece(piece_index: u8, piece_offset: u8, block: Vec<u8>) {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block`
[INFO] [stdout]   --> src/messages.rs:91:53
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn piece(piece_index: u8, piece_offset: u8, block: Vec<u8>) {
[INFO] [stdout]    |                                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_block`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_index`
[INFO] [stdout]   --> src/messages.rs:95:19
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn cancel(piece_index: u8, piece_offset: u8) {
[INFO] [stdout]    |                   ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `piece_offset`
[INFO] [stdout]   --> src/messages.rs:95:36
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn cancel(piece_index: u8, piece_offset: u8) {
[INFO] [stdout]    |                                    ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> src/messages.rs:99:17
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn port(port: u8) {
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]   --> src/messages.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Message {
[INFO] [stdout]    | ------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn choke() -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn unchoke() -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn not_interested() -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn bitfield(torrent: &TorrentFile, download: &Download) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn have(piece_index: u32) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub fn piece(piece_index: u8, piece_offset: u8, block: Vec<u8>) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn cancel(piece_index: u8, piece_offset: u8) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fn port(port: u8) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bitfield_size` is never used
[INFO] [stdout]   --> src/parse_torrent.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn bitfield_size(torrent: &TorrentFile) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peer_status` is never read
[INFO] [stdout]    --> src/peers.rs:219:5
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub struct PeerConnection {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 219 |     peer_status: Option<PeerStatus>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `bitfield` and `have` are never used
[INFO] [stdout]    --> src/peers.rs:268:14
[INFO] [stdout]     |
[INFO] [stdout] 224 | impl PeerConnection {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 268 |     async fn bitfield(&mut self, torrent: &TorrentFile, download: &Download) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     async fn have(&mut self, piece_index: u32) -> Result<()> {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Event` is never used
[INFO] [stdout]   --> src/tracker.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | enum Event {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `failure_reason`, `warning_message`, `interval`, `tracker_id`, `complete`, and `incomplete` are never read
[INFO] [stdout]   --> src/tracker.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct TrackerResponse {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 38 |     #[serde(rename = "failure reason")]
[INFO] [stdout] 39 |     failure_reason: Option<bool>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 40 |     #[serde(rename = "warning message")]
[INFO] [stdout] 41 |     warning_message: Option<bool>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     /// Interval in seconds that the client should wait between sending regular requests to the tracker
[INFO] [stdout] 43 |     interval: u32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 44 |     #[serde(rename = "tracker id")]
[INFO] [stdout] 45 |     tracker_id: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 46 |     complete: Option<u32>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 47 |     incomplete: Option<u32>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TrackerResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/messages.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(FromPrimitive)]
[INFO] [stdout]    |          ^------------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `FromPrimitive` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_MessageType`
[INFO] [stdout] 13 | pub enum MessageType {
[INFO] [stdout]    |          ----------- `MessageType` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.23s
[INFO] running `Command { std: "docker" "inspect" "6e858d8233c6f5de13504d54ae270341b21630e030a79891ae1b5d372aa88bd0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6e858d8233c6f5de13504d54ae270341b21630e030a79891ae1b5d372aa88bd0", kill_on_drop: false }`
[INFO] [stdout] 6e858d8233c6f5de13504d54ae270341b21630e030a79891ae1b5d372aa88bd0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bd7d74411512a3dd3b35d2f699c51dd2557c7e7e" "test" "--frozen" "-Zbuild-dir-new-layout", kill_on_drop: false }`
[INFO] [stdout] ba132a0efc51c197c1a916ac0ce019ddc6af922737bf4d1aaf309618ec0c5854
[INFO] running `Command { std: "docker" "start" "-a" "ba132a0efc51c197c1a916ac0ce019ddc6af922737bf4d1aaf309618ec0c5854", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `Rng` and `distributions::Alphanumeric`
[INFO] [stderr]  --> src/tracker.rs:3:12
[INFO] [stderr]   |
[INFO] [stderr] 3 | use rand::{distributions::Alphanumeric, Rng};
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ByteArray`
[INFO] [stderr]   --> src/tracker.rs:55:23
[INFO] [stderr]    |
[INFO] [stderr] 55 |     use serde_bytes::{ByteArray, ByteBuf};
[INFO] [stderr]    |                       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `download`
[INFO] [stderr]   --> src/messages.rs:62:44
[INFO] [stderr]    |
[INFO] [stderr] 62 |     pub fn bitfield(torrent: &TorrentFile, download: &Download) -> Vec<u8> {
[INFO] [stderr]    |                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_download`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `piece_index`
[INFO] [stderr]   --> src/messages.rs:91:18
[INFO] [stderr]    |
[INFO] [stderr] 91 |     pub fn piece(piece_index: u8, piece_offset: u8, block: Vec<u8>) {
[INFO] [stderr]    |                  ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_index`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `piece_offset`
[INFO] [stderr]   --> src/messages.rs:91:35
[INFO] [stderr]    |
[INFO] [stderr] 91 |     pub fn piece(piece_index: u8, piece_offset: u8, block: Vec<u8>) {
[INFO] [stderr]    |                                   ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_offset`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `block`
[INFO] [stderr]   --> src/messages.rs:91:53
[INFO] [stderr]    |
[INFO] [stderr] 91 |     pub fn piece(piece_index: u8, piece_offset: u8, block: Vec<u8>) {
[INFO] [stderr]    |                                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_block`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `piece_index`
[INFO] [stderr]   --> src/messages.rs:95:19
[INFO] [stderr]    |
[INFO] [stderr] 95 |     pub fn cancel(piece_index: u8, piece_offset: u8) {
[INFO] [stderr]    |                   ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_index`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `piece_offset`
[INFO] [stderr]   --> src/messages.rs:95:36
[INFO] [stderr]    |
[INFO] [stderr] 95 |     pub fn cancel(piece_index: u8, piece_offset: u8) {
[INFO] [stderr]    |                                    ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_piece_offset`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `port`
[INFO] [stderr]   --> src/messages.rs:99:17
[INFO] [stderr]    |
[INFO] [stderr] 99 |     pub fn port(port: u8) {
[INFO] [stderr]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated functions are never used
[INFO] [stderr]   --> src/messages.rs:34:12
[INFO] [stderr]    |
[INFO] [stderr] 28 | impl Message {
[INFO] [stderr]    | ------------ associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 34 |     pub fn choke() -> Vec<u8> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub fn unchoke() -> Vec<u8> {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 55 |     pub fn not_interested() -> Vec<u8> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 62 |     pub fn bitfield(torrent: &TorrentFile, download: &Download) -> Vec<u8> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 83 |     pub fn have(piece_index: u32) -> Vec<u8> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 91 |     pub fn piece(piece_index: u8, piece_offset: u8, block: Vec<u8>) {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 95 |     pub fn cancel(piece_index: u8, piece_offset: u8) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 99 |     pub fn port(port: u8) {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `bitfield_size` is never used
[INFO] [stderr]   --> src/parse_torrent.rs:67:8
[INFO] [stderr]    |
[INFO] [stderr] 67 | pub fn bitfield_size(torrent: &TorrentFile) -> u32 {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `peer_status` is never read
[INFO] [stderr]    --> src/peers.rs:219:5
[INFO] [stderr]     |
[INFO] [stderr] 216 | pub struct PeerConnection {
[INFO] [stderr]     |            -------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 219 |     peer_status: Option<PeerStatus>,
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `bitfield` and `have` are never used
[INFO] [stderr]    --> src/peers.rs:268:14
[INFO] [stderr]     |
[INFO] [stderr] 224 | impl PeerConnection {
[INFO] [stderr]     | ------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 268 |     async fn bitfield(&mut self, torrent: &TorrentFile, download: &Download) -> Result<()> {
[INFO] [stderr]     |              ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 300 |     async fn have(&mut self, piece_index: u32) -> Result<()> {
[INFO] [stderr]     |              ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Event` is never used
[INFO] [stderr]   --> src/tracker.rs:11:6
[INFO] [stderr]    |
[INFO] [stderr] 11 | enum Event {
[INFO] [stderr]    |      ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `failure_reason`, `warning_message`, `interval`, `tracker_id`, `complete`, and `incomplete` are never read
[INFO] [stderr]   --> src/tracker.rs:39:5
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub struct TrackerResponse {
[INFO] [stderr]    |            --------------- fields in this struct
[INFO] [stderr] 38 |     #[serde(rename = "failure reason")]
[INFO] [stderr] 39 |     failure_reason: Option<bool>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 40 |     #[serde(rename = "warning message")]
[INFO] [stderr] 41 |     warning_message: Option<bool>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 42 |     /// Interval in seconds that the client should wait between sending regular requests to the tracker
[INFO] [stderr] 43 |     interval: u32,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 44 |     #[serde(rename = "tracker id")]
[INFO] [stderr] 45 |     tracker_id: Option<String>,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 46 |     complete: Option<u32>,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 47 |     incomplete: Option<u32>,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TrackerResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/messages.rs:12:10
[INFO] [stderr]    |
[INFO] [stderr] 12 | #[derive(FromPrimitive)]
[INFO] [stderr]    |          ^------------
[INFO] [stderr]    |          |
[INFO] [stderr]    |          `FromPrimitive` is not local
[INFO] [stderr]    |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_MessageType`
[INFO] [stderr] 13 | pub enum MessageType {
[INFO] [stderr]    |          ----------- `MessageType` is not local
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stderr]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `furia` (bin "furia" test) generated 16 warnings (run `cargo fix --bin "furia" -p furia --tests` to apply 9 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.21s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/furia/1fea15d7d8923c80/deps/furia-1fea15d7d8923c80)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test tracker::test::calculate_info_hash ... ok
[INFO] [stdout] test messages::test::request_message ... ok
[INFO] [stdout] test parse_torrent::test::it_parses_a_torrent_file ... ok
[INFO] [stderr] error: test failed, to rerun pass `--bin furia`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/build/furia/1fea15d7d8923c80/deps/furia-1fea15d7d8923c80` (signal: 9, SIGKILL: kill)
[INFO] running `Command { std: "docker" "inspect" "ba132a0efc51c197c1a916ac0ce019ddc6af922737bf4d1aaf309618ec0c5854", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ba132a0efc51c197c1a916ac0ce019ddc6af922737bf4d1aaf309618ec0c5854", kill_on_drop: false }`
[INFO] [stdout] ba132a0efc51c197c1a916ac0ce019ddc6af922737bf4d1aaf309618ec0c5854
