[INFO] cloning repository https://github.com/jsam/rpcnet [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jsam/rpcnet" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjsam%2Frpcnet", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjsam%2Frpcnet'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c7c87ccb1181c88c38b39c1ef11dac16aeb82115 [INFO] checking jsam/rpcnet against master#385fa9d845dd326c6bbfd58c22244215e431948a for absurd-question-mark-desugar [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjsam%2Frpcnet" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/jsam/rpcnet on toolchain 385fa9d845dd326c6bbfd58c22244215e431948a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/jsam/rpcnet [INFO] finished tweaking git repo https://github.com/jsam/rpcnet [INFO] tweaked toml for git repo https://github.com/jsam/rpcnet written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/jsam/rpcnet 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" "+385fa9d845dd326c6bbfd58c22244215e431948a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: file `/workspace/builds/worker-2-tc1/source/src/lib.rs` found to be present in multiple build targets: [INFO] [stderr] * `lib` target `rpcnet` [INFO] [stderr] * `bin` target `rpcnet` [INFO] [stderr] warning: unused manifest key: build [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded serde_derive v1.0.165 [INFO] [stderr] Downloaded serde v1.0.165 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 888fcba85391f2b4353d1601d426bb334b3d926409174e683315dded3ff3f892 [INFO] running `Command { std: "docker" "start" "-a" "888fcba85391f2b4353d1601d426bb334b3d926409174e683315dded3ff3f892", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "888fcba85391f2b4353d1601d426bb334b3d926409174e683315dded3ff3f892", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "888fcba85391f2b4353d1601d426bb334b3d926409174e683315dded3ff3f892", kill_on_drop: false }` [INFO] [stdout] 888fcba85391f2b4353d1601d426bb334b3d926409174e683315dded3ff3f892 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 04949c466a4a6fb699710a71f229c1e18909983d1655cc7cb17542346ec4ce91 [INFO] running `Command { std: "docker" "start" "-a" "04949c466a4a6fb699710a71f229c1e18909983d1655cc7cb17542346ec4ce91", kill_on_drop: false }` [INFO] [stderr] warning: file `/opt/rustwide/workdir/src/lib.rs` found to be present in multiple build targets: [INFO] [stderr] * `lib` target `rpcnet` [INFO] [stderr] * `bin` target `rpcnet` [INFO] [stderr] warning: unused manifest key: build [INFO] [stderr] Compiling proc-macro2 v1.0.63 [INFO] [stderr] Compiling libc v0.2.147 [INFO] [stderr] Compiling unicode-ident v1.0.9 [INFO] [stderr] Compiling quote v1.0.29 [INFO] [stderr] Compiling lock_api v0.4.10 [INFO] [stderr] Compiling parking_lot_core v0.9.8 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Compiling paste v1.0.12 [INFO] [stderr] Checking smallvec v1.10.0 [INFO] [stderr] Compiling futures-core v0.3.28 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Compiling tokio v1.29.1 [INFO] [stderr] Compiling serde v1.0.165 [INFO] [stderr] Checking pin-project-lite v0.2.10 [INFO] [stderr] Compiling async-trait v0.1.71 [INFO] [stderr] Checking bytes v1.4.0 [INFO] [stderr] Checking log v0.4.19 [INFO] [stderr] Checking socket2 v0.4.9 [INFO] [stderr] Checking mio v0.8.8 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Compiling syn v2.0.23 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking rmp v0.8.11 [INFO] [stderr] Checking rmp-serde v1.1.1 [INFO] [stderr] Compiling tokio-macros v2.1.0 [INFO] [stderr] Compiling async-stream-impl v0.3.5 [INFO] [stderr] Compiling serde_derive v1.0.165 [INFO] [stderr] Checking async-stream v0.3.5 [INFO] [stderr] Checking tokio-stream v0.1.14 [INFO] [stderr] Checking rpcnet v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: the feature `async_fn_in_trait` has been stable since 1.75.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(async_fn_in_trait)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `async_fn_in_trait` has been stable since 1.75.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(async_fn_in_trait)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/queues/multiplex.rs:51:29 [INFO] [stdout] | [INFO] [stdout] 51 | Ok((stream, addr)) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ready` [INFO] [stdout] --> src/queues/multiplex.rs:59:25 [INFO] [stdout] | [INFO] [stdout] 59 | let ready = ready.unwrap(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ready` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/queues/multiplex.rs:51:29 [INFO] [stdout] | [INFO] [stdout] 51 | Ok((stream, addr)) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ready` [INFO] [stdout] --> src/queues/multiplex.rs:59:25 [INFO] [stdout] | [INFO] [stdout] 59 | let ready = ready.unwrap(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ready` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/rpc/server.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | let addr = listener.external_addr(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `outgoing` [INFO] [stdout] --> src/rpc/status.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | outgoing: Outgoing, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outgoing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/rpc/status.rs:124:38 [INFO] [stdout] | [INFO] [stdout] 124 | ... let (req, res) = [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/rpc/server.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | let addr = listener.external_addr(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `outgoing` [INFO] [stdout] --> src/rpc/status.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | outgoing: Outgoing, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outgoing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/rpc/status.rs:124:38 [INFO] [stdout] | [INFO] [stdout] 124 | ... let (req, res) = [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/transport/message.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | let result = reader.read_exact(&mut bytes).await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/transport/message.rs:115:16 [INFO] [stdout] | [INFO] [stdout] 115 | Ok(size) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/transport/message.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | let result = reader.read_exact(&mut bytes).await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/transport/message.rs:115:16 [INFO] [stdout] | [INFO] [stdout] 115 | Ok(size) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/file.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | if let Err(err) = copy(&mut file, &mut stream) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/file.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | if let Err(err) = copy(&mut file, &mut stream) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/network.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | let tx = tokio::spawn(async move { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `server` [INFO] [stdout] --> src/network.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let server = tokio::spawn(async move { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_server` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/queues/receiver.rs:69:25 [INFO] [stdout] | [INFO] [stdout] 69 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/network.rs:68:29 [INFO] [stdout] | [INFO] [stdout] 68 | let mut ping = request.next().await; [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/network.rs:85:17 [INFO] [stdout] | [INFO] [stdout] 85 | let mut pong = rx.next().await; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/queues/receiver.rs:69:25 [INFO] [stdout] | [INFO] [stdout] 69 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/queues/receiver.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | mut instream: OwnedReadHalf, [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/queues/receiver.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | mut instream: OwnedReadHalf, [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: unused variable: `from` [INFO] [stdout] --> src/queues/sender.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | from: SocketAddr, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_from` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/queues/sender.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | to: SocketAddr, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/queues/sender.rs:30:28 [INFO] [stdout] | [INFO] [stdout] 30 | if let Err(err) = msg.write_async(&mut outstream).await { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `from` [INFO] [stdout] --> src/queues/sender.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | from: SocketAddr, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_from` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/queues/sender.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | to: SocketAddr, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/queues/sender.rs:30:28 [INFO] [stdout] | [INFO] [stdout] 30 | if let Err(err) = msg.write_async(&mut outstream).await { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rpc/multiplex.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | let mut is_ok = true; [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/rpc/multiplex.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | let mut is_ok = true; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `incoming` [INFO] [stdout] --> src/rpc/server.rs:96:24 [INFO] [stdout] | [INFO] [stdout] 96 | let (outgoing, incoming) = [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_incoming` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/transport/message.rs:21:21 [INFO] [stdout] | [INFO] [stdout] 21 | fn from_message(sender: Sender, msg: MessageBuf) -> io::Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/lib.rs:22:10 [INFO] [stdout] | [INFO] [stdout] 22 | async fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/transport/message.rs:21:21 [INFO] [stdout] | [INFO] [stdout] 21 | fn from_message(sender: Sender, msg: MessageBuf) -> io::Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `HasHostname` is never used [INFO] [stdout] --> src/file.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | trait HasHostname { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileHandler` is never constructed [INFO] [stdout] --> src/file.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct FileHandler {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FileHandler` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `upload`, and `download` are never used [INFO] [stdout] --> src/file.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl FileHandler { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 17 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn upload>( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn download>(&self, url: &str, path: P) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NetworkHandler` is never constructed [INFO] [stdout] --> src/network.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct NetworkHandler {} [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NetworkHandler` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `connect`, and `listen` are never used [INFO] [stdout] --> src/network.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl NetworkHandler { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 18 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub async fn connect( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub async fn listen>>( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `external` and `port` are never read [INFO] [stdout] --> src/queues/listener.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct Listener { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 19 | external: Arc, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 20 | port: u16, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `start` and `external_addr` are never used [INFO] [stdout] --> src/queues/listener.rs:25:18 [INFO] [stdout] | [INFO] [stdout] 24 | impl Listener { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 25 | pub async fn start(hostname: String, port: u16) -> io::Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn external_addr(&self) -> (&str, u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `make_connection` is never used [INFO] [stdout] --> src/queues/multiplex.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn make_connection + Send + 'static>( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `from`, `to`, and `responder` are never read [INFO] [stdout] --> src/queues/receiver.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Receiver [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 20 | from: SocketAddr, [INFO] [stdout] | ^^^^ [INFO] [stdout] 21 | to: SocketAddr, [INFO] [stdout] | ^^ [INFO] [stdout] 22 | // TODO: short-circuit responder [INFO] [stdout] 23 | pub responder: Sender, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `listener` is never read [INFO] [stdout] --> src/rpc/server.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Server { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 9 | listener: JoinHandle<()>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RpcNet` is never constructed [INFO] [stdout] --> src/rpcnet.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct RpcNet { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RpcNet` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `hostname`, `client`, and `server` are never used [INFO] [stdout] --> src/rpcnet.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl RpcNet { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 20 | pub fn new>>(hostname: T) -> io::Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn hostname(&self) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub async fn client( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub async fn server< [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TcpHandler` is never constructed [INFO] [stdout] --> src/transport/tcp.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct TcpHandler { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `url` are never used [INFO] [stdout] --> src/transport/tcp.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl TcpHandler { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 9 | pub fn new(url: String, listener: TcpListener) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn url(&self) -> String { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/queues/sender.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | drop(handle.abort()); [INFO] [stdout] | ^^^^^--------------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `()` [INFO] [stdout] | [INFO] [stdout] = note: use `let _ = ...` to ignore the expression or result [INFO] [stdout] = note: `#[warn(dropping_copy_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `HasHostname` is never used [INFO] [stdout] --> src/file.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | trait HasHostname { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileHandler` is never constructed [INFO] [stdout] --> src/file.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct FileHandler {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FileHandler` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `upload`, and `download` are never used [INFO] [stdout] --> src/file.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl FileHandler { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 17 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn upload>( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn download>(&self, url: &str, path: P) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `from`, `to`, and `responder` are never read [INFO] [stdout] --> src/queues/receiver.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Receiver [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 20 | from: SocketAddr, [INFO] [stdout] | ^^^^ [INFO] [stdout] 21 | to: SocketAddr, [INFO] [stdout] | ^^ [INFO] [stdout] 22 | // TODO: short-circuit responder [INFO] [stdout] 23 | pub responder: Sender, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `listener` is never read [INFO] [stdout] --> src/rpc/server.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Server { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 9 | listener: JoinHandle<()>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RpcNet` is never constructed [INFO] [stdout] --> src/rpcnet.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct RpcNet { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RpcNet` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `hostname`, `client`, and `server` are never used [INFO] [stdout] --> src/rpcnet.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl RpcNet { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 20 | pub fn new>>(hostname: T) -> io::Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn hostname(&self) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub async fn client( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub async fn server< [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TcpHandler` is never constructed [INFO] [stdout] --> src/transport/tcp.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct TcpHandler { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `url` are never used [INFO] [stdout] --> src/transport/tcp.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl TcpHandler { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 9 | pub fn new(url: String, listener: TcpListener) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn url(&self) -> String { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/rpc/multiplex.rs:71:21 [INFO] [stdout] | [INFO] [stdout] 71 | incoming_tx.send(Ok(request)); [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)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 71 | let _ = incoming_tx.send(Ok(request)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/queues/sender.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | drop(handle.abort()); [INFO] [stdout] | ^^^^^--------------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `()` [INFO] [stdout] | [INFO] [stdout] = note: use `let _ = ...` to ignore the expression or result [INFO] [stdout] = note: `#[warn(dropping_copy_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/rpc/multiplex.rs:71:21 [INFO] [stdout] | [INFO] [stdout] 71 | incoming_tx.send(Ok(request)); [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)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 71 | let _ = incoming_tx.send(Ok(request)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 32 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 33 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `async_fn_in_trait` has been stable since 1.75.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(async_fn_in_trait)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `async_fn_in_trait` has been stable since 1.75.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(async_fn_in_trait)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/queues/multiplex.rs:51:29 [INFO] [stdout] | [INFO] [stdout] 51 | Ok((stream, addr)) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ready` [INFO] [stdout] --> src/queues/multiplex.rs:59:25 [INFO] [stdout] | [INFO] [stdout] 59 | let ready = ready.unwrap(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ready` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/rpc/server.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | let addr = listener.external_addr(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/queues/multiplex.rs:51:29 [INFO] [stdout] | [INFO] [stdout] 51 | Ok((stream, addr)) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ready` [INFO] [stdout] --> src/queues/multiplex.rs:59:25 [INFO] [stdout] | [INFO] [stdout] 59 | let ready = ready.unwrap(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ready` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `outgoing` [INFO] [stdout] --> src/rpc/status.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | outgoing: Outgoing, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outgoing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/rpc/status.rs:124:38 [INFO] [stdout] | [INFO] [stdout] 124 | ... let (req, res) = [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/rpc/server.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | let addr = listener.external_addr(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/transport/message.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | let result = reader.read_exact(&mut bytes).await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/transport/message.rs:115:16 [INFO] [stdout] | [INFO] [stdout] 115 | Ok(size) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `outgoing` [INFO] [stdout] --> src/rpc/status.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | outgoing: Outgoing, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outgoing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/rpc/status.rs:124:38 [INFO] [stdout] | [INFO] [stdout] 124 | ... let (req, res) = [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/transport/message.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | let result = reader.read_exact(&mut bytes).await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/transport/message.rs:115:16 [INFO] [stdout] | [INFO] [stdout] 115 | Ok(size) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/file.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | if let Err(err) = copy(&mut file, &mut stream) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/queues/receiver.rs:69:25 [INFO] [stdout] | [INFO] [stdout] 69 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/queues/receiver.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | mut instream: OwnedReadHalf, [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: unused variable: `from` [INFO] [stdout] --> src/queues/sender.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | from: SocketAddr, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_from` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/queues/sender.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | to: SocketAddr, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/queues/sender.rs:30:28 [INFO] [stdout] | [INFO] [stdout] 30 | if let Err(err) = msg.write_async(&mut outstream).await { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rpc/multiplex.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | let mut is_ok = true; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/transport/message.rs:21:21 [INFO] [stdout] | [INFO] [stdout] 21 | fn from_message(sender: Sender, msg: MessageBuf) -> io::Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/file.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | if let Err(err) = copy(&mut file, &mut stream) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `HasHostname` is never used [INFO] [stdout] --> src/file.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | trait HasHostname { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/network.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | let tx = tokio::spawn(async move { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `server` [INFO] [stdout] --> src/network.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let server = tokio::spawn(async move { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_server` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileHandler` is never constructed [INFO] [stdout] --> src/file.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct FileHandler {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FileHandler` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `upload`, and `download` are never used [INFO] [stdout] --> src/file.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl FileHandler { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 17 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn upload>( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn download>(&self, url: &str, path: P) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NetworkHandler` is never constructed [INFO] [stdout] --> src/network.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct NetworkHandler {} [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NetworkHandler` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `connect`, and `listen` are never used [INFO] [stdout] --> src/network.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl NetworkHandler { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 18 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub async fn connect( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub async fn listen>>( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `external` and `port` are never read [INFO] [stdout] --> src/queues/listener.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct Listener { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 19 | external: Arc, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 20 | port: u16, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `start` and `external_addr` are never used [INFO] [stdout] --> src/queues/listener.rs:25:18 [INFO] [stdout] | [INFO] [stdout] 24 | impl Listener { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 25 | pub async fn start(hostname: String, port: u16) -> io::Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn external_addr(&self) -> (&str, u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `make_connection` is never used [INFO] [stdout] --> src/queues/multiplex.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn make_connection + Send + 'static>( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `from`, `to`, and `responder` are never read [INFO] [stdout] --> src/queues/receiver.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Receiver [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 20 | from: SocketAddr, [INFO] [stdout] | ^^^^ [INFO] [stdout] 21 | to: SocketAddr, [INFO] [stdout] | ^^ [INFO] [stdout] 22 | // TODO: short-circuit responder [INFO] [stdout] 23 | pub responder: Sender, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/network.rs:68:29 [INFO] [stdout] | [INFO] [stdout] 68 | let mut ping = request.next().await; [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: field `listener` is never read [INFO] [stdout] --> src/rpc/server.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Server { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 9 | listener: JoinHandle<()>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RpcNet` is never constructed [INFO] [stdout] --> src/rpcnet.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct RpcNet { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RpcNet` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `hostname`, `client`, and `server` are never used [INFO] [stdout] --> src/rpcnet.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl RpcNet { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 20 | pub fn new>>(hostname: T) -> io::Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn hostname(&self) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub async fn client( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub async fn server< [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TcpHandler` is never constructed [INFO] [stdout] --> src/transport/tcp.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct TcpHandler { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `url` are never used [INFO] [stdout] --> src/transport/tcp.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl TcpHandler { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 9 | pub fn new(url: String, listener: TcpListener) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn url(&self) -> String { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/network.rs:85:17 [INFO] [stdout] | [INFO] [stdout] 85 | let mut pong = rx.next().await; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/queues/sender.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | drop(handle.abort()); [INFO] [stdout] | ^^^^^--------------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `()` [INFO] [stdout] | [INFO] [stdout] = note: use `let _ = ...` to ignore the expression or result [INFO] [stdout] = note: `#[warn(dropping_copy_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/queues/receiver.rs:69:25 [INFO] [stdout] | [INFO] [stdout] 69 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/queues/receiver.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | mut instream: OwnedReadHalf, [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `from` [INFO] [stdout] --> src/queues/sender.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | from: SocketAddr, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_from` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/rpc/multiplex.rs:71:21 [INFO] [stdout] | [INFO] [stdout] 71 | incoming_tx.send(Ok(request)); [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)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 71 | let _ = incoming_tx.send(Ok(request)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/queues/sender.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | to: SocketAddr, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/queues/sender.rs:30:28 [INFO] [stdout] | [INFO] [stdout] 30 | if let Err(err) = msg.write_async(&mut outstream).await { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 32 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rpc/multiplex.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | let mut is_ok = true; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `incoming` [INFO] [stdout] --> src/rpc/server.rs:96:24 [INFO] [stdout] | [INFO] [stdout] 96 | let (outgoing, incoming) = [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_incoming` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/transport/message.rs:21:21 [INFO] [stdout] | [INFO] [stdout] 21 | fn from_message(sender: Sender, msg: MessageBuf) -> io::Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `HasHostname` is never used [INFO] [stdout] --> src/file.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | trait HasHostname { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileHandler` is never constructed [INFO] [stdout] --> src/file.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct FileHandler {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FileHandler` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `upload`, and `download` are never used [INFO] [stdout] --> src/file.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl FileHandler { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 17 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn upload>( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn download>(&self, url: &str, path: P) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `from`, `to`, and `responder` are never read [INFO] [stdout] --> src/queues/receiver.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Receiver [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 20 | from: SocketAddr, [INFO] [stdout] | ^^^^ [INFO] [stdout] 21 | to: SocketAddr, [INFO] [stdout] | ^^ [INFO] [stdout] 22 | // TODO: short-circuit responder [INFO] [stdout] 23 | pub responder: Sender, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `listener` is never read [INFO] [stdout] --> src/rpc/server.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Server { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 9 | listener: JoinHandle<()>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RpcNet` is never constructed [INFO] [stdout] --> src/rpcnet.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct RpcNet { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RpcNet` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `hostname`, `client`, and `server` are never used [INFO] [stdout] --> src/rpcnet.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl RpcNet { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 20 | pub fn new>>(hostname: T) -> io::Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn hostname(&self) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub async fn client( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub async fn server< [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TcpHandler` is never constructed [INFO] [stdout] --> src/transport/tcp.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct TcpHandler { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `url` are never used [INFO] [stdout] --> src/transport/tcp.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl TcpHandler { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 9 | pub fn new(url: String, listener: TcpListener) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn url(&self) -> String { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/queues/sender.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | drop(handle.abort()); [INFO] [stdout] | ^^^^^--------------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `()` [INFO] [stdout] | [INFO] [stdout] = note: use `let _ = ...` to ignore the expression or result [INFO] [stdout] = note: `#[warn(dropping_copy_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/rpc/multiplex.rs:71:21 [INFO] [stdout] | [INFO] [stdout] 71 | incoming_tx.send(Ok(request)); [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)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 71 | let _ = incoming_tx.send(Ok(request)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 32 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.75s [INFO] running `Command { std: "docker" "inspect" "04949c466a4a6fb699710a71f229c1e18909983d1655cc7cb17542346ec4ce91", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "04949c466a4a6fb699710a71f229c1e18909983d1655cc7cb17542346ec4ce91", kill_on_drop: false }` [INFO] [stdout] 04949c466a4a6fb699710a71f229c1e18909983d1655cc7cb17542346ec4ce91 [INFO] checking jsam/rpcnet against try#645bb72776a6a56a1a8f52631a44bd082b2ba509 for absurd-question-mark-desugar [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjsam%2Frpcnet" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/jsam/rpcnet on toolchain 645bb72776a6a56a1a8f52631a44bd082b2ba509 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/jsam/rpcnet [INFO] finished tweaking git repo https://github.com/jsam/rpcnet [INFO] tweaked toml for git repo https://github.com/jsam/rpcnet written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/jsam/rpcnet 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" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: unused manifest key: build [INFO] [stderr] warning: file `/workspace/builds/worker-2-tc2/source/src/lib.rs` found to be present in multiple build targets: [INFO] [stderr] * `lib` target `rpcnet` [INFO] [stderr] * `bin` target `rpcnet` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 55f3c8648c0fd333e917ec9cf5881a6c74460d076c4ded5e4980bf138e38b1d5 [INFO] running `Command { std: "docker" "start" "-a" "55f3c8648c0fd333e917ec9cf5881a6c74460d076c4ded5e4980bf138e38b1d5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "55f3c8648c0fd333e917ec9cf5881a6c74460d076c4ded5e4980bf138e38b1d5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "55f3c8648c0fd333e917ec9cf5881a6c74460d076c4ded5e4980bf138e38b1d5", kill_on_drop: false }` [INFO] [stdout] 55f3c8648c0fd333e917ec9cf5881a6c74460d076c4ded5e4980bf138e38b1d5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3260adbed5fe1cd51010de316cbe70d8b7a4ed916bfb881083c45166b987b6fc [INFO] running `Command { std: "docker" "start" "-a" "3260adbed5fe1cd51010de316cbe70d8b7a4ed916bfb881083c45166b987b6fc", kill_on_drop: false }` [INFO] [stderr] warning: unused manifest key: build [INFO] [stderr] warning: file `/opt/rustwide/workdir/src/lib.rs` found to be present in multiple build targets: [INFO] [stderr] * `lib` target `rpcnet` [INFO] [stderr] * `bin` target `rpcnet` [INFO] [stderr] Compiling proc-macro2 v1.0.63 [INFO] [stderr] Compiling libc v0.2.147 [INFO] [stderr] Compiling unicode-ident v1.0.9 [INFO] [stderr] Compiling quote v1.0.29 [INFO] [stderr] Compiling lock_api v0.4.10 [INFO] [stderr] Compiling parking_lot_core v0.9.8 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Compiling paste v1.0.12 [INFO] [stderr] Compiling futures-core v0.3.28 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Checking smallvec v1.10.0 [INFO] [stderr] Compiling tokio v1.29.1 [INFO] [stderr] Compiling serde v1.0.165 [INFO] [stderr] Checking pin-project-lite v0.2.10 [INFO] [stderr] Checking bytes v1.4.0 [INFO] [stderr] Compiling async-trait v0.1.71 [INFO] [stderr] Checking log v0.4.19 [INFO] [stderr] Compiling syn v2.0.23 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking socket2 v0.4.9 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking mio v0.8.8 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking rmp v0.8.11 [INFO] [stderr] Checking rmp-serde v1.1.1 [INFO] [stderr] Compiling tokio-macros v2.1.0 [INFO] [stderr] Compiling async-stream-impl v0.3.5 [INFO] [stderr] Compiling serde_derive v1.0.165 [INFO] [stderr] Checking async-stream v0.3.5 [INFO] [stderr] Checking tokio-stream v0.1.14 [INFO] [stderr] Checking rpcnet v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: the feature `async_fn_in_trait` has been stable since 1.75.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(async_fn_in_trait)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `async_fn_in_trait` has been stable since 1.75.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(async_fn_in_trait)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/queues/multiplex.rs:51:29 [INFO] [stdout] | [INFO] [stdout] 51 | Ok((stream, addr)) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ready` [INFO] [stdout] --> src/queues/multiplex.rs:59:25 [INFO] [stdout] | [INFO] [stdout] 59 | let ready = ready.unwrap(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ready` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/queues/multiplex.rs:51:29 [INFO] [stdout] | [INFO] [stdout] 51 | Ok((stream, addr)) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ready` [INFO] [stdout] --> src/queues/multiplex.rs:59:25 [INFO] [stdout] | [INFO] [stdout] 59 | let ready = ready.unwrap(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ready` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/rpc/server.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | let addr = listener.external_addr(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `outgoing` [INFO] [stdout] --> src/rpc/status.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | outgoing: Outgoing, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outgoing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/rpc/status.rs:124:38 [INFO] [stdout] | [INFO] [stdout] 124 | ... let (req, res) = [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/rpc/server.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | let addr = listener.external_addr(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `outgoing` [INFO] [stdout] --> src/rpc/status.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | outgoing: Outgoing, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outgoing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/rpc/status.rs:124:38 [INFO] [stdout] | [INFO] [stdout] 124 | ... let (req, res) = [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/transport/message.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | let result = reader.read_exact(&mut bytes).await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/transport/message.rs:115:16 [INFO] [stdout] | [INFO] [stdout] 115 | Ok(size) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/transport/message.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | let result = reader.read_exact(&mut bytes).await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/transport/message.rs:115:16 [INFO] [stdout] | [INFO] [stdout] 115 | Ok(size) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/file.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | if let Err(err) = copy(&mut file, &mut stream) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/file.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | if let Err(err) = copy(&mut file, &mut stream) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/network.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | let tx = tokio::spawn(async move { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `server` [INFO] [stdout] --> src/network.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let server = tokio::spawn(async move { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_server` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/queues/receiver.rs:69:25 [INFO] [stdout] | [INFO] [stdout] 69 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/queues/receiver.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | mut instream: OwnedReadHalf, [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: unused variable: `from` [INFO] [stdout] --> src/queues/sender.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | from: SocketAddr, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_from` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/queues/sender.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | to: SocketAddr, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/queues/sender.rs:30:28 [INFO] [stdout] | [INFO] [stdout] 30 | if let Err(err) = msg.write_async(&mut outstream).await { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/network.rs:68:29 [INFO] [stdout] | [INFO] [stdout] 68 | let mut ping = request.next().await; [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/network.rs:85:17 [INFO] [stdout] | [INFO] [stdout] 85 | let mut pong = rx.next().await; [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/rpc/multiplex.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | let mut is_ok = true; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/queues/receiver.rs:69:25 [INFO] [stdout] | [INFO] [stdout] 69 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/queues/receiver.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | mut instream: OwnedReadHalf, [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `from` [INFO] [stdout] --> src/queues/sender.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | from: SocketAddr, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_from` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/queues/sender.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | to: SocketAddr, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/queues/sender.rs:30:28 [INFO] [stdout] | [INFO] [stdout] 30 | if let Err(err) = msg.write_async(&mut outstream).await { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rpc/multiplex.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | let mut is_ok = true; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/transport/message.rs:21:21 [INFO] [stdout] | [INFO] [stdout] 21 | fn from_message(sender: Sender, msg: MessageBuf) -> io::Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/lib.rs:22:10 [INFO] [stdout] | [INFO] [stdout] 22 | async fn main() { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `HasHostname` is never used [INFO] [stdout] --> src/file.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | trait HasHostname { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileHandler` is never constructed [INFO] [stdout] --> src/file.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct FileHandler {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FileHandler` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `upload`, and `download` are never used [INFO] [stdout] --> src/file.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl FileHandler { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 17 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn upload>( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn download>(&self, url: &str, path: P) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NetworkHandler` is never constructed [INFO] [stdout] --> src/network.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct NetworkHandler {} [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NetworkHandler` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `connect`, and `listen` are never used [INFO] [stdout] --> src/network.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl NetworkHandler { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 18 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub async fn connect( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub async fn listen>>( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `external` and `port` are never read [INFO] [stdout] --> src/queues/listener.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct Listener { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 19 | external: Arc, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 20 | port: u16, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `start` and `external_addr` are never used [INFO] [stdout] --> src/queues/listener.rs:25:18 [INFO] [stdout] | [INFO] [stdout] 24 | impl Listener { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 25 | pub async fn start(hostname: String, port: u16) -> io::Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn external_addr(&self) -> (&str, u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `make_connection` is never used [INFO] [stdout] --> src/queues/multiplex.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn make_connection + Send + 'static>( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `from`, `to`, and `responder` are never read [INFO] [stdout] --> src/queues/receiver.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Receiver [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 20 | from: SocketAddr, [INFO] [stdout] | ^^^^ [INFO] [stdout] 21 | to: SocketAddr, [INFO] [stdout] | ^^ [INFO] [stdout] 22 | // TODO: short-circuit responder [INFO] [stdout] 23 | pub responder: Sender, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `listener` is never read [INFO] [stdout] --> src/rpc/server.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Server { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 9 | listener: JoinHandle<()>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RpcNet` is never constructed [INFO] [stdout] --> src/rpcnet.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct RpcNet { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RpcNet` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `hostname`, `client`, and `server` are never used [INFO] [stdout] --> src/rpcnet.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl RpcNet { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 20 | pub fn new>>(hostname: T) -> io::Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn hostname(&self) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub async fn client( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub async fn server< [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TcpHandler` is never constructed [INFO] [stdout] --> src/transport/tcp.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct TcpHandler { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `url` are never used [INFO] [stdout] --> src/transport/tcp.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl TcpHandler { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 9 | pub fn new(url: String, listener: TcpListener) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn url(&self) -> String { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `incoming` [INFO] [stdout] --> src/rpc/server.rs:96:24 [INFO] [stdout] | [INFO] [stdout] 96 | let (outgoing, incoming) = [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_incoming` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/queues/sender.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | drop(handle.abort()); [INFO] [stdout] | ^^^^^--------------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `()` [INFO] [stdout] | [INFO] [stdout] = note: use `let _ = ...` to ignore the expression or result [INFO] [stdout] = note: `#[warn(dropping_copy_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/rpc/multiplex.rs:71:21 [INFO] [stdout] | [INFO] [stdout] 71 | incoming_tx.send(Ok(request)); [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)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 71 | let _ = incoming_tx.send(Ok(request)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/transport/message.rs:21:21 [INFO] [stdout] | [INFO] [stdout] 21 | fn from_message(sender: Sender, msg: MessageBuf) -> io::Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `HasHostname` is never used [INFO] [stdout] --> src/file.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | trait HasHostname { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileHandler` is never constructed [INFO] [stdout] --> src/file.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct FileHandler {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FileHandler` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `upload`, and `download` are never used [INFO] [stdout] --> src/file.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl FileHandler { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 17 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn upload>( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn download>(&self, url: &str, path: P) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `from`, `to`, and `responder` are never read [INFO] [stdout] --> src/queues/receiver.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Receiver [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 20 | from: SocketAddr, [INFO] [stdout] | ^^^^ [INFO] [stdout] 21 | to: SocketAddr, [INFO] [stdout] | ^^ [INFO] [stdout] 22 | // TODO: short-circuit responder [INFO] [stdout] 23 | pub responder: Sender, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `listener` is never read [INFO] [stdout] --> src/rpc/server.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Server { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 9 | listener: JoinHandle<()>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RpcNet` is never constructed [INFO] [stdout] --> src/rpcnet.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct RpcNet { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RpcNet` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `hostname`, `client`, and `server` are never used [INFO] [stdout] --> src/rpcnet.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl RpcNet { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 20 | pub fn new>>(hostname: T) -> io::Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn hostname(&self) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub async fn client( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub async fn server< [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TcpHandler` is never constructed [INFO] [stdout] --> src/transport/tcp.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct TcpHandler { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `url` are never used [INFO] [stdout] --> src/transport/tcp.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl TcpHandler { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 9 | pub fn new(url: String, listener: TcpListener) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn url(&self) -> String { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/queues/sender.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | drop(handle.abort()); [INFO] [stdout] | ^^^^^--------------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `()` [INFO] [stdout] | [INFO] [stdout] = note: use `let _ = ...` to ignore the expression or result [INFO] [stdout] = note: `#[warn(dropping_copy_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/rpc/multiplex.rs:71:21 [INFO] [stdout] | [INFO] [stdout] 71 | incoming_tx.send(Ok(request)); [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)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 71 | let _ = incoming_tx.send(Ok(request)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 33 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 32 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `async_fn_in_trait` has been stable since 1.75.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(async_fn_in_trait)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `async_fn_in_trait` has been stable since 1.75.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/lib.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(async_fn_in_trait)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/queues/multiplex.rs:51:29 [INFO] [stdout] | [INFO] [stdout] 51 | Ok((stream, addr)) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ready` [INFO] [stdout] --> src/queues/multiplex.rs:59:25 [INFO] [stdout] | [INFO] [stdout] 59 | let ready = ready.unwrap(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ready` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/queues/multiplex.rs:51:29 [INFO] [stdout] | [INFO] [stdout] 51 | Ok((stream, addr)) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ready` [INFO] [stdout] --> src/queues/multiplex.rs:59:25 [INFO] [stdout] | [INFO] [stdout] 59 | let ready = ready.unwrap(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ready` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/rpc/server.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | let addr = listener.external_addr(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `outgoing` [INFO] [stdout] --> src/rpc/status.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | outgoing: Outgoing, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outgoing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/rpc/status.rs:124:38 [INFO] [stdout] | [INFO] [stdout] 124 | ... let (req, res) = [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/rpc/server.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | let addr = listener.external_addr(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/transport/message.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | let result = reader.read_exact(&mut bytes).await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/transport/message.rs:115:16 [INFO] [stdout] | [INFO] [stdout] 115 | Ok(size) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `outgoing` [INFO] [stdout] --> src/rpc/status.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | outgoing: Outgoing, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outgoing` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `req` [INFO] [stdout] --> src/rpc/status.rs:124:38 [INFO] [stdout] | [INFO] [stdout] 124 | ... let (req, res) = [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_req` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/transport/message.rs:107:13 [INFO] [stdout] | [INFO] [stdout] 107 | let result = reader.read_exact(&mut bytes).await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/transport/message.rs:115:16 [INFO] [stdout] | [INFO] [stdout] 115 | Ok(size) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/file.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | if let Err(err) = copy(&mut file, &mut stream) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/queues/receiver.rs:69:25 [INFO] [stdout] | [INFO] [stdout] 69 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/queues/receiver.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | mut instream: OwnedReadHalf, [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: unused variable: `from` [INFO] [stdout] --> src/queues/sender.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | from: SocketAddr, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_from` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/queues/sender.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | to: SocketAddr, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/queues/sender.rs:30:28 [INFO] [stdout] | [INFO] [stdout] 30 | if let Err(err) = msg.write_async(&mut outstream).await { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rpc/multiplex.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | let mut is_ok = true; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/transport/message.rs:21:21 [INFO] [stdout] | [INFO] [stdout] 21 | fn from_message(sender: Sender, msg: MessageBuf) -> io::Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `HasHostname` is never used [INFO] [stdout] --> src/file.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | trait HasHostname { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileHandler` is never constructed [INFO] [stdout] --> src/file.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct FileHandler {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FileHandler` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/file.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | if let Err(err) = copy(&mut file, &mut stream) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `upload`, and `download` are never used [INFO] [stdout] --> src/file.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl FileHandler { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 17 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn upload>( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn download>(&self, url: &str, path: P) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NetworkHandler` is never constructed [INFO] [stdout] --> src/network.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct NetworkHandler {} [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NetworkHandler` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `connect`, and `listen` are never used [INFO] [stdout] --> src/network.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl NetworkHandler { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 18 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub async fn connect( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub async fn listen>>( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `external` and `port` are never read [INFO] [stdout] --> src/queues/listener.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct Listener { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 19 | external: Arc, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 20 | port: u16, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `start` and `external_addr` are never used [INFO] [stdout] --> src/queues/listener.rs:25:18 [INFO] [stdout] | [INFO] [stdout] 24 | impl Listener { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 25 | pub async fn start(hostname: String, port: u16) -> io::Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn external_addr(&self) -> (&str, u16) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `make_connection` is never used [INFO] [stdout] --> src/queues/multiplex.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn make_connection + Send + 'static>( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `from`, `to`, and `responder` are never read [INFO] [stdout] --> src/queues/receiver.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Receiver [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 20 | from: SocketAddr, [INFO] [stdout] | ^^^^ [INFO] [stdout] 21 | to: SocketAddr, [INFO] [stdout] | ^^ [INFO] [stdout] 22 | // TODO: short-circuit responder [INFO] [stdout] 23 | pub responder: Sender, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `listener` is never read [INFO] [stdout] --> src/rpc/server.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Server { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 9 | listener: JoinHandle<()>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RpcNet` is never constructed [INFO] [stdout] --> src/rpcnet.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct RpcNet { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RpcNet` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `hostname`, `client`, and `server` are never used [INFO] [stdout] --> src/rpcnet.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl RpcNet { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 20 | pub fn new>>(hostname: T) -> io::Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn hostname(&self) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub async fn client( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub async fn server< [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TcpHandler` is never constructed [INFO] [stdout] --> src/transport/tcp.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct TcpHandler { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `url` are never used [INFO] [stdout] --> src/transport/tcp.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl TcpHandler { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 9 | pub fn new(url: String, listener: TcpListener) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn url(&self) -> String { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/network.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | let tx = tokio::spawn(async move { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `server` [INFO] [stdout] --> src/network.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | let server = tokio::spawn(async move { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_server` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/queues/sender.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | drop(handle.abort()); [INFO] [stdout] | ^^^^^--------------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `()` [INFO] [stdout] | [INFO] [stdout] = note: use `let _ = ...` to ignore the expression or result [INFO] [stdout] = note: `#[warn(dropping_copy_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/rpc/multiplex.rs:71:21 [INFO] [stdout] | [INFO] [stdout] 71 | incoming_tx.send(Ok(request)); [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)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 71 | let _ = incoming_tx.send(Ok(request)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/network.rs:68:29 [INFO] [stdout] | [INFO] [stdout] 68 | let mut ping = request.next().await; [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/network.rs:85:17 [INFO] [stdout] | [INFO] [stdout] 85 | let mut pong = rx.next().await; [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/queues/receiver.rs:69:25 [INFO] [stdout] | [INFO] [stdout] 69 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 32 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/queues/receiver.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | mut instream: OwnedReadHalf, [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `from` [INFO] [stdout] --> src/queues/sender.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | from: SocketAddr, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_from` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/queues/sender.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | to: SocketAddr, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/queues/sender.rs:30:28 [INFO] [stdout] | [INFO] [stdout] 30 | if let Err(err) = msg.write_async(&mut outstream).await { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rpc/multiplex.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | let mut is_ok = true; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `incoming` [INFO] [stdout] --> src/rpc/server.rs:96:24 [INFO] [stdout] | [INFO] [stdout] 96 | let (outgoing, incoming) = [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_incoming` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sender` [INFO] [stdout] --> src/transport/message.rs:21:21 [INFO] [stdout] | [INFO] [stdout] 21 | fn from_message(sender: Sender, msg: MessageBuf) -> io::Result { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `HasHostname` is never used [INFO] [stdout] --> src/file.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | trait HasHostname { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileHandler` is never constructed [INFO] [stdout] --> src/file.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct FileHandler {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FileHandler` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `upload`, and `download` are never used [INFO] [stdout] --> src/file.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl FileHandler { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 17 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn upload>( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn download>(&self, url: &str, path: P) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `from`, `to`, and `responder` are never read [INFO] [stdout] --> src/queues/receiver.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Receiver [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 20 | from: SocketAddr, [INFO] [stdout] | ^^^^ [INFO] [stdout] 21 | to: SocketAddr, [INFO] [stdout] | ^^ [INFO] [stdout] 22 | // TODO: short-circuit responder [INFO] [stdout] 23 | pub responder: Sender, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `listener` is never read [INFO] [stdout] --> src/rpc/server.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Server { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 9 | listener: JoinHandle<()>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RpcNet` is never constructed [INFO] [stdout] --> src/rpcnet.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct RpcNet { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RpcNet` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `hostname`, `client`, and `server` are never used [INFO] [stdout] --> src/rpcnet.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl RpcNet { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 20 | pub fn new>>(hostname: T) -> io::Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn hostname(&self) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub async fn client( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub async fn server< [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TcpHandler` is never constructed [INFO] [stdout] --> src/transport/tcp.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct TcpHandler { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `url` are never used [INFO] [stdout] --> src/transport/tcp.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl TcpHandler { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 9 | pub fn new(url: String, listener: TcpListener) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn url(&self) -> String { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/queues/sender.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | drop(handle.abort()); [INFO] [stdout] | ^^^^^--------------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `()` [INFO] [stdout] | [INFO] [stdout] = note: use `let _ = ...` to ignore the expression or result [INFO] [stdout] = note: `#[warn(dropping_copy_types)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/rpc/multiplex.rs:71:21 [INFO] [stdout] | [INFO] [stdout] 71 | incoming_tx.send(Ok(request)); [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)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 71 | let _ = incoming_tx.send(Ok(request)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 32 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.29s [INFO] running `Command { std: "docker" "inspect" "3260adbed5fe1cd51010de316cbe70d8b7a4ed916bfb881083c45166b987b6fc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3260adbed5fe1cd51010de316cbe70d8b7a4ed916bfb881083c45166b987b6fc", kill_on_drop: false }` [INFO] [stdout] 3260adbed5fe1cd51010de316cbe70d8b7a4ed916bfb881083c45166b987b6fc