[INFO] cloning repository https://github.com/alanpq/rust-voice [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/alanpq/rust-voice" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falanpq%2Frust-voice", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falanpq%2Frust-voice'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f4fdcdbfbfbaad0218e7df441d7efc30b1030b52 [INFO] checking alanpq/rust-voice/f4fdcdbfbfbaad0218e7df441d7efc30b1030b52 against master#ab869e094a907cc5d19b4080f22eccaf347f1f95 for pr-129604 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falanpq%2Frust-voice" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/alanpq/rust-voice on toolchain ab869e094a907cc5d19b4080f22eccaf347f1f95 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/alanpq/rust-voice [INFO] finished tweaking git repo https://github.com/alanpq/rust-voice [INFO] tweaked toml for git repo https://github.com/alanpq/rust-voice written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/alanpq/rust-voice 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" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded symphonia-format-wav v0.5.1 [INFO] [stderr] Downloaded kira v0.7.0 [INFO] [stderr] Downloaded symphonia-codec-pcm v0.5.1 [INFO] [stderr] Downloaded symphonia-bundle-flac v0.5.1 [INFO] [stderr] Downloaded crossbeam-queue v0.3.6 [INFO] [stderr] Downloaded symphonia-format-ogg v0.5.1 [INFO] [stderr] Downloaded symphonia-bundle-mp3 v0.5.1 [INFO] [stderr] Downloaded symphonia-metadata v0.5.1 [INFO] [stderr] Downloaded symphonia v0.5.1 [INFO] [stderr] Downloaded symphonia-codec-vorbis v0.5.1 [INFO] [stderr] Downloaded symphonia-utils-xiph v0.5.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 21492bc3c75eee115b9d3bc4ea9d6b7845fd67efe7519ae7d8cca70d908369b8 [INFO] running `Command { std: "docker" "start" "-a" "21492bc3c75eee115b9d3bc4ea9d6b7845fd67efe7519ae7d8cca70d908369b8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "21492bc3c75eee115b9d3bc4ea9d6b7845fd67efe7519ae7d8cca70d908369b8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "21492bc3c75eee115b9d3bc4ea9d6b7845fd67efe7519ae7d8cca70d908369b8", kill_on_drop: false }` [INFO] [stdout] 21492bc3c75eee115b9d3bc4ea9d6b7845fd67efe7519ae7d8cca70d908369b8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8aa6d08af56804c59071bd6fe4114e22c35dfa76fd4ad73ef2cac5af05994069 [INFO] running `Command { std: "docker" "start" "-a" "8aa6d08af56804c59071bd6fe4114e22c35dfa76fd4ad73ef2cac5af05994069", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Compiling libc v0.2.132 [INFO] [stderr] Compiling log v0.4.17 [INFO] [stderr] Compiling proc-macro2 v1.0.43 [INFO] [stderr] Compiling quote v1.0.21 [INFO] [stderr] Compiling unicode-ident v1.0.3 [INFO] [stderr] Compiling syn v1.0.99 [INFO] [stderr] Checking arrayvec v0.7.2 [INFO] [stderr] Checking bytemuck v1.12.1 [INFO] [stderr] Compiling encoding_rs v0.8.31 [INFO] [stderr] Compiling pkg-config v0.3.25 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling serde_derive v1.0.143 [INFO] [stderr] Checking once_cell v1.13.1 [INFO] [stderr] Checking symphonia-core v0.5.1 [INFO] [stderr] Compiling serde v1.0.143 [INFO] [stderr] Compiling memchr v2.5.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.11 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Compiling alsa-sys v0.3.1 [INFO] [stderr] Compiling lock_api v0.4.7 [INFO] [stderr] Checking getrandom v0.2.7 [INFO] [stderr] Compiling parking_lot_core v0.8.5 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Compiling crossbeam-epoch v0.9.10 [INFO] [stderr] Checking instant v0.1.12 [INFO] [stderr] Checking smallvec v1.9.0 [INFO] [stderr] Checking termcolor v1.1.3 [INFO] [stderr] Checking regex-syntax v0.6.27 [INFO] [stderr] Checking symphonia-metadata v0.5.1 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking nix v0.23.1 [INFO] [stderr] Checking symphonia-utils-xiph v0.5.1 [INFO] [stderr] Compiling indexmap v1.9.1 [INFO] [stderr] Compiling cpal v0.13.5 [INFO] [stderr] Compiling crossbeam-queue v0.3.6 [INFO] [stderr] Compiling jobserver v0.1.24 [INFO] [stderr] Checking symphonia-codec-vorbis v0.5.1 [INFO] [stderr] Checking symphonia-format-ogg v0.5.1 [INFO] [stderr] Checking symphonia-bundle-flac v0.5.1 [INFO] [stderr] Checking symphonia-format-wav v0.5.1 [INFO] [stderr] Compiling cc v1.0.73 [INFO] [stderr] Checking symphonia-bundle-mp3 v0.5.1 [INFO] [stderr] Checking parking_lot v0.11.2 [INFO] [stderr] Checking symphonia-codec-pcm v0.5.1 [INFO] [stderr] Checking rand_core v0.6.3 [INFO] [stderr] Checking cache-padded v1.2.0 [INFO] [stderr] Checking os_str_bytes v6.3.0 [INFO] [stderr] Compiling anyhow v1.0.62 [INFO] [stderr] Compiling heck v0.4.0 [INFO] [stderr] Checking ppv-lite86 v0.2.16 [INFO] [stderr] Compiling cmake v0.1.48 [INFO] [stderr] Checking clap_lex v0.2.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking crossbeam-deque v0.8.2 [INFO] [stderr] Checking symphonia v0.5.1 [INFO] [stderr] Checking ringbuf v0.2.8 [INFO] [stderr] Checking crossbeam-channel v0.5.6 [INFO] [stderr] Checking atomic-arena v0.1.1 [INFO] [stderr] Compiling audiopus_sys v0.2.2 [INFO] [stderr] Checking textwrap v0.15.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking crossbeam v0.8.2 [INFO] [stderr] Checking opus v0.3.0 [INFO] [stderr] Checking regex v1.6.0 [INFO] [stderr] Checking env_logger v0.9.0 [INFO] [stderr] Checking alsa v0.6.0 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling thiserror-impl v1.0.32 [INFO] [stderr] Compiling clap_derive v3.2.17 [INFO] [stderr] Checking thiserror v1.0.32 [INFO] [stderr] Checking clap v3.2.17 [INFO] [stderr] Checking kira v0.7.0 [INFO] [stderr] Checking uuid v1.1.2 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking common v0.1.0 (/opt/rustwide/workdir/common) [INFO] [stderr] Checking server v0.1.0 (/opt/rustwide/workdir/server) [INFO] [stderr] Checking client v0.1.0 (/opt/rustwide/workdir/client) [INFO] [stdout] warning: unused import: `crate::server::Server` [INFO] [stdout] --> server/src/config.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::server::Server; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LinkedList` [INFO] [stdout] --> server/src/server.rs:1:55 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{net::{UdpSocket, SocketAddr}, collections::{LinkedList, HashMap}, sync::{Arc, Mutex}, time::Instant}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `debug` [INFO] [stdout] --> server/src/server.rs:4:17 [INFO] [stdout] | [INFO] [stdout] 4 | use log::{info, debug, error, warn}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::server::Server` [INFO] [stdout] --> server/src/config.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::server::Server; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LinkedList` [INFO] [stdout] --> server/src/server.rs:1:55 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{net::{UdpSocket, SocketAddr}, collections::{LinkedList, HashMap}, sync::{Arc, Mutex}, time::Instant}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `debug` [INFO] [stdout] --> server/src/server.rs:4:17 [INFO] [stdout] | [INFO] [stdout] 4 | use log::{info, debug, error, warn}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> server/src/server.rs:106:7 [INFO] [stdout] | [INFO] [stdout] 106 | _ => {} [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> server/src/server.rs:106:7 [INFO] [stdout] | [INFO] [stdout] 65 | ClientMessage::Connect { username } => { [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 88 | ClientMessage::Disconnect => { [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 97 | ClientMessage::Ping => { [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 101 | ClientMessage::Voice { samples } => { [INFO] [stdout] | -------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 106 | _ => {} [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `user` [INFO] [stdout] --> server/src/server.rs:115:56 [INFO] [stdout] | [INFO] [stdout] 115 | self.users.lock().unwrap().iter().for_each(|(addr, user)| { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_user` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> server/src/config.rs:14:10 [INFO] [stdout] | [INFO] [stdout] 13 | impl ServerConfig { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 14 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `collections::VecDeque` [INFO] [stdout] --> client/src/client.rs:1:66 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{net::{UdpSocket, ToSocketAddrs}, sync::mpsc::Receiver, collections::VecDeque}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `collections::VecDeque` [INFO] [stdout] --> client/src/client.rs:1:66 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{net::{UdpSocket, ToSocketAddrs}, sync::mpsc::Receiver, collections::VecDeque}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ringbuf::Consumer` [INFO] [stdout] --> client/src/client.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use ringbuf::Consumer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `borrow::BorrowMut` [INFO] [stdout] --> client/src/mic.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{borrow::BorrowMut, sync::{Mutex, Arc, mpsc::{Sender, Receiver}}, collections::VecDeque}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Consumer` and `Producer` [INFO] [stdout] --> client/src/mic.rs:7:15 [INFO] [stdout] | [INFO] [stdout] 7 | use ringbuf::{Producer, Consumer, RingBuffer}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::debug` [INFO] [stdout] --> client/src/util/resampling.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use log::debug; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ringbuf::Consumer` [INFO] [stdout] --> client/src/client.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use ringbuf::Consumer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `borrow::BorrowMut` [INFO] [stdout] --> client/src/mic.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{borrow::BorrowMut, sync::{Mutex, Arc, mpsc::{Sender, Receiver}}, collections::VecDeque}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> client/src/util/resampling.rs:8:15 [INFO] [stdout] | [INFO] [stdout] 8 | let pos = ((i as u32 * source_rate) as f32 / dest_rate as f32); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 8 - let pos = ((i as u32 * source_rate) as f32 / dest_rate as f32); [INFO] [stdout] 8 + let pos = (i as u32 * source_rate) as f32 / dest_rate as f32; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> client/src/cpal/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use stream::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(self)` [INFO] [stdout] --> client/src/cpal/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use stream::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `stream::*` [INFO] [stdout] --> client/src/cpal/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use stream::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `renderer_wrapper::*` [INFO] [stdout] --> client/src/cpal/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use renderer_wrapper::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Consumer` and `Producer` [INFO] [stdout] --> client/src/mic.rs:7:15 [INFO] [stdout] | [INFO] [stdout] 7 | use ringbuf::{Producer, Consumer, RingBuffer}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log::debug` [INFO] [stdout] --> client/src/util/resampling.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use log::debug; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> client/src/util/resampling.rs:8:15 [INFO] [stdout] | [INFO] [stdout] 8 | let pos = ((i as u32 * source_rate) as f32 / dest_rate as f32); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 8 - let pos = ((i as u32 * source_rate) as f32 / dest_rate as f32); [INFO] [stdout] 8 + let pos = (i as u32 * source_rate) as f32 / dest_rate as f32; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: glob import doesn't reexport anything with visibility `pub` because no imported item is public enough [INFO] [stdout] --> client/src/cpal/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use stream::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the most public imported item is `pub(self)` [INFO] [stdout] --> client/src/cpal/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use stream::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] = help: reduce the glob import's visibility or increase visibility of imported items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `stream::*` [INFO] [stdout] --> client/src/cpal/mod.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub use stream::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `renderer_wrapper::*` [INFO] [stdout] --> client/src/cpal/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use renderer_wrapper::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> server/src/server.rs:106:7 [INFO] [stdout] | [INFO] [stdout] 106 | _ => {} [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> server/src/server.rs:106:7 [INFO] [stdout] | [INFO] [stdout] 65 | ClientMessage::Connect { username } => { [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 88 | ClientMessage::Disconnect => { [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 97 | ClientMessage::Ping => { [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 101 | ClientMessage::Voice { samples } => { [INFO] [stdout] | -------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 106 | _ => {} [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `user` [INFO] [stdout] --> server/src/server.rs:115:56 [INFO] [stdout] | [INFO] [stdout] 115 | self.users.lock().unwrap().iter().for_each(|(addr, user)| { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_user` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> client/src/app.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | let mut client = Client::new(username, rx)?; [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: associated function `new` is never used [INFO] [stdout] --> server/src/config.rs:14:10 [INFO] [stdout] | [INFO] [stdout] 13 | impl ServerConfig { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 14 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sound` [INFO] [stdout] --> client/src/app.rs:97:17 [INFO] [stdout] | [INFO] [stdout] 97 | if let Some(sound) = sound_map.remove(&id) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_sound` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> client/src/app.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | let mut client = Client::new(username, rx)?; [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: `sound` [INFO] [stdout] --> client/src/app.rs:97:17 [INFO] [stdout] | [INFO] [stdout] 97 | if let Some(sound) = sound_map.remove(&id) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_sound` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `consumer` [INFO] [stdout] --> client/src/mic.rs:125:24 [INFO] [stdout] | [INFO] [stdout] 125 | let (mut producer, consumer) = ring.split(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_consumer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `clock_info_provider` [INFO] [stdout] --> client/src/voice.rs:74:34 [INFO] [stdout] | [INFO] [stdout] 74 | fn process(&mut self, dt: f64, clock_info_provider: &kira::clock::clock_info::ClockInfoProvider) -> kira::dsp::Frame { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clock_info_provider` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `consumer` [INFO] [stdout] --> client/src/mic.rs:125:24 [INFO] [stdout] | [INFO] [stdout] 125 | let (mut producer, consumer) = ring.split(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_consumer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Invalid` is never constructed [INFO] [stdout] --> client/src/client.rs:11:3 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum ClientState { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] 11 | Invalid, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PACKET_MAX_SIZE` is never used [INFO] [stdout] --> client/src/client.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const PACKET_MAX_SIZE: usize = 1024; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `OnVoiceCB` is never used [INFO] [stdout] --> client/src/client.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | pub type OnVoiceCB = dyn Fn(Uuid, Vec) -> Result<(), anyhow::Error> + Send + Sync; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `OnDisconnect` is never used [INFO] [stdout] --> client/src/client.rs:20:10 [INFO] [stdout] | [INFO] [stdout] 20 | pub type OnDisconnect = dyn FnMut(Uuid) -> Result<(), anyhow::Error> + Send + Sync; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `sample_rate` and `opus_rate` are never read [INFO] [stdout] --> client/src/decoder.rs:8:3 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct OpusDecoder { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 7 | /// the real sample rate of the input [INFO] [stdout] 8 | sample_rate: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 9 | /// the sample rate of the encoder [INFO] [stdout] 10 | opus_rate: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `frame_size` and `reset` are never used [INFO] [stdout] --> client/src/decoder.rs:35:10 [INFO] [stdout] | [INFO] [stdout] 16 | impl OpusDecoder { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn frame_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn reset(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ms` and `frames` are never read [INFO] [stdout] --> client/src/latency.rs:3:3 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Latency { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 3 | ms: f32, [INFO] [stdout] | ^^ [INFO] [stdout] 4 | frames: usize, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Latency` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `host` is never read [INFO] [stdout] --> client/src/mic.rs:12:3 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct MicService { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 12 | host: cpal::Host, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `track` is never read [INFO] [stdout] --> client/src/voice.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct VoiceSoundSettings { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] 7 | pub volume: Volume, [INFO] [stdout] 8 | pub track: TrackId, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `volume`, `shared`, and `pitch` are never read [INFO] [stdout] --> client/src/voice.rs:63:3 [INFO] [stdout] | [INFO] [stdout] 61 | pub(crate) struct VoiceSound { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 62 | time: f64, [INFO] [stdout] 63 | volume: Tweener, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 64 | shared: Arc, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 65 | pitch: f64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `clock_info_provider` [INFO] [stdout] --> client/src/voice.rs:74:34 [INFO] [stdout] | [INFO] [stdout] 74 | fn process(&mut self, dt: f64, clock_info_provider: &kira::clock::clock_info::ClockInfoProvider) -> kira::dsp::Frame { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clock_info_provider` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> client/src/decoder.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | decoder.reset_state(); [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] 48 | let _ = decoder.reset_state(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> client/src/mic.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | tx.send(packet); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 63 | let _ = tx.send(packet); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Invalid` is never constructed [INFO] [stdout] --> client/src/client.rs:11:3 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum ClientState { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] 11 | Invalid, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PACKET_MAX_SIZE` is never used [INFO] [stdout] --> client/src/client.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const PACKET_MAX_SIZE: usize = 1024; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `OnVoiceCB` is never used [INFO] [stdout] --> client/src/client.rs:19:10 [INFO] [stdout] | [INFO] [stdout] 19 | pub type OnVoiceCB = dyn Fn(Uuid, Vec) -> Result<(), anyhow::Error> + Send + Sync; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `OnDisconnect` is never used [INFO] [stdout] --> client/src/client.rs:20:10 [INFO] [stdout] | [INFO] [stdout] 20 | pub type OnDisconnect = dyn FnMut(Uuid) -> Result<(), anyhow::Error> + Send + Sync; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `sample_rate` and `opus_rate` are never read [INFO] [stdout] --> client/src/decoder.rs:8:3 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct OpusDecoder { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 7 | /// the real sample rate of the input [INFO] [stdout] 8 | sample_rate: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 9 | /// the sample rate of the encoder [INFO] [stdout] 10 | opus_rate: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `frame_size` and `reset` are never used [INFO] [stdout] --> client/src/decoder.rs:35:10 [INFO] [stdout] | [INFO] [stdout] 16 | impl OpusDecoder { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn frame_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn reset(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ms` and `frames` are never read [INFO] [stdout] --> client/src/latency.rs:3:3 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Latency { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 3 | ms: f32, [INFO] [stdout] | ^^ [INFO] [stdout] 4 | frames: usize, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Latency` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `host` is never read [INFO] [stdout] --> client/src/mic.rs:12:3 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct MicService { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 12 | host: cpal::Host, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `track` is never read [INFO] [stdout] --> client/src/voice.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct VoiceSoundSettings { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] 7 | pub volume: Volume, [INFO] [stdout] 8 | pub track: TrackId, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `volume`, `shared`, and `pitch` are never read [INFO] [stdout] --> client/src/voice.rs:63:3 [INFO] [stdout] | [INFO] [stdout] 61 | pub(crate) struct VoiceSound { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 62 | time: f64, [INFO] [stdout] 63 | volume: Tweener, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 64 | shared: Arc, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 65 | pitch: f64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> client/src/decoder.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | decoder.reset_state(); [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] 48 | let _ = decoder.reset_state(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 25 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> client/src/mic.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | tx.send(packet); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 63 | let _ = tx.send(packet); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 25 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.01s [INFO] running `Command { std: "docker" "inspect" "8aa6d08af56804c59071bd6fe4114e22c35dfa76fd4ad73ef2cac5af05994069", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8aa6d08af56804c59071bd6fe4114e22c35dfa76fd4ad73ef2cac5af05994069", kill_on_drop: false }` [INFO] [stdout] 8aa6d08af56804c59071bd6fe4114e22c35dfa76fd4ad73ef2cac5af05994069