[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 master#1871252fc8bb672d40787e67404e6eaae7059369 for pr-125151
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fksnll%2Ffuria" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/ksnll/furia on toolchain 1871252fc8bb672d40787e67404e6eaae7059369
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[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-0-tc1/source/Cargo.toml
[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" "+1871252fc8bb672d40787e67404e6eaae7059369" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] deaad7099c78551360594a152d1d7e034244b8510ab78106d8532373bca2b321
[INFO] running `Command { std: "docker" "start" "-a" "deaad7099c78551360594a152d1d7e034244b8510ab78106d8532373bca2b321", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "deaad7099c78551360594a152d1d7e034244b8510ab78106d8532373bca2b321", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "deaad7099c78551360594a152d1d7e034244b8510ab78106d8532373bca2b321", kill_on_drop: false }`
[INFO] [stdout] deaad7099c78551360594a152d1d7e034244b8510ab78106d8532373bca2b321
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f33a019e8ea42d3f0a38cda39c7b876efcc193cbb2fb6e2ca951d9f2dc8581f1
[INFO] running `Command { std: "docker" "start" "-a" "f33a019e8ea42d3f0a38cda39c7b876efcc193cbb2fb6e2ca951d9f2dc8581f1", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.76
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling libc v0.2.152
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling pin-project-lite v0.2.13
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling parking_lot_core v0.9.9
[INFO] [stderr]    Compiling smallvec v1.11.2
[INFO] [stderr]    Compiling pkg-config v0.3.29
[INFO] [stderr]    Compiling bytes v1.5.0
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling futures-sink v0.3.30
[INFO] [stderr]    Compiling futures-core v0.3.30
[INFO] [stderr]    Compiling itoa v1.0.10
[INFO] [stderr]    Compiling serde v1.0.195
[INFO] [stderr]    Compiling memchr v2.7.1
[INFO] [stderr]    Compiling version_check v0.9.4
[INFO] [stderr]    Compiling futures-task v0.3.30
[INFO] [stderr]    Compiling futures-channel v0.3.30
[INFO] [stderr]    Compiling futures-io v0.3.30
[INFO] [stderr]    Compiling tracing-core v0.1.32
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling typenum v1.17.0
[INFO] [stderr]    Compiling openssl v0.10.62
[INFO] [stderr]    Compiling log v0.4.20
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling hashbrown v0.14.3
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling http v0.2.11
[INFO] [stderr]    Compiling native-tls v0.2.11
[INFO] [stderr]    Compiling httparse v1.8.0
[INFO] [stderr]    Compiling bitflags v2.4.2
[INFO] [stderr]    Compiling tinyvec v1.6.0
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling openssl-probe v0.1.5
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling ryu v1.0.16
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling syn v2.0.48
[INFO] [stderr]    Compiling form_urlencoded v1.2.1
[INFO] [stderr]    Compiling tower-service v0.3.2
[INFO] [stderr]    Compiling serde_json v1.0.111
[INFO] [stderr]    Compiling unicode-bidi v0.3.15
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]    Compiling indexmap v2.1.0
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]    Compiling signal-hook-registry v1.4.1
[INFO] [stderr]    Compiling socket2 v0.5.5
[INFO] [stderr]    Compiling num_cpus v1.16.0
[INFO] [stderr]    Compiling mio v0.8.10
[INFO] [stderr]    Compiling getrandom v0.2.12
[INFO] [stderr]    Compiling ppv-lite86 v0.2.17
[INFO] [stderr]    Compiling anyhow v1.0.79
[INFO] [stderr]    Compiling overload v0.1.1
[INFO] [stderr]    Compiling parking_lot v0.12.1
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling unicode-normalization v0.1.22
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling nu-ansi-term v0.46.0
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.7
[INFO] [stderr]    Compiling encoding_rs v0.8.33
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling base64 v0.21.7
[INFO] [stderr]    Compiling ipnet v2.9.0
[INFO] [stderr]    Compiling cpufeatures v0.2.12
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling idna v0.5.0
[INFO] [stderr]    Compiling openssl-sys v0.9.98
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling tracing-subscriber v0.3.18
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling serde_derive v1.0.195
[INFO] [stderr]    Compiling tokio-macros v2.2.0
[INFO] [stderr]    Compiling futures-macro v0.3.30
[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 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 serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling url v2.5.0
[INFO] [stderr]    Compiling serde_bytes v0.11.14
[INFO] [stderr]    Compiling h2 v0.3.24
[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`, `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)]` 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)]` 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)]` 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: 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, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/messages.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(FromPrimitive)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_NUM_FromPrimitive_FOR_MessageType`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[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: `#[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] [stdout] warning: 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.39s
[INFO] running `Command { std: "docker" "inspect" "f33a019e8ea42d3f0a38cda39c7b876efcc193cbb2fb6e2ca951d9f2dc8581f1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f33a019e8ea42d3f0a38cda39c7b876efcc193cbb2fb6e2ca951d9f2dc8581f1", kill_on_drop: false }`
[INFO] [stdout] f33a019e8ea42d3f0a38cda39c7b876efcc193cbb2fb6e2ca951d9f2dc8581f1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 96c3d93a46176b5a2d20a5892818544efa31b1d8073e3279eb4b754a1e47705a
[INFO] running `Command { std: "docker" "start" "-a" "96c3d93a46176b5a2d20a5892818544efa31b1d8073e3279eb4b754a1e47705a", kill_on_drop: false }`
[INFO] [stderr]    Compiling furia v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Rng`, `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)]` 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)]` 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)]` 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: 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, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/messages.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(FromPrimitive)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_NUM_FromPrimitive_FOR_MessageType`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[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: `#[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] [stdout] warning: 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.94s
[INFO] running `Command { std: "docker" "inspect" "96c3d93a46176b5a2d20a5892818544efa31b1d8073e3279eb4b754a1e47705a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "96c3d93a46176b5a2d20a5892818544efa31b1d8073e3279eb4b754a1e47705a", kill_on_drop: false }`
[INFO] [stdout] 96c3d93a46176b5a2d20a5892818544efa31b1d8073e3279eb4b754a1e47705a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 7b793df85c2f02fa74959c40bed110511974e460578b6c1d10ac4783ee8a2566
[INFO] running `Command { std: "docker" "start" "-a" "7b793df85c2f02fa74959c40bed110511974e460578b6c1d10ac4783ee8a2566", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `Rng`, `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)]` 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)]` 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)]` 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: 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, they should be avoided as they go against expectation
[INFO] [stderr]   --> src/messages.rs:12:10
[INFO] [stderr]    |
[INFO] [stderr] 12 | #[derive(FromPrimitive)]
[INFO] [stderr]    |          ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: move this `impl` block outside the of the current constant `_IMPL_NUM_FromPrimitive_FOR_MessageType`
[INFO] [stderr]    = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stderr]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[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: `#[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 15 warnings (run `cargo fix --bin "furia" --tests` to apply 2 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/furia-c59645eeb97f67be)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test messages::test::request_message ... ok
[INFO] [stdout] test tracker::test::calculate_info_hash ... 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/deps/furia-c59645eeb97f67be` (signal: 9, SIGKILL: kill)
[INFO] running `Command { std: "docker" "inspect" "7b793df85c2f02fa74959c40bed110511974e460578b6c1d10ac4783ee8a2566", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7b793df85c2f02fa74959c40bed110511974e460578b6c1d10ac4783ee8a2566", kill_on_drop: false }`
[INFO] [stdout] 7b793df85c2f02fa74959c40bed110511974e460578b6c1d10ac4783ee8a2566
[INFO] testing ksnll/furia against try#b642703cf9526da1e72c0b6755753b939a9c6b6d for pr-125151
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fksnll%2Ffuria" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/ksnll/furia on toolchain b642703cf9526da1e72c0b6755753b939a9c6b6d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[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-0-tc2/source/Cargo.toml
[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" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9fc3b1d263f674194bf8f0c30ba179782fb0a1fa10e3244da59589397b241266
[INFO] running `Command { std: "docker" "start" "-a" "9fc3b1d263f674194bf8f0c30ba179782fb0a1fa10e3244da59589397b241266", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9fc3b1d263f674194bf8f0c30ba179782fb0a1fa10e3244da59589397b241266", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9fc3b1d263f674194bf8f0c30ba179782fb0a1fa10e3244da59589397b241266", kill_on_drop: false }`
[INFO] [stdout] 9fc3b1d263f674194bf8f0c30ba179782fb0a1fa10e3244da59589397b241266
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c4f7778bf7da28cf9dfb5625745c3c2f0d4abe317c6cb1129f32a3d0e38b2af7
[INFO] running `Command { std: "docker" "start" "-a" "c4f7778bf7da28cf9dfb5625745c3c2f0d4abe317c6cb1129f32a3d0e38b2af7", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.76
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling libc v0.2.152
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling pin-project-lite v0.2.13
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling pkg-config v0.3.29
[INFO] [stderr]    Compiling parking_lot_core v0.9.9
[INFO] [stderr]    Compiling smallvec v1.11.2
[INFO] [stderr]    Compiling bytes v1.5.0
[INFO] [stderr]    Compiling futures-sink v0.3.30
[INFO] [stderr]    Compiling futures-core v0.3.30
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling itoa v1.0.10
[INFO] [stderr]    Compiling serde v1.0.195
[INFO] [stderr]    Compiling futures-io v0.3.30
[INFO] [stderr]    Compiling typenum v1.17.0
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling futures-channel v0.3.30
[INFO] [stderr]    Compiling memchr v2.7.1
[INFO] [stderr]    Compiling tracing-core v0.1.32
[INFO] [stderr]    Compiling version_check v0.9.4
[INFO] [stderr]    Compiling futures-task v0.3.30
[INFO] [stderr]    Compiling log v0.4.20
[INFO] [stderr]    Compiling openssl v0.10.62
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling http v0.2.11
[INFO] [stderr]    Compiling hashbrown v0.14.3
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling bitflags v2.4.2
[INFO] [stderr]    Compiling native-tls v0.2.11
[INFO] [stderr]    Compiling httparse v1.8.0
[INFO] [stderr]    Compiling tinyvec v1.6.0
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling openssl-probe v0.1.5
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling form_urlencoded v1.2.1
[INFO] [stderr]    Compiling ryu v1.0.16
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling serde_json v1.0.111
[INFO] [stderr]    Compiling tower-service v0.3.2
[INFO] [stderr]    Compiling unicode-bidi v0.3.15
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]    Compiling syn v2.0.48
[INFO] [stderr]    Compiling mio v0.8.10
[INFO] [stderr]    Compiling num_cpus v1.16.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.1
[INFO] [stderr]    Compiling socket2 v0.5.5
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]    Compiling indexmap v2.1.0
[INFO] [stderr]    Compiling getrandom v0.2.12
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling anyhow v1.0.79
[INFO] [stderr]    Compiling parking_lot v0.12.1
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling unicode-normalization v0.1.22
[INFO] [stderr]    Compiling ppv-lite86 v0.2.17
[INFO] [stderr]    Compiling overload v0.1.1
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling nu-ansi-term v0.46.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.7
[INFO] [stderr]    Compiling encoding_rs v0.8.33
[INFO] [stderr]    Compiling base64 v0.21.7
[INFO] [stderr]    Compiling cpufeatures v0.2.12
[INFO] [stderr]    Compiling ipnet v2.9.0
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling idna v0.5.0
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling openssl-sys v0.9.98
[INFO] [stderr]    Compiling tracing-subscriber v0.3.18
[INFO] [stderr]    Compiling sha1 v0.10.6
[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 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 url v2.5.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_bytes v0.11.14
[INFO] [stderr]    Compiling h2 v0.3.24
[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`, `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)]` 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)]` 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)]` 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: 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, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/messages.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(FromPrimitive)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_NUM_FromPrimitive_FOR_MessageType`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[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: `#[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] [stdout] warning: 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.40s
[INFO] running `Command { std: "docker" "inspect" "c4f7778bf7da28cf9dfb5625745c3c2f0d4abe317c6cb1129f32a3d0e38b2af7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c4f7778bf7da28cf9dfb5625745c3c2f0d4abe317c6cb1129f32a3d0e38b2af7", kill_on_drop: false }`
[INFO] [stdout] c4f7778bf7da28cf9dfb5625745c3c2f0d4abe317c6cb1129f32a3d0e38b2af7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 580f21c1858f34efd9e1dcb4afba1ea2d79e88769d1546b9820f3e57c1c5590b
[INFO] running `Command { std: "docker" "start" "-a" "580f21c1858f34efd9e1dcb4afba1ea2d79e88769d1546b9820f3e57c1c5590b", kill_on_drop: false }`
[INFO] [stderr]    Compiling furia v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Rng`, `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)]` 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)]` 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)]` 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: 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, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/messages.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(FromPrimitive)]
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_NUM_FromPrimitive_FOR_MessageType`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[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: `#[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] [stdout] warning: 15 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.89s
[INFO] running `Command { std: "docker" "inspect" "580f21c1858f34efd9e1dcb4afba1ea2d79e88769d1546b9820f3e57c1c5590b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "580f21c1858f34efd9e1dcb4afba1ea2d79e88769d1546b9820f3e57c1c5590b", kill_on_drop: false }`
[INFO] [stdout] 580f21c1858f34efd9e1dcb4afba1ea2d79e88769d1546b9820f3e57c1c5590b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 8d9e876d009eb119279db7a7f9948ed1ac5e2c38b5152ade081f9fb20b9f3158
[INFO] running `Command { std: "docker" "start" "-a" "8d9e876d009eb119279db7a7f9948ed1ac5e2c38b5152ade081f9fb20b9f3158", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `Rng`, `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)]` 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)]` 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)]` 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: 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, they should be avoided as they go against expectation
[INFO] [stderr]   --> src/messages.rs:12:10
[INFO] [stderr]    |
[INFO] [stderr] 12 | #[derive(FromPrimitive)]
[INFO] [stderr]    |          ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: move this `impl` block outside the of the current constant `_IMPL_NUM_FromPrimitive_FOR_MessageType`
[INFO] [stderr]    = note: an `impl` definition is non-local if it is nested inside an item and may impact type checking outside of that item. This can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: one exception to the rule are anon-const (`const _: () = { ... }`) at top-level module and anon-const at the same nesting as the trait or type
[INFO] [stderr]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[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: `#[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 15 warnings (run `cargo fix --bin "furia" --tests` to apply 2 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/furia-c59645eeb97f67be)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test messages::test::request_message ... ok
[INFO] [stdout] test tracker::test::calculate_info_hash ... 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/deps/furia-c59645eeb97f67be` (signal: 9, SIGKILL: kill)
[INFO] running `Command { std: "docker" "inspect" "8d9e876d009eb119279db7a7f9948ed1ac5e2c38b5152ade081f9fb20b9f3158", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8d9e876d009eb119279db7a7f9948ed1ac5e2c38b5152ade081f9fb20b9f3158", kill_on_drop: false }`
[INFO] [stdout] 8d9e876d009eb119279db7a7f9948ed1ac5e2c38b5152ade081f9fb20b9f3158
