[INFO] cloning repository https://github.com/paigeadelethompson/clandestine2 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/paigeadelethompson/clandestine2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpaigeadelethompson%2Fclandestine2", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpaigeadelethompson%2Fclandestine2'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 585475359254e551782609e3e48d3c7a226c3dd0 [INFO] checking paigeadelethompson/clandestine2 against try#fc545c6b951a304df08b327c158f92678582f435 for pr-140557-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpaigeadelethompson%2Fclandestine2" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/paigeadelethompson/clandestine2 on toolchain fc545c6b951a304df08b327c158f92678582f435 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fc545c6b951a304df08b327c158f92678582f435" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/paigeadelethompson/clandestine2 [INFO] finished tweaking git repo https://github.com/paigeadelethompson/clandestine2 [INFO] tweaked toml for git repo https://github.com/paigeadelethompson/clandestine2 written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/paigeadelethompson/clandestine2 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" "+fc545c6b951a304df08b327c158f92678582f435" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+fc545c6b951a304df08b327c158f92678582f435" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 94f11ea1b3fd288c166ed82ff6d5109873721a7a30b297ed065bd2903810c943 [INFO] running `Command { std: "docker" "start" "-a" "94f11ea1b3fd288c166ed82ff6d5109873721a7a30b297ed065bd2903810c943", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "94f11ea1b3fd288c166ed82ff6d5109873721a7a30b297ed065bd2903810c943", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "94f11ea1b3fd288c166ed82ff6d5109873721a7a30b297ed065bd2903810c943", kill_on_drop: false }` [INFO] [stdout] 94f11ea1b3fd288c166ed82ff6d5109873721a7a30b297ed065bd2903810c943 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+fc545c6b951a304df08b327c158f92678582f435" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 947771b79bdcb6d323b3b1e5b45861bb41b90196e55206602fb631fa86c97879 [INFO] running `Command { std: "docker" "start" "-a" "947771b79bdcb6d323b3b1e5b45861bb41b90196e55206602fb631fa86c97879", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.93 [INFO] [stderr] Compiling unicode-ident v1.0.16 [INFO] [stderr] Compiling libc v0.2.169 [INFO] [stderr] Compiling serde v1.0.217 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking tracing-core v0.1.33 [INFO] [stderr] Checking indexmap v2.7.1 [INFO] [stderr] Checking log v0.4.25 [INFO] [stderr] Compiling thiserror v2.0.11 [INFO] [stderr] Checking winnow v0.7.0 [INFO] [stderr] Compiling serde_json v1.0.138 [INFO] [stderr] Checking clap_builder v4.5.27 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Checking ryu v1.0.19 [INFO] [stderr] Compiling quote v1.0.38 [INFO] [stderr] Compiling syn v2.0.96 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking mio v1.0.3 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking socket2 v0.5.8 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Compiling serde_derive v1.0.217 [INFO] [stderr] Compiling tracing-attributes v0.1.28 [INFO] [stderr] Compiling thiserror-impl v2.0.11 [INFO] [stderr] Compiling clap_derive v4.5.24 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Checking tokio v1.43.0 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking tracing-subscriber v0.3.19 [INFO] [stderr] Checking clap v4.5.27 [INFO] [stderr] Checking serde_spanned v0.6.8 [INFO] [stderr] Checking toml_datetime v0.6.8 [INFO] [stderr] Checking chrono v0.4.39 [INFO] [stderr] Checking toml_edit v0.22.23 [INFO] [stderr] Checking toml v0.8.19 [INFO] [stderr] Checking ircd-rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver` and `Sender` [INFO] [stdout] --> src/server/mod.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::mpsc::{self, Receiver, Sender}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DateTime` and `Utc` [INFO] [stdout] --> src/server/mod.rs:6:14 [INFO] [stdout] | [INFO] [stdout] 6 | use chrono::{DateTime, Utc}; [INFO] [stdout] | ^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regex` [INFO] [stdout] --> src/server/mod.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use regex; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/server/mod.rs:12:35 [INFO] [stdout] | [INFO] [stdout] 12 | use tracing::{debug, error, info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DLine`, `GLine`, `ILine`, and `KLine` [INFO] [stdout] --> src/server/mod.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::config::{DLine, GLine, ILine, KLine, ServerConfig, ServerLinkConfig}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/server/registration.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Utc` [INFO] [stdout] --> src/client/mod.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use chrono::Utc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regex::Regex` [INFO] [stdout] --> src/client/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use regex::Regex; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::net::TcpStream` [INFO] [stdout] --> src/client/mod.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::net::TcpStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::Mutex` [INFO] [stdout] --> src/client/mod.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use tokio::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `info` [INFO] [stdout] --> src/client/mod.rs:16:29 [INFO] [stdout] | [INFO] [stdout] 16 | use tracing::{debug, error, info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `capability::*` [INFO] [stdout] --> src/client/mod.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | pub use capability::*; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `registration::*` [INFO] [stdout] --> src/client/mod.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub use registration::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::channel::Channel` [INFO] [stdout] --> src/client/mod.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::channel::Channel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HostmaskConfig` and `ServerConfig` [INFO] [stdout] --> src/client/mod.rs:22:21 [INFO] [stdout] | [INFO] [stdout] 22 | use crate::config::{HostmaskConfig, ServerConfig}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Local` [INFO] [stdout] --> src/client/registration.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::Local; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/client/capability.rs:1:22 [INFO] [stdout] | [INFO] [stdout] 1 | use tracing::{debug, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ircv3::Capability` [INFO] [stdout] --> src/client/capability.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::ircv3::Capability; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/client/ping.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/client/channel.rs:1:22 [INFO] [stdout] | [INFO] [stdout] 1 | use tracing::{debug, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regex::Regex` [INFO] [stdout] --> src/client/query.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use regex::Regex; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/client/query.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | use tracing::{debug, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver` and `Sender` [INFO] [stdout] --> src/server/mod.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::mpsc::{self, Receiver, Sender}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DateTime` and `Utc` [INFO] [stdout] --> src/server/mod.rs:6:14 [INFO] [stdout] | [INFO] [stdout] 6 | use chrono::{DateTime, Utc}; [INFO] [stdout] | ^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regex` [INFO] [stdout] --> src/server/mod.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use regex; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/server/mod.rs:12:35 [INFO] [stdout] | [INFO] [stdout] 12 | use tracing::{debug, error, info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DLine`, `GLine`, `ILine`, and `KLine` [INFO] [stdout] --> src/server/mod.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::config::{DLine, GLine, ILine, KLine, ServerConfig, ServerLinkConfig}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/server/registration.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Utc` [INFO] [stdout] --> src/client/mod.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use chrono::Utc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regex::Regex` [INFO] [stdout] --> src/client/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use regex::Regex; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::net::TcpStream` [INFO] [stdout] --> src/client/mod.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::net::TcpStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::Mutex` [INFO] [stdout] --> src/client/mod.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use tokio::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Instant` [INFO] [stdout] --> src/client/server.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::time::Instant; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Local` [INFO] [stdout] --> src/client/server.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use chrono::Local; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `info` [INFO] [stdout] --> src/client/mod.rs:16:29 [INFO] [stdout] | [INFO] [stdout] 16 | use tracing::{debug, error, info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `info` [INFO] [stdout] --> src/client/user.rs:1:22 [INFO] [stdout] | [INFO] [stdout] 1 | use tracing::{debug, info}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `capability::*` [INFO] [stdout] --> src/client/mod.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | pub use capability::*; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `registration::*` [INFO] [stdout] --> src/client/mod.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub use registration::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::channel::Channel` [INFO] [stdout] --> src/client/mod.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::channel::Channel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HostmaskConfig` and `ServerConfig` [INFO] [stdout] --> src/client/mod.rs:22:21 [INFO] [stdout] | [INFO] [stdout] 22 | use crate::config::{HostmaskConfig, ServerConfig}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Local` [INFO] [stdout] --> src/client/registration.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::Local; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/client/capability.rs:1:22 [INFO] [stdout] | [INFO] [stdout] 1 | use tracing::{debug, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::ircv3::Capability` [INFO] [stdout] --> src/client/capability.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::ircv3::Capability; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/client/ping.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/client/channel.rs:1:22 [INFO] [stdout] | [INFO] [stdout] 1 | use tracing::{debug, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regex::Regex` [INFO] [stdout] --> src/client/query.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use regex::Regex; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/client/query.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | use tracing::{debug, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/channel/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::Mutex` [INFO] [stdout] --> src/channel/mod.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use tokio::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::client::Client` [INFO] [stdout] --> src/channel/mod.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::client::Client; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/channel/tests.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Instant` [INFO] [stdout] --> src/client/server.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::time::Instant; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Local` [INFO] [stdout] --> src/client/server.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use chrono::Local; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `info` [INFO] [stdout] --> src/client/user.rs:1:22 [INFO] [stdout] | [INFO] [stdout] 1 | use tracing::{debug, info}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/link/mod.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/link/mod.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `info` [INFO] [stdout] --> src/link/mod.rs:6:22 [INFO] [stdout] | [INFO] [stdout] 6 | use tracing::{debug, info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/channel/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::Mutex` [INFO] [stdout] --> src/channel/mod.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use tokio::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::client::Client` [INFO] [stdout] --> src/channel/mod.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::client::Client; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/link/mod.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/link/mod.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `info` [INFO] [stdout] --> src/link/mod.rs:6:22 [INFO] [stdout] | [INFO] [stdout] 6 | use tracing::{debug, info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/server/mod.rs:233:21 [INFO] [stdout] | [INFO] [stdout] 233 | let mut client = client.lock().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/client/mod.rs:266:59 [INFO] [stdout] | [INFO] [stdout] 266 | pub async fn handle_connection_with_reader(&mut self, mut reader: OwnedReadHalf) -> IrcResult<()> { [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/server/mod.rs:233:21 [INFO] [stdout] | [INFO] [stdout] 233 | let mut client = client.lock().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/client/mod.rs:266:59 [INFO] [stdout] | [INFO] [stdout] 266 | pub async fn handle_connection_with_reader(&mut self, mut reader: OwnedReadHalf) -> IrcResult<()> { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message` [INFO] [stdout] --> src/client/server.rs:27:48 [INFO] [stdout] | [INFO] [stdout] 27 | pub(crate) async fn handle_pong(&mut self, message: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nick` [INFO] [stdout] --> src/client/mod.rs:244:25 [INFO] [stdout] | [INFO] [stdout] 244 | if let Some(ref nick) = self.nickname { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_nick` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/server/mod.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | let mut clients: HashMap = HashMap::new(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message` [INFO] [stdout] --> src/client/server.rs:27:48 [INFO] [stdout] | [INFO] [stdout] 27 | pub(crate) async fn handle_pong(&mut self, message: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pong` [INFO] [stdout] --> src/server/ping.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | let pong = TS6Message::new( [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_pong` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/server/registration.rs:31:17 [INFO] [stdout] | [INFO] [stdout] 31 | let mut client = client.lock().await; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `password` [INFO] [stdout] --> src/server/pass.rs:12:13 [INFO] [stdout] | [INFO] [stdout] 12 | let password = &msg.params[0]; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_password` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sid` [INFO] [stdout] --> src/server/pass.rs:14:13 [INFO] [stdout] | [INFO] [stdout] 14 | let sid = &msg.params[3]; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_sid` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nick` [INFO] [stdout] --> src/client/mod.rs:244:25 [INFO] [stdout] | [INFO] [stdout] 244 | if let Some(ref nick) = self.nickname { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_nick` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/server/mod.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | let mut clients: HashMap = HashMap::new(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pong` [INFO] [stdout] --> src/server/ping.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | let pong = TS6Message::new( [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_pong` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/server/registration.rs:31:17 [INFO] [stdout] | [INFO] [stdout] 31 | let mut client = client.lock().await; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `password` [INFO] [stdout] --> src/server/pass.rs:12:13 [INFO] [stdout] | [INFO] [stdout] 12 | let password = &msg.params[0]; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_password` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sid` [INFO] [stdout] --> src/server/pass.rs:14:13 [INFO] [stdout] | [INFO] [stdout] 14 | let sid = &msg.params[3]; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_sid` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client/mod.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 143 | let mut client = Self { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `subscriber` [INFO] [stdout] --> src/main.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | let subscriber = FmtSubscriber::builder() [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subscriber` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `network`, `limits`, `hostmask`, and `links` are never read [INFO] [stdout] --> src/config.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct ServerConfig { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 10 | pub server: Server, [INFO] [stdout] 11 | pub network: Network, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 12 | pub limits: Limits, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 13 | pub hostmask: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub links: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ServerConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `description` and `sid` are never read [INFO] [stdout] --> src/config.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Server { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 24 | pub name: String, [INFO] [stdout] 25 | pub description: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 26 | pub sid: String, // Server ID for TS6 [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Server` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `links` are never read [INFO] [stdout] --> src/config.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Network { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 33 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 34 | #[serde(default)] [INFO] [stdout] 35 | pub links: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Network` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `host`, `port`, `send_password`, `receive_password`, and `sid` are never read [INFO] [stdout] --> src/config.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Link { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 40 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 41 | pub host: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 42 | pub port: u16, [INFO] [stdout] | ^^^^ [INFO] [stdout] 43 | pub send_password: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 44 | pub receive_password: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 45 | pub sid: String, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Link` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_clients` and `max_channels` are never read [INFO] [stdout] --> src/config.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct Limits { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 50 | pub max_clients: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 51 | pub max_channels: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Limits` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `enabled`, `format`, and `prefix` are never read [INFO] [stdout] --> src/config.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 55 | pub struct HostmaskConfig { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 56 | pub enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 57 | pub format: String, // e.g. "user/{user}/host/{host}" [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 58 | pub prefix: String, // e.g. "cloaked" [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HostmaskConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/config.rs:191:9 [INFO] [stdout] | [INFO] [stdout] 190 | pub struct ServerLinkConfig { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 191 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 192 | pub sid: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 193 | pub description: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 194 | pub password: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 195 | pub address: String, // IP:Port for connecting [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 196 | pub autoconnect: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 197 | pub ssl: bool, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ServerLinkConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `REGISTRATION_TIMEOUT`, `connect_to_server`, and `handle_server_message` are never used [INFO] [stdout] --> src/server/mod.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 50 | impl Server { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 51 | const REGISTRATION_TIMEOUT: Duration = Duration::from_secs(60); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub async fn connect_to_server(&self, config: &ServerLinkConfig) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub(crate) async fn handle_server_message(&self, msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `handle_server_intro`, `handle_server_join`, `handle_server_sid`, and `handle_server_quit` are never used [INFO] [stdout] --> src/server/link.rs:8:25 [INFO] [stdout] | [INFO] [stdout] 7 | impl Server { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 8 | pub(crate) async fn handle_server_intro(&self, msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub(crate) async fn handle_server_join(&self, msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub(crate) async fn handle_server_sid(&self, msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub(crate) async fn handle_server_quit(&self, msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `handle_server_ping` and `handle_server_pong` are never used [INFO] [stdout] --> src/server/ping.rs:6:25 [INFO] [stdout] | [INFO] [stdout] 5 | impl Server { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 6 | pub(crate) async fn handle_server_ping(&self, msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub(crate) async fn handle_server_pong(&self, _msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `has_oline`, `is_host_klined`, `add_kline`, and `remove_kline` are never used [INFO] [stdout] --> src/server/xline.rs:7:18 [INFO] [stdout] | [INFO] [stdout] 6 | impl Server { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 7 | pub async fn has_oline(&self, client: &Client) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub async fn is_host_klined(&self, host: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub async fn add_kline(&self, kline: KLine) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub async fn remove_kline(&self, mask: String) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `check_registration_timeout` and `handle_server_capab` are never used [INFO] [stdout] --> src/server/registration.rs:29:14 [INFO] [stdout] | [INFO] [stdout] 9 | impl Server { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 29 | async fn check_registration_timeout(&self, client_id: ClientId) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub(crate) async fn handle_server_capab(&self, msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `mask_match` is never used [INFO] [stdout] --> src/server/mask.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 3 | impl Server { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 4 | pub fn mask_match(&self, host: &str, mask: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `nickname` is never read [INFO] [stdout] --> src/server/client.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct WhoisInfo { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 18 | pub nickname: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WhoisInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `handle_server_pass` is never used [INFO] [stdout] --> src/server/pass.rs:6:25 [INFO] [stdout] | [INFO] [stdout] 5 | impl Server { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 6 | pub(crate) async fn handle_server_pass(&self, msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ip_addr`, `enabled_capabilities`, `available_capabilities`, `account`, `last_ping`, and `last_pong` are never read [INFO] [stdout] --> src/client/mod.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct Client { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 54 | ip_addr: IpAddr, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | enabled_capabilities: HashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 58 | available_capabilities: HashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 59 | account: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | last_ping: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 64 | last_pong: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `MAX_RECVQ`, `get_account`, `get_ip`, `set_nickname`, and `set_hostname` are never used [INFO] [stdout] --> src/client/mod.rs:77:11 [INFO] [stdout] | [INFO] [stdout] 75 | impl Client { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 76 | const MAX_SENDQ: usize = 40960; // 40KB [INFO] [stdout] 77 | const MAX_RECVQ: usize = 8192; // 8KB [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn get_account(&self) -> Option<&String> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | pub fn get_ip(&self) -> IpAddr { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 286 | pub fn set_nickname(&mut self, nickname: String) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 292 | pub fn set_hostname(&mut self, hostname: String) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `created_at`, `bans`, `operators`, and `voices` are never read [INFO] [stdout] --> src/channel/mod.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Channel { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 28 | created_at: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 29 | bans: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 30 | operators: HashSet, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 31 | voices: HashSet, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Channel` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/channel/mode.rs:5:16 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct ChannelModes { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 5 | pub(crate) invite_only: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 6 | pub(crate) moderated: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 7 | pub(crate) no_external_messages: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | pub(crate) secret: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 9 | pub(crate) topic_protection: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 10 | pub(crate) key: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] 11 | pub(crate) limit: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ChannelModes` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `mask`, `set_by`, and `set_time` are never read [INFO] [stdout] --> src/channel/list.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Ban { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 7 | pub mask: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 8 | pub set_by: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 9 | pub set_time: DateTime, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ban` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChannelMember` is never constructed [INFO] [stdout] --> src/channel/member.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct ChannelMember { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ChannelMember` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_topic` is never used [INFO] [stdout] --> src/channel/topic.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl Channel { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 11 | pub fn set_topic(&mut self, topic: String, setter: String) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `tags` is never read [INFO] [stdout] --> src/ts6/mod.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct TS6Message { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 17 | pub tags: HashMap, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TS6Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Config`, `Client`, `Channel`, `ServerLink`, and `Parse` are never constructed [INFO] [stdout] --> src/error.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum IrcError { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 9 | Config(String), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | Client(String), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | Channel(String), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | ServerLink(String), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | Parse(String), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IrcError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_str` is never used [INFO] [stdout] --> src/ircv3/mod.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl Capability { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 38 | pub fn as_str(&self) -> &'static str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `path` is never read [INFO] [stdout] --> src/database/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct Database { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 22 | path: PathBuf, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `save`, `add_kline`, and `remove_kline` are never used [INFO] [stdout] --> src/database/mod.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 26 | impl Database { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 42 | async fn save(&self) -> Result<(), std::io::Error> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub async fn add_kline(&self, kline: KLine) -> Result<(), std::io::Error> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub async fn remove_kline(&self, mask: &str) -> Result<(), std::io::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/link/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct ServerLink { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 13 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 14 | sid: String, // Server ID in TS6 format (3 chars) [INFO] [stdout] | ^^^ [INFO] [stdout] 15 | description: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 16 | password: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 17 | incoming: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 18 | capabilities: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 19 | reader: BufReader, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 20 | writer: OwnedWriteHalf, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/link/mod.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl ServerLink { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 24 | pub fn new(stream: TcpStream, name: String, sid: String, description: String, password: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub async fn handle_connection(&mut self) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | async fn send_pass(&mut self) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | async fn send_capab(&mut self) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | async fn send_server(&mut self) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | async fn send_burst(&mut self) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | async fn send_message(&mut self, message: &TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | async fn send_users_burst(&mut self) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | async fn send_channels_burst(&mut self) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | async fn handle_message(&mut self, message: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/server/mod.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | server_task(rx); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/server/tests.rs:148:22 [INFO] [stdout] | [INFO] [stdout] 148 | let (server, addr) = setup_test_server(PORT_KLINE).await; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/client/mod.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 143 | let mut client = Self { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `server` [INFO] [stdout] --> src/channel/tests.rs:91:14 [INFO] [stdout] | [INFO] [stdout] 91 | let (server, addr) = setup_test_server(PORT_CHANNEL_TOPIC).await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_server` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `server` [INFO] [stdout] --> src/channel/tests.rs:108:14 [INFO] [stdout] | [INFO] [stdout] 108 | let (server, addr) = setup_test_server(PORT_CHANNEL_MODES).await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_server` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `server` [INFO] [stdout] --> src/channel/tests.rs:135:14 [INFO] [stdout] | [INFO] [stdout] 135 | let (server, addr) = setup_test_server(PORT_CHANNEL_BANS).await; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_server` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `subscriber` [INFO] [stdout] --> src/main.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | let subscriber = FmtSubscriber::builder() [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subscriber` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `network`, `limits`, and `hostmask` are never read [INFO] [stdout] --> src/config.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct ServerConfig { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 10 | pub server: Server, [INFO] [stdout] 11 | pub network: Network, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 12 | pub limits: Limits, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 13 | pub hostmask: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ServerConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `description` and `sid` are never read [INFO] [stdout] --> src/config.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Server { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 24 | pub name: String, [INFO] [stdout] 25 | pub description: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 26 | pub sid: String, // Server ID for TS6 [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Server` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `links` are never read [INFO] [stdout] --> src/config.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Network { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 33 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 34 | #[serde(default)] [INFO] [stdout] 35 | pub links: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Network` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `host`, `port`, `send_password`, `receive_password`, and `sid` are never read [INFO] [stdout] --> src/config.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct Link { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 40 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 41 | pub host: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 42 | pub port: u16, [INFO] [stdout] | ^^^^ [INFO] [stdout] 43 | pub send_password: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 44 | pub receive_password: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 45 | pub sid: String, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Link` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_clients` and `max_channels` are never read [INFO] [stdout] --> src/config.rs:50:9 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct Limits { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 50 | pub max_clients: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 51 | pub max_channels: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Limits` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `enabled`, `format`, and `prefix` are never read [INFO] [stdout] --> src/config.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 55 | pub struct HostmaskConfig { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 56 | pub enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 57 | pub format: String, // e.g. "user/{user}/host/{host}" [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 58 | pub prefix: String, // e.g. "cloaked" [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HostmaskConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `autoconnect` and `ssl` are never read [INFO] [stdout] --> src/config.rs:196:9 [INFO] [stdout] | [INFO] [stdout] 190 | pub struct ServerLinkConfig { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 196 | pub autoconnect: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 197 | pub ssl: bool, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ServerLinkConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `REGISTRATION_TIMEOUT` and `handle_server_message` are never used [INFO] [stdout] --> src/server/mod.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 50 | impl Server { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 51 | const REGISTRATION_TIMEOUT: Duration = Duration::from_secs(60); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub(crate) async fn handle_server_message(&self, msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `handle_server_intro`, `handle_server_join`, `handle_server_sid`, and `handle_server_quit` are never used [INFO] [stdout] --> src/server/link.rs:8:25 [INFO] [stdout] | [INFO] [stdout] 7 | impl Server { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 8 | pub(crate) async fn handle_server_intro(&self, msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub(crate) async fn handle_server_join(&self, msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub(crate) async fn handle_server_sid(&self, msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub(crate) async fn handle_server_quit(&self, msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PORT_CHANNEL_LIMITS` is never used [INFO] [stdout] --> src/server/tests.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | const PORT_CHANNEL_LIMITS: u16 = 6905; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PORT_CLIENT_LIMITS` is never used [INFO] [stdout] --> src/server/tests.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | const PORT_CLIENT_LIMITS: u16 = 6906; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_for_server` is never used [INFO] [stdout] --> src/server/tests.rs:25:14 [INFO] [stdout] | [INFO] [stdout] 25 | async fn wait_for_server(addr: &SocketAddr) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start_server` is never used [INFO] [stdout] --> src/server/tests.rs:35:14 [INFO] [stdout] | [INFO] [stdout] 35 | async fn start_server(server: Arc, port: u16) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `handle_server_ping` and `handle_server_pong` are never used [INFO] [stdout] --> src/server/ping.rs:6:25 [INFO] [stdout] | [INFO] [stdout] 5 | impl Server { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 6 | pub(crate) async fn handle_server_ping(&self, msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub(crate) async fn handle_server_pong(&self, _msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has_oline` is never used [INFO] [stdout] --> src/server/xline.rs:7:18 [INFO] [stdout] | [INFO] [stdout] 6 | impl Server { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 7 | pub async fn has_oline(&self, client: &Client) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `check_registration_timeout` and `handle_server_capab` are never used [INFO] [stdout] --> src/server/registration.rs:29:14 [INFO] [stdout] | [INFO] [stdout] 9 | impl Server { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 29 | async fn check_registration_timeout(&self, client_id: ClientId) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub(crate) async fn handle_server_capab(&self, msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `nickname` is never read [INFO] [stdout] --> src/server/client.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct WhoisInfo { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 18 | pub nickname: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WhoisInfo` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `handle_server_pass` is never used [INFO] [stdout] --> src/server/pass.rs:6:25 [INFO] [stdout] | [INFO] [stdout] 5 | impl Server { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 6 | pub(crate) async fn handle_server_pass(&self, msg: TS6Message) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ip_addr`, `enabled_capabilities`, `available_capabilities`, `account`, `last_ping`, and `last_pong` are never read [INFO] [stdout] --> src/client/mod.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct Client { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 54 | ip_addr: IpAddr, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | enabled_capabilities: HashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 58 | available_capabilities: HashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 59 | account: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | last_ping: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 64 | last_pong: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `MAX_RECVQ`, `get_account`, `get_ip`, `set_nickname`, and `set_hostname` are never used [INFO] [stdout] --> src/client/mod.rs:77:11 [INFO] [stdout] | [INFO] [stdout] 75 | impl Client { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 76 | const MAX_SENDQ: usize = 40960; // 40KB [INFO] [stdout] 77 | const MAX_RECVQ: usize = 8192; // 8KB [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn get_account(&self) -> Option<&String> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | pub fn get_ip(&self) -> IpAddr { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 286 | pub fn set_nickname(&mut self, nickname: String) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 292 | pub fn set_hostname(&mut self, hostname: String) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start_server` is never used [INFO] [stdout] --> src/client/tests.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | async fn start_server(server: Arc, port: u16) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `created_at`, `bans`, `operators`, and `voices` are never read [INFO] [stdout] --> src/channel/mod.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Channel { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 28 | created_at: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 29 | bans: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 30 | operators: HashSet, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 31 | voices: HashSet, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Channel` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PORT_CHANNEL_PART` is never used [INFO] [stdout] --> src/channel/tests.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | const PORT_CHANNEL_PART: u16 = 6922; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/channel/mode.rs:5:16 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct ChannelModes { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 5 | pub(crate) invite_only: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 6 | pub(crate) moderated: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 7 | pub(crate) no_external_messages: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 8 | pub(crate) secret: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 9 | pub(crate) topic_protection: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 10 | pub(crate) key: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] 11 | pub(crate) limit: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ChannelModes` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `mask`, `set_by`, and `set_time` are never read [INFO] [stdout] --> src/channel/list.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Ban { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 7 | pub mask: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 8 | pub set_by: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 9 | pub set_time: DateTime, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ban` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChannelMember` is never constructed [INFO] [stdout] --> src/channel/member.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct ChannelMember { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ChannelMember` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_topic` is never used [INFO] [stdout] --> src/channel/topic.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl Channel { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 11 | pub fn set_topic(&mut self, topic: String, setter: String) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `tags` is never read [INFO] [stdout] --> src/ts6/mod.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct TS6Message { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 17 | pub tags: HashMap, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TS6Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Config`, `Client`, `Channel`, `ServerLink`, and `Parse` are never constructed [INFO] [stdout] --> src/error.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum IrcError { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 9 | Config(String), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | Client(String), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | Channel(String), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | ServerLink(String), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | Parse(String), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IrcError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_str` is never used [INFO] [stdout] --> src/ircv3/mod.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 37 | impl Capability { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 38 | pub fn as_str(&self) -> &'static str { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `path` is never read [INFO] [stdout] --> src/database/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct Database { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 22 | path: PathBuf, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `save`, `add_kline`, and `remove_kline` are never used [INFO] [stdout] --> src/database/mod.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 26 | impl Database { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 42 | async fn save(&self) -> Result<(), std::io::Error> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | pub async fn add_kline(&self, kline: KLine) -> Result<(), std::io::Error> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub async fn remove_kline(&self, mask: &str) -> Result<(), std::io::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `privmsg`, `hostname`, `set_mode`, `expect_mode_change`, `get_topic`, and `expect_join` are never used [INFO] [stdout] --> src/test_utils.rs:130:18 [INFO] [stdout] | [INFO] [stdout] 24 | impl TestClient { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 130 | pub async fn privmsg(&mut self, target: &str, message: &str) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | pub fn hostname(&self) -> &str { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 196 | pub async fn set_mode(&mut self, mode: &str) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | pub async fn expect_mode_change(&mut self, expected_mode: &str) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 213 | pub async fn get_topic(&mut self, channel: &str) -> IrcResult { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 259 | pub async fn expect_join(&mut self, channel: &str, nickname: &str) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `sid`, `description`, `password`, `incoming`, and `capabilities` are never read [INFO] [stdout] --> src/link/mod.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct ServerLink { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 13 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 14 | sid: String, // Server ID in TS6 format (3 chars) [INFO] [stdout] | ^^^ [INFO] [stdout] 15 | description: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 16 | password: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 17 | incoming: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 18 | capabilities: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `send_pass`, `send_capab`, `send_server`, `send_burst`, `send_users_burst`, and `send_channels_burst` are never used [INFO] [stdout] --> src/link/mod.rs:64:14 [INFO] [stdout] | [INFO] [stdout] 23 | impl ServerLink { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 64 | async fn send_pass(&mut self) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | async fn send_capab(&mut self) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | async fn send_server(&mut self) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | async fn send_burst(&mut self) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | async fn send_users_burst(&mut self) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | async fn send_channels_burst(&mut self) -> IrcResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/server/mod.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | server_task(rx); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 43.92s [INFO] running `Command { std: "docker" "inspect" "947771b79bdcb6d323b3b1e5b45861bb41b90196e55206602fb631fa86c97879", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "947771b79bdcb6d323b3b1e5b45861bb41b90196e55206602fb631fa86c97879", kill_on_drop: false }` [INFO] [stdout] 947771b79bdcb6d323b3b1e5b45861bb41b90196e55206602fb631fa86c97879