[INFO] fetching crate udp2p 0.1.6... [INFO] testing udp2p-0.1.6 against beta-2025-09-21 for beta-1.91-3 [INFO] extracting crate udp2p 0.1.6 into /workspace/builds/worker-0-tc2/source [INFO] started tweaking crates.io crate udp2p 0.1.6 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate udp2p 0.1.6 [INFO] tweaked toml for crates.io crate udp2p 0.1.6 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate udp2p 0.1.6 on toolchain beta-2025-09-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate udp2p 0.1.6 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" "+beta-2025-09-21" "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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 09729adc9a267cd7387f60697bfc06d961b081fa056ec69728cfd0cd4b3f8b26 [INFO] running `Command { std: "docker" "start" "-a" "09729adc9a267cd7387f60697bfc06d961b081fa056ec69728cfd0cd4b3f8b26", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "09729adc9a267cd7387f60697bfc06d961b081fa056ec69728cfd0cd4b3f8b26", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "09729adc9a267cd7387f60697bfc06d961b081fa056ec69728cfd0cd4b3f8b26", kill_on_drop: false }` [INFO] [stdout] 09729adc9a267cd7387f60697bfc06d961b081fa056ec69728cfd0cd4b3f8b26 [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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 592d77c4801694417c0f5ab4481c570d747fea361b9e493b2ba13046dfd8178b [INFO] running `Command { std: "docker" "start" "-a" "592d77c4801694417c0f5ab4481c570d747fea361b9e493b2ba13046dfd8178b", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.36 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling syn v1.0.88 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Compiling libc v0.2.120 [INFO] [stderr] Compiling futures-core v0.3.21 [INFO] [stderr] Compiling pin-project-lite v0.2.8 [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling futures-io v0.3.21 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling once_cell v1.10.0 [INFO] [stderr] Compiling slab v0.4.5 [INFO] [stderr] Compiling smallvec v1.8.0 [INFO] [stderr] Compiling futures-task v0.3.21 [INFO] [stderr] Compiling futures-channel v0.3.21 [INFO] [stderr] Compiling parking_lot_core v0.9.1 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling futures-sink v0.3.21 [INFO] [stderr] Compiling futures-util v0.3.21 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling scopeguard v1.1.0 [INFO] [stderr] Compiling bytes v1.1.0 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling typenum v1.15.0 [INFO] [stderr] Compiling lock_api v0.4.6 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling strsim v0.9.3 [INFO] [stderr] Compiling cache-padded v1.2.0 [INFO] [stderr] Compiling tinyvec_macros v0.1.0 [INFO] [stderr] Compiling event-listener v2.5.2 [INFO] [stderr] Compiling concurrent-queue v1.2.2 [INFO] [stderr] Compiling tinyvec v1.5.1 [INFO] [stderr] Compiling parking v2.0.0 [INFO] [stderr] Compiling matches v0.1.9 [INFO] [stderr] Compiling itoa v1.0.1 [INFO] [stderr] Compiling waker-fn v1.1.0 [INFO] [stderr] Compiling value-bag v1.0.0-alpha.8 [INFO] [stderr] Compiling generic-array v0.14.5 [INFO] [stderr] Compiling fastrand v1.7.0 [INFO] [stderr] Compiling ahash v0.7.6 [INFO] [stderr] Compiling tracing-core v0.1.23 [INFO] [stderr] Compiling async-trait v0.1.52 [INFO] [stderr] Compiling ppv-lite86 v0.2.16 [INFO] [stderr] Compiling httparse v1.6.0 [INFO] [stderr] Compiling percent-encoding v2.1.0 [INFO] [stderr] Compiling unicode-bidi v0.3.7 [INFO] [stderr] Compiling async-task v4.2.0 [INFO] [stderr] Compiling derive_builder v0.9.0 [INFO] [stderr] Compiling serde_derive v1.0.136 [INFO] [stderr] Compiling heck v0.4.0 [INFO] [stderr] Compiling try-lock v0.2.3 [INFO] [stderr] Compiling form_urlencoded v1.0.1 [INFO] [stderr] Compiling futures-lite v1.12.0 [INFO] [stderr] Compiling async-channel v1.6.1 [INFO] [stderr] Compiling quote v1.0.15 [INFO] [stderr] Compiling nibble_vec v0.1.0 [INFO] [stderr] Compiling tower-service v0.3.1 [INFO] [stderr] Compiling http v0.2.6 [INFO] [stderr] Compiling data-encoding v2.3.2 [INFO] [stderr] Compiling crossbeam-utils v0.8.8 [INFO] [stderr] Compiling ipnet v2.4.0 [INFO] [stderr] Compiling atomic-waker v1.0.0 [INFO] [stderr] Compiling num_threads v0.1.4 [INFO] [stderr] Compiling serde v1.0.136 [INFO] [stderr] Compiling endian-type v0.1.2 [INFO] [stderr] Compiling httpdate v1.0.2 [INFO] [stderr] Compiling getrandom v0.2.5 [INFO] [stderr] Compiling socket2 v0.4.4 [INFO] [stderr] Compiling num_cpus v1.13.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.0 [INFO] [stderr] Compiling unicode-normalization v0.1.19 [INFO] [stderr] Compiling radix_trie v0.2.1 [INFO] [stderr] Compiling time v0.3.7 [INFO] [stderr] Compiling rand_core v0.6.3 [INFO] [stderr] Compiling async-executor v1.4.1 [INFO] [stderr] Compiling blocking v1.2.0 [INFO] [stderr] Compiling parking_lot v0.12.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling hashbrown v0.11.2 [INFO] [stderr] Compiling dns-lookup v1.0.8 [INFO] [stderr] Compiling async-mutex v1.4.0 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling opaque-debug v0.3.0 [INFO] [stderr] Compiling cpufeatures v0.2.1 [INFO] [stderr] Compiling serde_json v1.0.79 [INFO] [stderr] Compiling async-lock v2.5.0 [INFO] [stderr] Compiling ryu v1.0.9 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling idna v0.2.3 [INFO] [stderr] Compiling digest v0.9.0 [INFO] [stderr] Compiling block-buffer v0.9.0 [INFO] [stderr] Compiling sha2 v0.9.9 [INFO] [stderr] Compiling griddle v0.5.2 [INFO] [stderr] Compiling http-body v0.4.4 [INFO] [stderr] Compiling sha256 v1.0.3 [INFO] [stderr] Compiling ritelinked v0.3.2 [INFO] [stderr] Compiling url v2.2.2 [INFO] [stderr] Compiling darling_core v0.10.2 [INFO] [stderr] Compiling ctor v0.1.21 [INFO] [stderr] Compiling futures-macro v0.3.21 [INFO] [stderr] Compiling tokio-macros v1.7.0 [INFO] [stderr] Compiling tracing-attributes v0.1.20 [INFO] [stderr] Compiling thiserror-impl v1.0.30 [INFO] [stderr] Compiling enum-as-inner v0.3.4 [INFO] [stderr] Compiling pin-project-internal v1.0.10 [INFO] [stderr] Compiling async-attributes v1.1.2 [INFO] [stderr] Compiling mio v0.8.1 [INFO] [stderr] Compiling polling v2.2.0 [INFO] [stderr] Compiling want v0.3.0 [INFO] [stderr] Compiling kv-log-macro v1.0.7 [INFO] [stderr] Compiling pin-project v1.0.10 [INFO] [stderr] Compiling thiserror v1.0.30 [INFO] [stderr] Compiling async-io v1.6.0 [INFO] [stderr] Compiling tracing v0.1.32 [INFO] [stderr] Compiling darling_macro v0.10.2 [INFO] [stderr] Compiling tokio v1.17.0 [INFO] [stderr] Compiling darling v0.10.2 [INFO] [stderr] Compiling derive_builder_core v0.9.0 [INFO] [stderr] Compiling futures-executor v0.3.21 [INFO] [stderr] Compiling futures v0.3.21 [INFO] [stderr] Compiling tracing-futures v0.2.5 [INFO] [stderr] Compiling trust-dns-proto v0.20.4 [INFO] [stderr] Compiling async-global-executor v2.0.3 [INFO] [stderr] Compiling async-std v1.10.0 [INFO] [stderr] Compiling hyper v0.14.17 [INFO] [stderr] Compiling trust-dns-client v0.20.4 [INFO] [stderr] Compiling hyper-system-resolver v0.5.0 [INFO] [stderr] Compiling public-ip v0.2.2 [INFO] [stderr] Compiling udp2p v0.1.6 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::node::peer_key::Key` [INFO] [stdout] --> src/discovery/kad.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::node::peer_key::Key; [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 imports: `HashMap` and `VecDeque` [INFO] [stdout] --> src/discovery/kad.rs:9:24 [INFO] [stdout] | [INFO] [stdout] 9 | use std::collections::{HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `channel` [INFO] [stdout] --> src/discovery/kad.rs:11:23 [INFO] [stdout] | [INFO] [stdout] 11 | use std::sync::mpsc::{channel, Receiver, Sender}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::utils::utils::timestamp_now` [INFO] [stdout] --> src/discovery/kad.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::utils::utils::timestamp_now; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::utils::utils::Distance` [INFO] [stdout] --> src/discovery/kad.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::utils::utils::Distance; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/discovery/protocol.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | / /// Implements ByteRep trait for RPC, Req & Resp structs so they can be [INFO] [stdout] 21 | | /// represented as a vector of bytes and/or returned to their struct form [INFO] [stdout] 22 | | /// with one simple function call. [INFO] [stdout] | |_---------------------------------^ [INFO] [stdout] | | [INFO] [stdout] | rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::discovery::KAD_MESSAGE_LEN` [INFO] [stdout] --> src/discovery/protocol.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::discovery::KAD_MESSAGE_LEN; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::node::peer_key::Key` [INFO] [stdout] --> src/discovery/protocol.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::node::peer_key::Key; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Message` and `ResponseBytes` [INFO] [stdout] --> src/discovery/protocol.rs:5:27 [INFO] [stdout] | [INFO] [stdout] 5 | InnerKey, KadMessage, Message, MessageKey, Nodes, Peer, RPCBytes, RequestBytes, ResponseBytes, [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Rng` and `thread_rng` [INFO] [stdout] --> src/discovery/protocol.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | use rand::{thread_rng, Rng}; [INFO] [stdout] | ^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> src/discovery/protocol.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::marker::PhantomData` [INFO] [stdout] --> src/discovery/protocol.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::marker::PhantomData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::SocketAddr` [INFO] [stdout] --> src/discovery/protocol.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::net::SocketAddr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::UdpSocket` [INFO] [stdout] --> src/discovery/protocol.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::net::UdpSocket; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender` [INFO] [stdout] --> src/discovery/protocol.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use std::sync::mpsc::Sender; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/discovery/protocol.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::traits::routable::Routable` [INFO] [stdout] --> src/discovery/protocol.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::traits::routable::Routable; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MAX_BUCKETS` [INFO] [stdout] --> src/discovery/routing.rs:1:24 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::discovery::{MAX_BUCKETS, MAX_BUCKET_LEN, REFRESH_INTEVAL}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BTreeMap` [INFO] [stdout] --> src/discovery/routing.rs:10:24 [INFO] [stdout] | [INFO] [stdout] 10 | use std::collections::{BTreeMap, HashMap}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::SocketAddr` [INFO] [stdout] --> src/discovery/routing.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::net::SocketAddr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mem` [INFO] [stdout] --> src/discovery/routing.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | use std::{cmp, mem}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/discovery/kad.rs:109:14 [INFO] [stdout] | [INFO] [stdout] 109 | let (id, message) = self.prepare_find_node_message(local_info, None); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer` [INFO] [stdout] --> src/discovery/kad.rs:246:41 [INFO] [stdout] | [INFO] [stdout] 246 | pub fn prepare_store_message(&self, peer: &PeerInfo, value: Value) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_peer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:246:58 [INFO] [stdout] | [INFO] [stdout] 246 | pub fn prepare_store_message(&self, peer: &PeerInfo, value: Value) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer` [INFO] [stdout] --> src/discovery/kad.rs:247:42 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn prepare_saved_response(&self, peer: &PeerInfo, req: Req) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_peer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/discovery/kad.rs:247:59 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn prepare_saved_response(&self, peer: &PeerInfo, req: Req) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:248:46 [INFO] [stdout] | [INFO] [stdout] 248 | pub fn prepare_find_value_message(&self, value: Value) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer` [INFO] [stdout] --> src/discovery/kad.rs:249:42 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn prepare_value_response(&self, peer: &PeerInfo, value: Value, req: Req) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_peer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:249:59 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn prepare_value_response(&self, peer: &PeerInfo, value: Value, req: Req) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/discovery/kad.rs:249:73 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn prepare_value_response(&self, peer: &PeerInfo, value: Value, req: Req) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/discovery/kad.rs:261:18 [INFO] [stdout] | [INFO] [stdout] 261 | let (id, sender, rpc) = request.to_components(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:273:32 [INFO] [stdout] | [INFO] [stdout] 273 | RPC::FindValue(value) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/discovery/kad.rs:285:28 [INFO] [stdout] | [INFO] [stdout] 285 | RPC::Store(key, value) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:285:33 [INFO] [stdout] | [INFO] [stdout] 285 | RPC::Store(key, value) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `receiver` [INFO] [stdout] --> src/discovery/kad.rs:321:23 [INFO] [stdout] | [INFO] [stdout] 321 | let (req, receiver, rpc) = rm.to_components(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_receiver` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/discovery/kad.rs:323:22 [INFO] [stdout] | [INFO] [stdout] 323 | let (id, sender, req_rpc) = request.to_components(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/discovery/kad.rs:323:26 [INFO] [stdout] | [INFO] [stdout] 323 | let (id, sender, req_rpc) = request.to_components(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req_rpc` [INFO] [stdout] --> src/discovery/kad.rs:323:34 [INFO] [stdout] | [INFO] [stdout] 323 | let (id, sender, req_rpc) = request.to_components(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_req_rpc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `complete` [INFO] [stdout] --> src/discovery/kad.rs:324:25 [INFO] [stdout] | [INFO] [stdout] 324 | let mut complete = false; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_complete` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:354:32 [INFO] [stdout] | [INFO] [stdout] 354 | RPC::Value(value) => {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/discovery/kad.rs:355:32 [INFO] [stdout] | [INFO] [stdout] 355 | RPC::Saved(key) => {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/discovery/kad.rs:324:21 [INFO] [stdout] | [INFO] [stdout] 324 | let mut complete = false; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `node` [INFO] [stdout] --> src/discovery/kad.rs:397:33 [INFO] [stdout] | [INFO] [stdout] 397 | pub fn ping_node(&mut self, node: PeerInfo) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `node` [INFO] [stdout] --> src/discovery/kad.rs:398:37 [INFO] [stdout] | [INFO] [stdout] 398 | pub fn pong_response(&mut self, node: PeerInfo, req: Req) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/discovery/kad.rs:398:53 [INFO] [stdout] | [INFO] [stdout] 398 | pub fn pong_response(&mut self, node: PeerInfo, req: Req) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/discovery/kad.rs:414:17 [INFO] [stdout] | [INFO] [stdout] 414 | let (_, sender, rpc) = req.to_components(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rpc` [INFO] [stdout] --> src/discovery/kad.rs:414:25 [INFO] [stdout] | [INFO] [stdout] 414 | let (_, sender, rpc) = req.to_components(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rpc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/discovery/kad.rs:420:14 [INFO] [stdout] | [INFO] [stdout] 420 | let (id, msg) = self.prepare_new_peer_message(node.clone()); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/discovery/kad.rs:411:13 [INFO] [stdout] | [INFO] [stdout] 411 | let mut closest_peers = self [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:436:36 [INFO] [stdout] | [INFO] [stdout] 436 | pub fn lookup_value(&mut self, value: Value) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:437:35 [INFO] [stdout] | [INFO] [stdout] 437 | pub fn store_value(&mut self, value: Value) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `index` [INFO] [stdout] --> src/discovery/routing.rs:70:29 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn split(&mut self, index: usize, prefix: String) -> KBucket { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 70 | pub fn split(&mut self, _index: usize, prefix: String) -> KBucket { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `DEFAULT_N_PEERS` [INFO] [stdout] | [INFO] [stdout] 70 - pub fn split(&mut self, index: usize, prefix: String) -> KBucket { [INFO] [stdout] 70 + pub fn split(&mut self, discovery::DEFAULT_N_PEERS: usize, prefix: String) -> KBucket { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `prefix` [INFO] [stdout] --> src/discovery/routing.rs:70:43 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn split(&mut self, index: usize, prefix: String) -> KBucket { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/discovery/routing.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | let mut new_bucket = KBucket::new(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:77:41 [INFO] [stdout] | [INFO] [stdout] 77 | self.nodes.clone().iter().map(|(k, v)| v.clone()).collect() [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:218:26 [INFO] [stdout] | [INFO] [stdout] 218 | if let Some((k, nodes)) = iter.next() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:229:26 [INFO] [stdout] | [INFO] [stdout] 229 | if let Some((k, nodes)) = iter.next() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bucket` [INFO] [stdout] --> src/discovery/routing.rs:179:32 [INFO] [stdout] | [INFO] [stdout] 179 | cloned_tree.retain(|k, bucket| { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bucket` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:186:55 [INFO] [stdout] | [INFO] [stdout] 186 | let total = cloned_tree.iter().fold(0, |acc, (k, v)| acc + v.size()); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/discovery/routing.rs:211:43 [INFO] [stdout] | [INFO] [stdout] 211 | closest.sort_unstable_by_key(|(k, v)| k.len()); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:334:41 [INFO] [stdout] | [INFO] [stdout] 334 | self.tree.iter().fold(0, |acc, (k, v)| acc + v.size()) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:341:20 [INFO] [stdout] | [INFO] [stdout] 341 | .map(|(k, v)| v.get_nodes()) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/gossip/gossip.rs:285:32 [INFO] [stdout] | [INFO] [stdout] 285 | if let Err(e) = tx.clone().send(string) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_BUCKETS` is never used [INFO] [stdout] --> src/discovery/mod.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const MAX_BUCKETS: usize = 10; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KAD_MESSAGE_LEN` is never used [INFO] [stdout] --> src/discovery/mod.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const KAD_MESSAGE_LEN: usize = 55000; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REQ_TIMEOUT` is never used [INFO] [stdout] --> src/discovery/mod.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const REQ_TIMEOUT: usize = 60_000_000_000; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_ACTIVE_RPCS` is never used [INFO] [stdout] --> src/discovery/mod.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const MAX_ACTIVE_RPCS: usize = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/node/peer_key.rs:123:13 [INFO] [stdout] | [INFO] [stdout] 123 | write!(f, "{:b}", byte); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 123 | let _ = write!(f, "{:b}", byte); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 42.47s [INFO] running `Command { std: "docker" "inspect" "592d77c4801694417c0f5ab4481c570d747fea361b9e493b2ba13046dfd8178b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "592d77c4801694417c0f5ab4481c570d747fea361b9e493b2ba13046dfd8178b", kill_on_drop: false }` [INFO] [stdout] 592d77c4801694417c0f5ab4481c570d747fea361b9e493b2ba13046dfd8178b [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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] dea3a4f10d8c8b580ae715d568f9b12ae58ee97cc657c85f0f92dc805a4386df [INFO] running `Command { std: "docker" "start" "-a" "dea3a4f10d8c8b580ae715d568f9b12ae58ee97cc657c85f0f92dc805a4386df", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `crate::node::peer_key::Key` [INFO] [stdout] --> src/discovery/kad.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::node::peer_key::Key; [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 imports: `HashMap` and `VecDeque` [INFO] [stdout] --> src/discovery/kad.rs:9:24 [INFO] [stdout] | [INFO] [stdout] 9 | use std::collections::{HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `channel` [INFO] [stdout] --> src/discovery/kad.rs:11:23 [INFO] [stdout] | [INFO] [stdout] 11 | use std::sync::mpsc::{channel, Receiver, Sender}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::utils::utils::timestamp_now` [INFO] [stdout] --> src/discovery/kad.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::utils::utils::timestamp_now; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::utils::utils::Distance` [INFO] [stdout] --> src/discovery/kad.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::utils::utils::Distance; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/discovery/protocol.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | / /// Implements ByteRep trait for RPC, Req & Resp structs so they can be [INFO] [stdout] 21 | | /// represented as a vector of bytes and/or returned to their struct form [INFO] [stdout] 22 | | /// with one simple function call. [INFO] [stdout] | |_---------------------------------^ [INFO] [stdout] | | [INFO] [stdout] | rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::discovery::KAD_MESSAGE_LEN` [INFO] [stdout] --> src/discovery/protocol.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::discovery::KAD_MESSAGE_LEN; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::node::peer_key::Key` [INFO] [stdout] --> src/discovery/protocol.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::node::peer_key::Key; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Message` and `ResponseBytes` [INFO] [stdout] --> src/discovery/protocol.rs:5:27 [INFO] [stdout] | [INFO] [stdout] 5 | InnerKey, KadMessage, Message, MessageKey, Nodes, Peer, RPCBytes, RequestBytes, ResponseBytes, [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Rng` and `thread_rng` [INFO] [stdout] --> src/discovery/protocol.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | use rand::{thread_rng, Rng}; [INFO] [stdout] | ^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> src/discovery/protocol.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::marker::PhantomData` [INFO] [stdout] --> src/discovery/protocol.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::marker::PhantomData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::SocketAddr` [INFO] [stdout] --> src/discovery/protocol.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::net::SocketAddr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::UdpSocket` [INFO] [stdout] --> src/discovery/protocol.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::net::UdpSocket; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender` [INFO] [stdout] --> src/discovery/protocol.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use std::sync::mpsc::Sender; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling udp2p v0.1.6 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/discovery/protocol.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::traits::routable::Routable` [INFO] [stdout] --> src/discovery/protocol.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::traits::routable::Routable; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MAX_BUCKETS` [INFO] [stdout] --> src/discovery/routing.rs:1:24 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::discovery::{MAX_BUCKETS, MAX_BUCKET_LEN, REFRESH_INTEVAL}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BTreeMap` [INFO] [stdout] --> src/discovery/routing.rs:10:24 [INFO] [stdout] | [INFO] [stdout] 10 | use std::collections::{BTreeMap, HashMap}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::SocketAddr` [INFO] [stdout] --> src/discovery/routing.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::net::SocketAddr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mem` [INFO] [stdout] --> src/discovery/routing.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | use std::{cmp, mem}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/discovery/kad.rs:109:14 [INFO] [stdout] | [INFO] [stdout] 109 | let (id, message) = self.prepare_find_node_message(local_info, None); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer` [INFO] [stdout] --> src/discovery/kad.rs:246:41 [INFO] [stdout] | [INFO] [stdout] 246 | pub fn prepare_store_message(&self, peer: &PeerInfo, value: Value) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_peer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:246:58 [INFO] [stdout] | [INFO] [stdout] 246 | pub fn prepare_store_message(&self, peer: &PeerInfo, value: Value) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer` [INFO] [stdout] --> src/discovery/kad.rs:247:42 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn prepare_saved_response(&self, peer: &PeerInfo, req: Req) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_peer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/discovery/kad.rs:247:59 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn prepare_saved_response(&self, peer: &PeerInfo, req: Req) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:248:46 [INFO] [stdout] | [INFO] [stdout] 248 | pub fn prepare_find_value_message(&self, value: Value) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer` [INFO] [stdout] --> src/discovery/kad.rs:249:42 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn prepare_value_response(&self, peer: &PeerInfo, value: Value, req: Req) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_peer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:249:59 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn prepare_value_response(&self, peer: &PeerInfo, value: Value, req: Req) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/discovery/kad.rs:249:73 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn prepare_value_response(&self, peer: &PeerInfo, value: Value, req: Req) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/discovery/kad.rs:261:18 [INFO] [stdout] | [INFO] [stdout] 261 | let (id, sender, rpc) = request.to_components(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:273:32 [INFO] [stdout] | [INFO] [stdout] 273 | RPC::FindValue(value) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/discovery/kad.rs:285:28 [INFO] [stdout] | [INFO] [stdout] 285 | RPC::Store(key, value) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:285:33 [INFO] [stdout] | [INFO] [stdout] 285 | RPC::Store(key, value) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `receiver` [INFO] [stdout] --> src/discovery/kad.rs:321:23 [INFO] [stdout] | [INFO] [stdout] 321 | let (req, receiver, rpc) = rm.to_components(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_receiver` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/discovery/kad.rs:323:22 [INFO] [stdout] | [INFO] [stdout] 323 | let (id, sender, req_rpc) = request.to_components(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/discovery/kad.rs:323:26 [INFO] [stdout] | [INFO] [stdout] 323 | let (id, sender, req_rpc) = request.to_components(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req_rpc` [INFO] [stdout] --> src/discovery/kad.rs:323:34 [INFO] [stdout] | [INFO] [stdout] 323 | let (id, sender, req_rpc) = request.to_components(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_req_rpc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `complete` [INFO] [stdout] --> src/discovery/kad.rs:324:25 [INFO] [stdout] | [INFO] [stdout] 324 | let mut complete = false; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_complete` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:354:32 [INFO] [stdout] | [INFO] [stdout] 354 | RPC::Value(value) => {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/discovery/kad.rs:355:32 [INFO] [stdout] | [INFO] [stdout] 355 | RPC::Saved(key) => {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/discovery/kad.rs:324:21 [INFO] [stdout] | [INFO] [stdout] 324 | let mut complete = false; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `node` [INFO] [stdout] --> src/discovery/kad.rs:397:33 [INFO] [stdout] | [INFO] [stdout] 397 | pub fn ping_node(&mut self, node: PeerInfo) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `node` [INFO] [stdout] --> src/discovery/kad.rs:398:37 [INFO] [stdout] | [INFO] [stdout] 398 | pub fn pong_response(&mut self, node: PeerInfo, req: Req) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/discovery/kad.rs:398:53 [INFO] [stdout] | [INFO] [stdout] 398 | pub fn pong_response(&mut self, node: PeerInfo, req: Req) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/discovery/kad.rs:414:17 [INFO] [stdout] | [INFO] [stdout] 414 | let (_, sender, rpc) = req.to_components(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rpc` [INFO] [stdout] --> src/discovery/kad.rs:414:25 [INFO] [stdout] | [INFO] [stdout] 414 | let (_, sender, rpc) = req.to_components(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rpc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/discovery/kad.rs:420:14 [INFO] [stdout] | [INFO] [stdout] 420 | let (id, msg) = self.prepare_new_peer_message(node.clone()); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/discovery/kad.rs:411:13 [INFO] [stdout] | [INFO] [stdout] 411 | let mut closest_peers = self [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:436:36 [INFO] [stdout] | [INFO] [stdout] 436 | pub fn lookup_value(&mut self, value: Value) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:437:35 [INFO] [stdout] | [INFO] [stdout] 437 | pub fn store_value(&mut self, value: Value) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `index` [INFO] [stdout] --> src/discovery/routing.rs:70:29 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn split(&mut self, index: usize, prefix: String) -> KBucket { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 70 | pub fn split(&mut self, _index: usize, prefix: String) -> KBucket { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `DEFAULT_N_PEERS` [INFO] [stdout] | [INFO] [stdout] 70 - pub fn split(&mut self, index: usize, prefix: String) -> KBucket { [INFO] [stdout] 70 + pub fn split(&mut self, discovery::DEFAULT_N_PEERS: usize, prefix: String) -> KBucket { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `prefix` [INFO] [stdout] --> src/discovery/routing.rs:70:43 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn split(&mut self, index: usize, prefix: String) -> KBucket { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/discovery/routing.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | let mut new_bucket = KBucket::new(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:77:41 [INFO] [stdout] | [INFO] [stdout] 77 | self.nodes.clone().iter().map(|(k, v)| v.clone()).collect() [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:218:26 [INFO] [stdout] | [INFO] [stdout] 218 | if let Some((k, nodes)) = iter.next() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:229:26 [INFO] [stdout] | [INFO] [stdout] 229 | if let Some((k, nodes)) = iter.next() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bucket` [INFO] [stdout] --> src/discovery/routing.rs:179:32 [INFO] [stdout] | [INFO] [stdout] 179 | cloned_tree.retain(|k, bucket| { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bucket` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:186:55 [INFO] [stdout] | [INFO] [stdout] 186 | let total = cloned_tree.iter().fold(0, |acc, (k, v)| acc + v.size()); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/discovery/routing.rs:211:43 [INFO] [stdout] | [INFO] [stdout] 211 | closest.sort_unstable_by_key(|(k, v)| k.len()); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:334:41 [INFO] [stdout] | [INFO] [stdout] 334 | self.tree.iter().fold(0, |acc, (k, v)| acc + v.size()) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:341:20 [INFO] [stdout] | [INFO] [stdout] 341 | .map(|(k, v)| v.get_nodes()) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/gossip/gossip.rs:285:32 [INFO] [stdout] | [INFO] [stdout] 285 | if let Err(e) = tx.clone().send(string) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_BUCKETS` is never used [INFO] [stdout] --> src/discovery/mod.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const MAX_BUCKETS: usize = 10; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KAD_MESSAGE_LEN` is never used [INFO] [stdout] --> src/discovery/mod.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const KAD_MESSAGE_LEN: usize = 55000; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REQ_TIMEOUT` is never used [INFO] [stdout] --> src/discovery/mod.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const REQ_TIMEOUT: usize = 60_000_000_000; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_ACTIVE_RPCS` is never used [INFO] [stdout] --> src/discovery/mod.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const MAX_ACTIVE_RPCS: usize = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/node/peer_key.rs:123:13 [INFO] [stdout] | [INFO] [stdout] 123 | write!(f, "{:b}", byte); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 123 | let _ = write!(f, "{:b}", byte); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0601]: `main` function not found in crate `kad` [INFO] [stdout] | [INFO] [stdout] = note: consider adding a `main` function to `examples/kad.rs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0601]: `main` function not found in crate `gossip` [INFO] [stdout] | [INFO] [stdout] = note: consider adding a `main` function to `examples/gossip.rs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0601`. [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0601`. [INFO] [stdout] [INFO] [stderr] error: could not compile `udp2p` (example "gossip") due to 1 previous error [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `udp2p` (example "kad") due to 1 previous error [INFO] [stdout] error[E0601]: `main` function not found in crate `r#mod` [INFO] [stdout] --> examples/mod.rs:3:16 [INFO] [stdout] | [INFO] [stdout] 3 | pub mod gossip; [INFO] [stdout] | ^ the main function must be defined at the crate level (in `examples/mod.rs`) [INFO] [stdout] | [INFO] [stdout] note: here is a function named `main` [INFO] [stdout] --> examples/chat.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | #[async_std::main] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: here is a function named `main` [INFO] [stdout] --> examples/chat.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | #[async_std::main] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: you have one or more functions named `main` not defined at the crate level [INFO] [stdout] = help: consider moving the `main` function definitions [INFO] [stdout] = note: this error originates in the attribute macro `async_std::main` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0601`. [INFO] [stdout] [INFO] [stderr] error: could not compile `udp2p` (example "mod") due to 1 previous error [INFO] [stdout] warning: unused import: `crate::node::peer_key::Key` [INFO] [stdout] --> src/discovery/kad.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::node::peer_key::Key; [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 imports: `HashMap` and `VecDeque` [INFO] [stdout] --> src/discovery/kad.rs:9:24 [INFO] [stdout] | [INFO] [stdout] 9 | use std::collections::{HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `channel` [INFO] [stdout] --> src/discovery/kad.rs:11:23 [INFO] [stdout] | [INFO] [stdout] 11 | use std::sync::mpsc::{channel, Receiver, Sender}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::utils::utils::timestamp_now` [INFO] [stdout] --> src/discovery/kad.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::utils::utils::timestamp_now; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::utils::utils::Distance` [INFO] [stdout] --> src/discovery/kad.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::utils::utils::Distance; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/discovery/protocol.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | / /// Implements ByteRep trait for RPC, Req & Resp structs so they can be [INFO] [stdout] 21 | | /// represented as a vector of bytes and/or returned to their struct form [INFO] [stdout] 22 | | /// with one simple function call. [INFO] [stdout] | |_---------------------------------^ [INFO] [stdout] | | [INFO] [stdout] | rustdoc does not generate documentation for macro invocations [INFO] [stdout] | [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::discovery::KAD_MESSAGE_LEN` [INFO] [stdout] --> src/discovery/protocol.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::discovery::KAD_MESSAGE_LEN; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::node::peer_key::Key` [INFO] [stdout] --> src/discovery/protocol.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::node::peer_key::Key; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Message` and `ResponseBytes` [INFO] [stdout] --> src/discovery/protocol.rs:5:27 [INFO] [stdout] | [INFO] [stdout] 5 | InnerKey, KadMessage, Message, MessageKey, Nodes, Peer, RPCBytes, RequestBytes, ResponseBytes, [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Rng` and `thread_rng` [INFO] [stdout] --> src/discovery/protocol.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | use rand::{thread_rng, Rng}; [INFO] [stdout] | ^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> src/discovery/protocol.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::marker::PhantomData` [INFO] [stdout] --> src/discovery/protocol.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::marker::PhantomData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::SocketAddr` [INFO] [stdout] --> src/discovery/protocol.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::net::SocketAddr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::UdpSocket` [INFO] [stdout] --> src/discovery/protocol.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::net::UdpSocket; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender` [INFO] [stdout] --> src/discovery/protocol.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use std::sync::mpsc::Sender; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/discovery/protocol.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::traits::routable::Routable` [INFO] [stdout] --> src/discovery/protocol.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::traits::routable::Routable; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MAX_BUCKETS` [INFO] [stdout] --> src/discovery/routing.rs:1:24 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::discovery::{MAX_BUCKETS, MAX_BUCKET_LEN, REFRESH_INTEVAL}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BTreeMap` [INFO] [stdout] --> src/discovery/routing.rs:10:24 [INFO] [stdout] | [INFO] [stdout] 10 | use std::collections::{BTreeMap, HashMap}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::SocketAddr` [INFO] [stdout] --> src/discovery/routing.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::net::SocketAddr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mem` [INFO] [stdout] --> src/discovery/routing.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | use std::{cmp, mem}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/discovery/kad.rs:109:14 [INFO] [stdout] | [INFO] [stdout] 109 | let (id, message) = self.prepare_find_node_message(local_info, None); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer` [INFO] [stdout] --> src/discovery/kad.rs:246:41 [INFO] [stdout] | [INFO] [stdout] 246 | pub fn prepare_store_message(&self, peer: &PeerInfo, value: Value) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_peer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:246:58 [INFO] [stdout] | [INFO] [stdout] 246 | pub fn prepare_store_message(&self, peer: &PeerInfo, value: Value) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer` [INFO] [stdout] --> src/discovery/kad.rs:247:42 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn prepare_saved_response(&self, peer: &PeerInfo, req: Req) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_peer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/discovery/kad.rs:247:59 [INFO] [stdout] | [INFO] [stdout] 247 | pub fn prepare_saved_response(&self, peer: &PeerInfo, req: Req) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:248:46 [INFO] [stdout] | [INFO] [stdout] 248 | pub fn prepare_find_value_message(&self, value: Value) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer` [INFO] [stdout] --> src/discovery/kad.rs:249:42 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn prepare_value_response(&self, peer: &PeerInfo, value: Value, req: Req) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_peer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:249:59 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn prepare_value_response(&self, peer: &PeerInfo, value: Value, req: Req) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/discovery/kad.rs:249:73 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn prepare_value_response(&self, peer: &PeerInfo, value: Value, req: Req) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/discovery/kad.rs:261:18 [INFO] [stdout] | [INFO] [stdout] 261 | let (id, sender, rpc) = request.to_components(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:273:32 [INFO] [stdout] | [INFO] [stdout] 273 | RPC::FindValue(value) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/discovery/kad.rs:285:28 [INFO] [stdout] | [INFO] [stdout] 285 | RPC::Store(key, value) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:285:33 [INFO] [stdout] | [INFO] [stdout] 285 | RPC::Store(key, value) => { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `receiver` [INFO] [stdout] --> src/discovery/kad.rs:321:23 [INFO] [stdout] | [INFO] [stdout] 321 | let (req, receiver, rpc) = rm.to_components(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_receiver` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/discovery/kad.rs:323:22 [INFO] [stdout] | [INFO] [stdout] 323 | let (id, sender, req_rpc) = request.to_components(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/discovery/kad.rs:323:26 [INFO] [stdout] | [INFO] [stdout] 323 | let (id, sender, req_rpc) = request.to_components(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req_rpc` [INFO] [stdout] --> src/discovery/kad.rs:323:34 [INFO] [stdout] | [INFO] [stdout] 323 | let (id, sender, req_rpc) = request.to_components(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_req_rpc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `complete` [INFO] [stdout] --> src/discovery/kad.rs:324:25 [INFO] [stdout] | [INFO] [stdout] 324 | let mut complete = false; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_complete` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:354:32 [INFO] [stdout] | [INFO] [stdout] 354 | RPC::Value(value) => {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/discovery/kad.rs:355:32 [INFO] [stdout] | [INFO] [stdout] 355 | RPC::Saved(key) => {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/discovery/kad.rs:324:21 [INFO] [stdout] | [INFO] [stdout] 324 | let mut complete = false; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `node` [INFO] [stdout] --> src/discovery/kad.rs:397:33 [INFO] [stdout] | [INFO] [stdout] 397 | pub fn ping_node(&mut self, node: PeerInfo) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `node` [INFO] [stdout] --> src/discovery/kad.rs:398:37 [INFO] [stdout] | [INFO] [stdout] 398 | pub fn pong_response(&mut self, node: PeerInfo, req: Req) {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/discovery/kad.rs:398:53 [INFO] [stdout] | [INFO] [stdout] 398 | pub fn pong_response(&mut self, node: PeerInfo, req: Req) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/discovery/kad.rs:414:17 [INFO] [stdout] | [INFO] [stdout] 414 | let (_, sender, rpc) = req.to_components(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rpc` [INFO] [stdout] --> src/discovery/kad.rs:414:25 [INFO] [stdout] | [INFO] [stdout] 414 | let (_, sender, rpc) = req.to_components(); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_rpc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/discovery/kad.rs:420:14 [INFO] [stdout] | [INFO] [stdout] 420 | let (id, msg) = self.prepare_new_peer_message(node.clone()); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/discovery/kad.rs:411:13 [INFO] [stdout] | [INFO] [stdout] 411 | let mut closest_peers = self [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:436:36 [INFO] [stdout] | [INFO] [stdout] 436 | pub fn lookup_value(&mut self, value: Value) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `value` [INFO] [stdout] --> src/discovery/kad.rs:437:35 [INFO] [stdout] | [INFO] [stdout] 437 | pub fn store_value(&mut self, value: Value) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `index` [INFO] [stdout] --> src/discovery/routing.rs:70:29 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn split(&mut self, index: usize, prefix: String) -> KBucket { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 70 | pub fn split(&mut self, _index: usize, prefix: String) -> KBucket { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `DEFAULT_N_PEERS` [INFO] [stdout] | [INFO] [stdout] 70 - pub fn split(&mut self, index: usize, prefix: String) -> KBucket { [INFO] [stdout] 70 + pub fn split(&mut self, discovery::DEFAULT_N_PEERS: usize, prefix: String) -> KBucket { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `prefix` [INFO] [stdout] --> src/discovery/routing.rs:70:43 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn split(&mut self, index: usize, prefix: String) -> KBucket { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/discovery/routing.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | let mut new_bucket = KBucket::new(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:77:41 [INFO] [stdout] | [INFO] [stdout] 77 | self.nodes.clone().iter().map(|(k, v)| v.clone()).collect() [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:218:26 [INFO] [stdout] | [INFO] [stdout] 218 | if let Some((k, nodes)) = iter.next() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:229:26 [INFO] [stdout] | [INFO] [stdout] 229 | if let Some((k, nodes)) = iter.next() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bucket` [INFO] [stdout] --> src/discovery/routing.rs:179:32 [INFO] [stdout] | [INFO] [stdout] 179 | cloned_tree.retain(|k, bucket| { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_bucket` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:186:55 [INFO] [stdout] | [INFO] [stdout] 186 | let total = cloned_tree.iter().fold(0, |acc, (k, v)| acc + v.size()); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/discovery/routing.rs:211:43 [INFO] [stdout] | [INFO] [stdout] 211 | closest.sort_unstable_by_key(|(k, v)| k.len()); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:334:41 [INFO] [stdout] | [INFO] [stdout] 334 | self.tree.iter().fold(0, |acc, (k, v)| acc + v.size()) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/discovery/routing.rs:341:20 [INFO] [stdout] | [INFO] [stdout] 341 | .map(|(k, v)| v.get_nodes()) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/gossip/gossip.rs:285:32 [INFO] [stdout] | [INFO] [stdout] 285 | if let Err(e) = tx.clone().send(string) { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_BUCKETS` is never used [INFO] [stdout] --> src/discovery/mod.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const MAX_BUCKETS: usize = 10; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `KAD_MESSAGE_LEN` is never used [INFO] [stdout] --> src/discovery/mod.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const KAD_MESSAGE_LEN: usize = 55000; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REQ_TIMEOUT` is never used [INFO] [stdout] --> src/discovery/mod.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const REQ_TIMEOUT: usize = 60_000_000_000; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_ACTIVE_RPCS` is never used [INFO] [stdout] --> src/discovery/mod.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const MAX_ACTIVE_RPCS: usize = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/node/peer_key.rs:123:13 [INFO] [stdout] | [INFO] [stdout] 123 | write!(f, "{:b}", byte); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 123 | let _ = write!(f, "{:b}", byte); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "dea3a4f10d8c8b580ae715d568f9b12ae58ee97cc657c85f0f92dc805a4386df", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dea3a4f10d8c8b580ae715d568f9b12ae58ee97cc657c85f0f92dc805a4386df", kill_on_drop: false }` [INFO] [stdout] dea3a4f10d8c8b580ae715d568f9b12ae58ee97cc657c85f0f92dc805a4386df