[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] building alanpq/rust-voice against master#ad85bc524b1ad696e42061ad8338d382dffbdbe5 for pr-146237-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falanpq%2Frust-voice" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[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-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/alanpq/rust-voice on toolchain ad85bc524b1ad696e42061ad8338d382dffbdbe5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[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" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "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]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded clap_derive v3.2.17
[INFO] [stderr]   Downloaded once_cell v1.13.1
[INFO] [stderr]   Downloaded cache-padded v1.2.0
[INFO] [stderr]   Downloaded symphonia-bundle-flac v0.5.1
[INFO] [stderr]   Downloaded symphonia-codec-vorbis v0.5.1
[INFO] [stderr]   Downloaded anyhow v1.0.62
[INFO] [stderr]   Downloaded opus v0.3.0
[INFO] [stderr]   Downloaded crossbeam-queue v0.3.6
[INFO] [stderr]   Downloaded crossbeam-deque v0.8.2
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.10
[INFO] [stderr]   Downloaded atomic-arena v0.1.1
[INFO] [stderr]   Downloaded kira v0.7.0
[INFO] [stderr]   Downloaded symphonia v0.5.1
[INFO] [stderr]   Downloaded symphonia-utils-xiph v0.5.1
[INFO] [stderr]   Downloaded bumpalo v3.11.0
[INFO] [stderr]   Downloaded crossbeam-channel v0.5.6
[INFO] [stderr]   Downloaded libc v0.2.132
[INFO] [stderr]   Downloaded bytemuck v1.12.1
[INFO] [stderr]   Downloaded symphonia-bundle-mp3 v0.5.1
[INFO] [stderr]   Downloaded symphonia-format-ogg v0.5.1
[INFO] [stderr]   Downloaded symphonia-metadata v0.5.1
[INFO] [stderr]   Downloaded clap v3.2.17
[INFO] [stderr]   Downloaded crossbeam v0.8.2
[INFO] [stderr]   Downloaded thiserror v1.0.32
[INFO] [stderr]   Downloaded symphonia-codec-pcm v0.5.1
[INFO] [stderr]   Downloaded symphonia-format-wav v0.5.1
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.11
[INFO] [stderr]   Downloaded proc-macro-crate v1.2.1
[INFO] [stderr]   Downloaded thiserror-impl v1.0.32
[INFO] [stderr]   Downloaded arrayvec v0.7.2
[INFO] [stderr]   Downloaded serde_derive v1.0.143
[INFO] [stderr]   Downloaded ringbuf v0.2.8
[INFO] [stderr]   Downloaded os_str_bytes v6.3.0
[INFO] [stderr]   Downloaded uuid v1.1.2
[INFO] [stderr]   Downloaded audiopus_sys v0.2.2
[INFO] [stderr]   Downloaded symphonia-core v0.5.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7501711fbd7ecf0ab972bc25e6b26dc984f85ec820ad4c3bab47cd5ccea97288
[INFO] running `Command { std: "docker" "start" "-a" "7501711fbd7ecf0ab972bc25e6b26dc984f85ec820ad4c3bab47cd5ccea97288", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7501711fbd7ecf0ab972bc25e6b26dc984f85ec820ad4c3bab47cd5ccea97288", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7501711fbd7ecf0ab972bc25e6b26dc984f85ec820ad4c3bab47cd5ccea97288", kill_on_drop: false }`
[INFO] [stdout] 7501711fbd7ecf0ab972bc25e6b26dc984f85ec820ad4c3bab47cd5ccea97288
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f3341894989f531a1f523ea44352193f698a215fa92ddc81a7d94d9da799df68
[INFO] running `Command { std: "docker" "start" "-a" "f3341894989f531a1f523ea44352193f698a215fa92ddc81a7d94d9da799df68", 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 unicode-ident v1.0.3
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]    Compiling syn v1.0.99
[INFO] [stderr]    Compiling arrayvec v0.7.2
[INFO] [stderr]    Compiling bytemuck v1.12.1
[INFO] [stderr]    Compiling once_cell v1.13.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.11
[INFO] [stderr]    Compiling serde_derive v1.0.143
[INFO] [stderr]    Compiling serde v1.0.143
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.10
[INFO] [stderr]    Compiling smallvec v1.9.0
[INFO] [stderr]    Compiling indexmap v1.9.1
[INFO] [stderr]    Compiling crossbeam-queue v0.3.6
[INFO] [stderr]    Compiling termcolor v1.1.3
[INFO] [stderr]    Compiling regex-syntax v0.6.27
[INFO] [stderr]    Compiling cpal v0.13.5
[INFO] [stderr]    Compiling os_str_bytes v6.3.0
[INFO] [stderr]    Compiling cache-padded v1.2.0
[INFO] [stderr]    Compiling anyhow v1.0.62
[INFO] [stderr]    Compiling textwrap v0.15.0
[INFO] [stderr]    Compiling ringbuf v0.2.8
[INFO] [stderr]    Compiling atomic-arena v0.1.1
[INFO] [stderr]    Compiling symphonia-core v0.5.1
[INFO] [stderr]    Compiling clap_lex v0.2.4
[INFO] [stderr]    Compiling aho-corasick v0.7.18
[INFO] [stderr]    Compiling crossbeam-channel v0.5.6
[INFO] [stderr]    Compiling crossbeam-deque v0.8.2
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling crossbeam v0.8.2
[INFO] [stderr]    Compiling jobserver v0.1.24
[INFO] [stderr]    Compiling getrandom v0.2.7
[INFO] [stderr]    Compiling parking_lot_core v0.8.5
[INFO] [stderr]    Compiling nix v0.23.1
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling symphonia-metadata v0.5.1
[INFO] [stderr]    Compiling symphonia-codec-pcm v0.5.1
[INFO] [stderr]    Compiling parking_lot v0.11.2
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]    Compiling regex v1.6.0
[INFO] [stderr]    Compiling rand_core v0.6.3
[INFO] [stderr]    Compiling symphonia-utils-xiph v0.5.1
[INFO] [stderr]    Compiling symphonia-bundle-mp3 v0.5.1
[INFO] [stderr]    Compiling symphonia-format-wav v0.5.1
[INFO] [stderr]    Compiling symphonia-format-ogg v0.5.1
[INFO] [stderr]    Compiling symphonia-bundle-flac v0.5.1
[INFO] [stderr]    Compiling symphonia-codec-vorbis v0.5.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling cmake v0.1.48
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling audiopus_sys v0.2.2
[INFO] [stderr]    Compiling opus v0.3.0
[INFO] [stderr]    Compiling symphonia v0.5.1
[INFO] [stderr]    Compiling env_logger v0.9.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling alsa v0.6.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.32
[INFO] [stderr]    Compiling clap_derive v3.2.17
[INFO] [stderr]    Compiling thiserror v1.0.32
[INFO] [stderr]    Compiling clap v3.2.17
[INFO] [stderr]    Compiling kira v0.7.0
[INFO] [stderr]    Compiling uuid v1.1.2
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling common v0.1.0 (/opt/rustwide/workdir/common)
[INFO] [stderr]    Compiling client v0.1.0 (/opt/rustwide/workdir/client)
[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)]` (part of `#[warn(unused)]`) 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: 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)]` (part of `#[warn(unused)]`) 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] [stderr]    Compiling server v0.1.0 (/opt/rustwide/workdir/server)
[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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) on by default
[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: 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)]` (part of `#[warn(unused)]`) 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<u8>) -> 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<Volume>,
[INFO] [stdout]    |   ^^^^^^
[INFO] [stdout] 64 |   shared: Arc<Shared>,
[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)]` (part of `#[warn(unused)]`) 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: 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 30.74s
[INFO] running `Command { std: "docker" "inspect" "f3341894989f531a1f523ea44352193f698a215fa92ddc81a7d94d9da799df68", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f3341894989f531a1f523ea44352193f698a215fa92ddc81a7d94d9da799df68", kill_on_drop: false }`
[INFO] [stdout] f3341894989f531a1f523ea44352193f698a215fa92ddc81a7d94d9da799df68
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d2be09f566be481ce8293c235663319b4234765fa9518ea734a4455208d6a774
[INFO] running `Command { std: "docker" "start" "-a" "d2be09f566be481ce8293c235663319b4234765fa9518ea734a4455208d6a774", 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 common v0.1.0 (/opt/rustwide/workdir/common)
[INFO] [stderr]    Compiling server v0.1.0 (/opt/rustwide/workdir/server)
[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)]` (part of `#[warn(unused)]`) 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: 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)]` (part of `#[warn(unused)]`) 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: 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) on by default
[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: 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)]` (part of `#[warn(unused)]`) 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<u8>) -> 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] [stderr]    Compiling client v0.1.0 (/opt/rustwide/workdir/client)
[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<Volume>,
[INFO] [stdout]    |   ^^^^^^
[INFO] [stdout] 64 |   shared: Arc<Shared>,
[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)]` (part of `#[warn(unused)]`) 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: 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)]` (part of `#[warn(unused)]`) 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: 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)]` (part of `#[warn(unused)]`) 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 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) on by default
[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: 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)]` (part of `#[warn(unused)]`) 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<u8>) -> 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<Volume>,
[INFO] [stdout]    |   ^^^^^^
[INFO] [stdout] 64 |   shared: Arc<Shared>,
[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)]` (part of `#[warn(unused)]`) 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] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.86s
[INFO] running `Command { std: "docker" "inspect" "d2be09f566be481ce8293c235663319b4234765fa9518ea734a4455208d6a774", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d2be09f566be481ce8293c235663319b4234765fa9518ea734a4455208d6a774", kill_on_drop: false }`
[INFO] [stdout] d2be09f566be481ce8293c235663319b4234765fa9518ea734a4455208d6a774
