[INFO] fetching crate udp2p 0.1.6... [INFO] testing udp2p-0.1.6 against beta-2022-04-10 for beta-1.61-1 [INFO] extracting crate udp2p 0.1.6 into /workspace/builds/worker-8/source [INFO] validating manifest of crates.io crate udp2p 0.1.6 on toolchain beta-2022-04-10 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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-8/source/Cargo.toml [INFO] crate crates.io crate udp2p 0.1.6 already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 14293fab12e2b08979df31e64b6e04e15c1dac151b156dda9df23244207fd8d7 [INFO] running `Command { std: "docker" "start" "-a" "14293fab12e2b08979df31e64b6e04e15c1dac151b156dda9df23244207fd8d7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "14293fab12e2b08979df31e64b6e04e15c1dac151b156dda9df23244207fd8d7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "14293fab12e2b08979df31e64b6e04e15c1dac151b156dda9df23244207fd8d7", kill_on_drop: false }` [INFO] [stdout] 14293fab12e2b08979df31e64b6e04e15c1dac151b156dda9df23244207fd8d7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 2e24a6a1d3c33cd3582d3ffcc5106b69ec48cd8578b240dd2e02e06eb1542933 [INFO] running `Command { std: "docker" "start" "-a" "2e24a6a1d3c33cd3582d3ffcc5106b69ec48cd8578b240dd2e02e06eb1542933", kill_on_drop: false }` [INFO] [stderr] Compiling syn v1.0.88 [INFO] [stderr] Compiling libc v0.2.120 [INFO] [stderr] Compiling derive_builder v0.9.0 [INFO] [stderr] Compiling num_threads v0.1.4 [INFO] [stderr] Compiling endian-type v0.1.2 [INFO] [stderr] Compiling nibble_vec v0.1.0 [INFO] [stderr] Compiling tracing-core v0.1.23 [INFO] [stderr] Compiling sha2 v0.9.9 [INFO] [stderr] Compiling radix_trie v0.2.1 [INFO] [stderr] Compiling sha256 v1.0.3 [INFO] [stderr] Compiling socket2 v0.4.4 [INFO] [stderr] Compiling getrandom v0.2.5 [INFO] [stderr] Compiling parking_lot_core v0.9.1 [INFO] [stderr] Compiling num_cpus v1.13.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.0 [INFO] [stderr] Compiling time v0.3.7 [INFO] [stderr] Compiling rand_core v0.6.3 [INFO] [stderr] Compiling ahash v0.7.6 [INFO] [stderr] Compiling parking_lot v0.12.0 [INFO] [stderr] Compiling dns-lookup v1.0.8 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling hashbrown v0.11.2 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling griddle v0.5.2 [INFO] [stderr] Compiling ritelinked v0.3.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 async-trait v0.1.52 [INFO] [stderr] Compiling pin-project-internal v1.0.10 [INFO] [stderr] Compiling serde_derive v1.0.136 [INFO] [stderr] Compiling async-attributes v1.1.2 [INFO] [stderr] Compiling darling_macro v0.10.2 [INFO] [stderr] Compiling value-bag v1.0.0-alpha.8 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling futures-util v0.3.21 [INFO] [stderr] Compiling pin-project v1.0.10 [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 darling v0.10.2 [INFO] [stderr] Compiling async-io v1.6.0 [INFO] [stderr] Compiling derive_builder_core v0.9.0 [INFO] [stderr] Compiling tokio v1.17.0 [INFO] [stderr] Compiling tracing v0.1.32 [INFO] [stderr] Compiling thiserror v1.0.30 [INFO] [stderr] Compiling serde v1.0.136 [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 serde_json v1.0.79 [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)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HashMap`, `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] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [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`, `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`, `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)]` 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: 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: 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] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [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: 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: `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: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: `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: 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)]` on by default [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: 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: constant is never used: `MAX_BUCKETS` [INFO] [stdout] --> src/discovery/mod.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | const MAX_BUCKETS: usize = 10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `KAD_MESSAGE_LEN` [INFO] [stdout] --> src/discovery/mod.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | const KAD_MESSAGE_LEN: usize = 55000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `REQ_TIMEOUT` [INFO] [stdout] --> src/discovery/mod.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | const REQ_TIMEOUT: usize = 60_000_000_000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `MAX_ACTIVE_RPCS` [INFO] [stdout] --> src/discovery/mod.rs:10:1 [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: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 68 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 50s [INFO] running `Command { std: "docker" "inspect" "2e24a6a1d3c33cd3582d3ffcc5106b69ec48cd8578b240dd2e02e06eb1542933", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2e24a6a1d3c33cd3582d3ffcc5106b69ec48cd8578b240dd2e02e06eb1542933", kill_on_drop: false }` [INFO] [stdout] 2e24a6a1d3c33cd3582d3ffcc5106b69ec48cd8578b240dd2e02e06eb1542933 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:eaef2f80f755933c374d2ae5edccceec0c1312ceb8a4e0b6404e8ab76561e1e5" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 81801b091b362938e08b735b9be4f82714d3cb85cfe6f4cc1fc281d7ea7e1048 [INFO] running `Command { std: "docker" "start" "-a" "81801b091b362938e08b735b9be4f82714d3cb85cfe6f4cc1fc281d7ea7e1048", 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)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HashMap`, `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] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [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`, `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`, `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)]` 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: 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: 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] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [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: 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: `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: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: `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: 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)]` on by default [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] [stderr] Compiling udp2p v0.1.6 (/opt/rustwide/workdir) [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: constant is never used: `MAX_BUCKETS` [INFO] [stdout] --> src/discovery/mod.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | const MAX_BUCKETS: usize = 10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `KAD_MESSAGE_LEN` [INFO] [stdout] --> src/discovery/mod.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | const KAD_MESSAGE_LEN: usize = 55000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `REQ_TIMEOUT` [INFO] [stdout] --> src/discovery/mod.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | const REQ_TIMEOUT: usize = 60_000_000_000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `MAX_ACTIVE_RPCS` [INFO] [stdout] --> src/discovery/mod.rs:10:1 [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: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 68 warnings emitted [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] error: aborting due to previous error [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` due to 2 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [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: aborting due to previous error [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` due to 2 previous errors [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)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HashMap`, `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] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [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`, `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`, `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] error[E0601]: `main` function not found in crate `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] error: aborting due to previous error [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` due to 2 previous errors [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)]` 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: 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: 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] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [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: 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: `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: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: `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: 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)]` on by default [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: 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: constant is never used: `MAX_BUCKETS` [INFO] [stdout] --> src/discovery/mod.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | const MAX_BUCKETS: usize = 10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `KAD_MESSAGE_LEN` [INFO] [stdout] --> src/discovery/mod.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | const KAD_MESSAGE_LEN: usize = 55000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `REQ_TIMEOUT` [INFO] [stdout] --> src/discovery/mod.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | const REQ_TIMEOUT: usize = 60_000_000_000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `MAX_ACTIVE_RPCS` [INFO] [stdout] --> src/discovery/mod.rs:10:1 [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: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 68 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "81801b091b362938e08b735b9be4f82714d3cb85cfe6f4cc1fc281d7ea7e1048", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "81801b091b362938e08b735b9be4f82714d3cb85cfe6f4cc1fc281d7ea7e1048", kill_on_drop: false }` [INFO] [stdout] 81801b091b362938e08b735b9be4f82714d3cb85cfe6f4cc1fc281d7ea7e1048