[INFO] cloning repository https://github.com/hvalfangst/Rust-Synthesizer [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hvalfangst/Rust-Synthesizer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhvalfangst%2FRust-Synthesizer", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhvalfangst%2FRust-Synthesizer'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 1687aa17b2ef47a88292bf0877d89ffb587449a4 [INFO] building hvalfangst/Rust-Synthesizer against master#c7f6aa2869acdbf014d094c6e427e554e160b6db for pr-146237-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhvalfangst%2FRust-Synthesizer" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/hvalfangst/Rust-Synthesizer [INFO] finished tweaking git repo https://github.com/hvalfangst/Rust-Synthesizer [INFO] tweaked toml for git repo https://github.com/hvalfangst/Rust-Synthesizer written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/hvalfangst/Rust-Synthesizer on toolchain c7f6aa2869acdbf014d094c6e427e554e160b6db [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/hvalfangst/Rust-Synthesizer 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" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded bytemuck v1.16.0 [INFO] [stderr] Downloaded minifb v0.21.0 [INFO] [stderr] Downloaded xml-rs v0.8.20 [INFO] [stderr] Downloaded alsa v0.9.0 [INFO] [stderr] Downloaded memchr v2.7.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 03941d86d36eaee9c1d0a4ce0a1ab3e3419f530ff72f2b3c8894d3df355aed11 [INFO] running `Command { std: "docker" "start" "-a" "03941d86d36eaee9c1d0a4ce0a1ab3e3419f530ff72f2b3c8894d3df355aed11", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "03941d86d36eaee9c1d0a4ce0a1ab3e3419f530ff72f2b3c8894d3df355aed11", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "03941d86d36eaee9c1d0a4ce0a1ab3e3419f530ff72f2b3c8894d3df355aed11", kill_on_drop: false }` [INFO] [stdout] 03941d86d36eaee9c1d0a4ce0a1ab3e3419f530ff72f2b3c8894d3df355aed11 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1e2ea6ee4cbde27365a395930567df10a34bea2f0c51b6febb6df3acc56f5b1c [INFO] running `Command { std: "docker" "start" "-a" "1e2ea6ee4cbde27365a395930567df10a34bea2f0c51b6febb6df3acc56f5b1c", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling memchr v2.7.3 [INFO] [stderr] Compiling glob v0.3.1 [INFO] [stderr] Compiling xml-rs v0.8.20 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling unicode-width v0.1.13 [INFO] [stderr] Compiling wayland-sys v0.29.5 [INFO] [stderr] Compiling libloading v0.8.3 [INFO] [stderr] Compiling vec_map v0.8.2 [INFO] [stderr] Compiling ansi_term v0.12.1 [INFO] [stderr] Compiling nom v5.1.3 [INFO] [stderr] Compiling bindgen v0.56.0 [INFO] [stderr] Compiling bytemuck v1.16.0 [INFO] [stderr] Compiling termcolor v1.4.1 [INFO] [stderr] Compiling textwrap v0.11.0 [INFO] [stderr] Compiling humantime v2.1.0 [INFO] [stderr] Compiling log v0.4.21 [INFO] [stderr] Compiling strsim v0.8.0 [INFO] [stderr] Compiling bitflags v2.5.0 [INFO] [stderr] Compiling shlex v0.1.1 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Compiling peeking_take_while v0.1.2 [INFO] [stderr] Compiling miniz_oxide v0.7.3 [INFO] [stderr] Compiling alsa-sys v0.3.1 [INFO] [stderr] Compiling arrayvec v0.7.4 [INFO] [stderr] Compiling either v1.12.0 [INFO] [stderr] Compiling downcast-rs v1.2.1 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling symphonia-core v0.5.4 [INFO] [stderr] Compiling clang-sys v1.8.1 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Compiling cc v1.0.99 [INFO] [stderr] Compiling linux-raw-sys v0.4.14 [INFO] [stderr] Compiling weezl v0.1.8 [INFO] [stderr] Compiling cpal v0.15.3 [INFO] [stderr] Compiling rayon v1.10.0 [INFO] [stderr] Compiling flume v0.11.0 [INFO] [stderr] Compiling ogg v0.8.0 [INFO] [stderr] Compiling fdeflate v0.3.4 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling zune-inflate v0.2.54 [INFO] [stderr] Compiling half v2.4.1 [INFO] [stderr] Compiling wayland-scanner v0.29.5 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling which v3.1.1 [INFO] [stderr] Compiling clap v2.34.0 [INFO] [stderr] Compiling flate2 v1.0.30 [INFO] [stderr] Compiling dasp_sample v0.11.0 [INFO] [stderr] Compiling fastrand v2.1.0 [INFO] [stderr] Compiling xcursor v0.3.5 [INFO] [stderr] Compiling bit_field v0.10.2 [INFO] [stderr] Compiling nix v0.24.3 [INFO] [stderr] Compiling lebe v0.5.2 [INFO] [stderr] Compiling symphonia-metadata v0.5.4 [INFO] [stderr] Compiling exr v1.72.0 [INFO] [stderr] Compiling minifb v0.21.0 [INFO] [stderr] Compiling alsa v0.9.0 [INFO] [stderr] Compiling png v0.17.13 [INFO] [stderr] Compiling wayland-client v0.29.5 [INFO] [stderr] Compiling cexpr v0.4.0 [INFO] [stderr] Compiling wayland-protocols v0.29.5 [INFO] [stderr] Compiling symphonia-bundle-mp3 v0.5.4 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling tempfile v3.10.1 [INFO] [stderr] Compiling symphonia v0.5.4 [INFO] [stderr] Compiling gif v0.13.1 [INFO] [stderr] Compiling lewton v0.10.2 [INFO] [stderr] Compiling wayland-commons v0.29.5 [INFO] [stderr] Compiling jpeg-decoder v0.3.1 [INFO] [stderr] Compiling qoi v0.4.1 [INFO] [stderr] Compiling hound v3.5.1 [INFO] [stderr] Compiling rodio v0.17.3 [INFO] [stderr] Compiling tiff v0.9.1 [INFO] [stderr] Compiling image v0.24.9 [INFO] [stderr] Compiling wayland-cursor v0.29.5 [INFO] [stderr] Compiling regex v1.10.5 [INFO] [stderr] Compiling env_logger v0.8.4 [INFO] [stderr] Compiling xkbcommon-sys v0.7.5 [INFO] [stderr] Compiling xkb v0.2.1 [INFO] [stderr] Compiling synthesizer v0.5.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `EffectWrapper` [INFO] [stdout] --> src/state/utils.rs:6:22 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::effects::{EffectWrapper, AudioEffect, DelayEffect, ReverbEffect, FlangerEffect}; [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: `draw_control_buttons` [INFO] [stdout] --> src/state/utils.rs:9:47 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::graphics::draw::{draw_adsr_faders, draw_control_buttons, draw_display_sprite_single, draw_idle_key_sprites, draw_idle_tangent_... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::adsr_envelope::ADSREnvelope` [INFO] [stdout] --> src/state/utils.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::waveforms::adsr_envelope::ADSREnvelope; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::sawtooth_wave::SawtoothWave` [INFO] [stdout] --> src/state/utils.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::waveforms::sawtooth_wave::SawtoothWave; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::sine_wave::SineWave` [INFO] [stdout] --> src/state/utils.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::waveforms::sine_wave::SineWave; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::square_wave::SquareWave` [INFO] [stdout] --> src/state/utils.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::waveforms::square_wave::SquareWave; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::triangle_wave::TriangleWave` [INFO] [stdout] --> src/state/utils.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::waveforms::triangle_wave::TriangleWave; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AMPLITUDE` and `Waveform` [INFO] [stdout] --> src/state/utils.rs:18:24 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::waveforms::{Waveform, AMPLITUDE}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyRepeat` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | use minifb::{Key, KeyRepeat, Window}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Source` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:2:19 [INFO] [stdout] | [INFO] [stdout] 2 | use rodio::{Sink, Source}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::music_theory::note::Note` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::music_theory::note::Note; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::adsr_envelope::ADSREnvelope` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::waveforms::adsr_envelope::ADSREnvelope; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::sine_wave::SineWave` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::waveforms::sine_wave::SineWave; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::square_wave::SquareWave` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::waveforms::square_wave::SquareWave; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::triangle_wave::TriangleWave` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::waveforms::triangle_wave::TriangleWave; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AMPLITUDE` and `Waveform` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:10:24 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::waveforms::{Waveform, AMPLITUDE}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::sawtooth_wave::SawtoothWave` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::waveforms::sawtooth_wave::SawtoothWave; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `OCTAVE_LOWER_BOUND` and `OCTAVE_UPPER_BOUND` [INFO] [stdout] --> src/input/commands/octave_adjust.rs:4:27 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::music_theory::{OCTAVE_LOWER_BOUND, OCTAVE_UPPER_BOUND}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `handle_musical_note` [INFO] [stdout] --> src/input/commands/recording_control.rs:4:27 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::state::utils::{handle_musical_note}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Key` [INFO] [stdout] --> src/input/commands/track_control.rs:1:14 [INFO] [stdout] | [INFO] [stdout] 1 | use minifb::{Key, Window}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/audio/mixer.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RecordedNote` [INFO] [stdout] --> src/audio/mixer.rs:3:47 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::state::{State, Track, MasterTrack, RecordedNote}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::effects::AudioEffect` [INFO] [stdout] --> src/audio/mixer.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::effects::AudioEffect; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sink` [INFO] [stdout] --> src/state/updaters/audio_updater.rs:13:45 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn update(&self, state: &mut State, sink: &mut Sink) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sink` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/state/updaters/audio_updater.rs:33:40 [INFO] [stdout] | [INFO] [stdout] 33 | fn update_frequency_display(&self, state: &mut State) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/state/updaters/recording_updater.rs:41:38 [INFO] [stdout] | [INFO] [stdout] 41 | fn handle_playback_timing(&self, state: &mut State) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sprites` [INFO] [stdout] --> src/graphics/draw.rs:186:40 [INFO] [stdout] | [INFO] [stdout] 186 | pub fn draw_adsr_faders(state: &State, sprites: &Sprites, window_buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sprites` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `window` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:26:42 [INFO] [stdout] | [INFO] [stdout] 26 | fn execute(&self, state: &mut State, window: &mut Window, sink: &mut Sink) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sink` [INFO] [stdout] --> src/input/commands/mouse_input.rs:77:51 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn handle_adsr_fader_mouse(state: &mut State, sink: &mut Sink) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sink` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sink` [INFO] [stdout] --> src/input/commands/mouse_input.rs:362:56 [INFO] [stdout] | [INFO] [stdout] 362 | pub fn handle_effects_buttons_mouse(state: &mut State, sink: &mut Sink) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sink` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `track_width` [INFO] [stdout] --> src/input/commands/mouse_input.rs:423:9 [INFO] [stdout] | [INFO] [stdout] 423 | let track_width = 350; // Updated width for transport controls [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 423 | let _track_width = 350; // Updated width for transport controls [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `OCTAVE_LOWER_BOUND` [INFO] [stdout] | [INFO] [stdout] 423 - let track_width = 350; // Updated width for transport controls [INFO] [stdout] 423 + let music_theory::OCTAVE_LOWER_BOUND = 350; // Updated width for transport controls [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sink` [INFO] [stdout] --> src/input/commands/waveform_toggle.rs:10:63 [INFO] [stdout] | [INFO] [stdout] 10 | fn execute(&self, state: &mut State, window: &mut Window, sink: &mut Sink) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sink` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sink` [INFO] [stdout] --> src/input/commands/octave_adjust.rs:19:63 [INFO] [stdout] | [INFO] [stdout] 19 | fn execute(&self, state: &mut State, window: &mut Window, sink: &mut Sink) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sink` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sink` [INFO] [stdout] --> src/input/commands/adsr_control.rs:39:63 [INFO] [stdout] | [INFO] [stdout] 39 | fn execute(&self, state: &mut State, window: &mut Window, sink: &mut Sink) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sink` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sink` [INFO] [stdout] --> src/input/commands/effects_toggle.rs:34:63 [INFO] [stdout] | [INFO] [stdout] 34 | fn execute(&self, state: &mut State, window: &mut Window, sink: &mut Sink) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sink` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `track` [INFO] [stdout] --> src/input/commands/track_control.rs:49:21 [INFO] [stdout] | [INFO] [stdout] 49 | let track = &state.tracks[current_track_id]; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_track` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `track` [INFO] [stdout] --> src/input/commands/track_control.rs:55:21 [INFO] [stdout] | [INFO] [stdout] 55 | let track = &state.tracks[current_track_id]; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_track` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DURATION` is never used [INFO] [stdout] --> src/waveforms/mod.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub const DURATION: f32 = 0.19; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `release` is never used [INFO] [stdout] --> src/waveforms/adsr_envelope.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 20 | / impl ADSREnvelope [INFO] [stdout] 21 | | where [INFO] [stdout] 22 | | S: Source, [INFO] [stdout] | |__________________________- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn release(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/state/mod.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 62 | pub struct MasterTrack { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 63 | pub volume: f32, // Master volume 0.0 - 1.0 [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 64 | pub delay_enabled: bool, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 65 | pub reverb_enabled: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 66 | pub flanger_enabled: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 67 | pub delay_effect: DelayEffect, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 68 | pub reverb_effect: ReverbEffect, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 69 | pub flanger_effect: FlangerEffect, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MasterTrack` 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 `note`, `octave`, `x`, and `y` are never read [INFO] [stdout] --> src/state/mod.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct VisualNote { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 97 | pub note: Note, [INFO] [stdout] | ^^^^ [INFO] [stdout] 98 | pub octave: i32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub x: f32, [INFO] [stdout] | ^ [INFO] [stdout] 102 | pub y: f32, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `VisualNote` 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 `master_track`, `filter_factor`, `lpf_active`, `delay_effect`, `reverb_effect`, and `flanger_effect` are never read [INFO] [stdout] --> src/state/mod.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 142 | pub struct State { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 145 | pub master_track: MasterTrack, // Master mix bus [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub(crate) filter_factor: f32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 154 | pub(crate) lpf_active: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | pub delay_effect: DelayEffect, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 184 | pub reverb_effect: ReverbEffect, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 185 | pub flanger_effect: FlangerEffect, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/state/mod.rs:244:12 [INFO] [stdout] | [INFO] [stdout] 189 | impl State { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 244 | pub fn apply_lpf(&mut self, sample: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 249 | pub fn increase_octave(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub fn decrease_octave(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | pub fn toggle_lpf(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 269 | pub fn increase_filter_cutoff(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 276 | pub fn decrease_filter_cutoff(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 283 | pub fn get_current_octave(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | pub fn toggle_waveform(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 310 | pub fn increase_attack(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 314 | pub fn decrease_attack(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 318 | pub fn increase_decay(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | pub fn decrease_decay(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 326 | pub fn increase_sustain(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 330 | pub fn decrease_sustain(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 334 | pub fn increase_release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 338 | pub fn decrease_release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 343 | pub fn attack_normalized(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | pub fn decay_normalized(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 351 | pub fn sustain_normalized(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 360 | pub fn start_recording(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 387 | pub fn start_playback(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 399 | pub fn add_visual_note(&mut self, note: Note, octave: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 435 | pub fn calculate_adsr_amplitude(&self, time_since_start: f32, is_key_pressed: bool, time_since_release: Option) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 488 | pub fn current_track_mut(&mut self) -> &mut Track { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 493 | pub fn toggle_current_track_playback(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EffectsProcessor` is never constructed [INFO] [stdout] --> src/state/utils.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | struct EffectsProcessor> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/state/utils.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 31 | impl> EffectsProcessor { [INFO] [stdout] | ----------------------------------------------- associated function in this implementation [INFO] [stdout] 32 | fn new(source: S, state: &State) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `numbers`, `knob`, `display_sine`, `display_square`, `bulb`, and `adsr_fader` are never read [INFO] [stdout] --> src/graphics/sprites.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Sprites { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 16 | pub notes: Vec, [INFO] [stdout] 17 | pub numbers: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub knob: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 21 | pub rack: Vec, [INFO] [stdout] 22 | pub display_sine: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 23 | pub display_square: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 24 | pub octave_fader: Vec, [INFO] [stdout] 25 | pub bulb: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 26 | pub adsr_fader: Vec, // ADSR fader sprites (10 positions for fine control) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_display_sprite` is never used [INFO] [stdout] --> src/graphics/draw.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn draw_display_sprite(sprite: &Vec, buffer: &mut [u32], display_index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_bulb_sprite` is never used [INFO] [stdout] --> src/graphics/draw.rs:80:8 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn draw_bulb_sprite(state: &State, sprites: &Sprites, window_buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_filter_cutoff_knob_sprite` is never used [INFO] [stdout] --> src/graphics/draw.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn draw_filter_cutoff_knob_sprite(state: &State, sprites: &Sprites, window_buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_idle_knob_sprite` is never used [INFO] [stdout] --> src/graphics/draw.rs:117:8 [INFO] [stdout] | [INFO] [stdout] 117 | pub fn draw_idle_knob_sprite(sprites: &Sprites, window_buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_number_value` is never used [INFO] [stdout] --> src/graphics/draw.rs:263:4 [INFO] [stdout] | [INFO] [stdout] 263 | fn draw_number_value(x: usize, y: usize, value: u8, sprites: &Sprites, buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_control_buttons` is never used [INFO] [stdout] --> src/graphics/draw.rs:284:8 [INFO] [stdout] | [INFO] [stdout] 284 | pub fn draw_control_buttons(state: &State, buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_button` is never used [INFO] [stdout] --> src/graphics/draw.rs:332:4 [INFO] [stdout] | [INFO] [stdout] 332 | fn draw_button(x: usize, y: usize, width: usize, height: usize, color: u32, text: &str, buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_simple_text` is never used [INFO] [stdout] --> src/graphics/draw.rs:358:4 [INFO] [stdout] | [INFO] [stdout] 358 | fn draw_simple_text(x: usize, y: usize, text: &str, color: u32, buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_control_buttons_mouse` is never used [INFO] [stdout] --> src/input/commands/mouse_input.rs:300:8 [INFO] [stdout] | [INFO] [stdout] 300 | pub fn handle_control_buttons_mouse(state: &mut State, sink: &mut Sink) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SwitchToTrack` is never constructed [INFO] [stdout] --> src/input/commands/track_control.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum TrackAction { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] 13 | SwitchToTrack(usize), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TrackAction` 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: methods `process_sample` and `name` are never used [INFO] [stdout] --> src/effects/mod.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub trait AudioEffect: Send + Sync { [INFO] [stdout] | ----------- methods in this trait [INFO] [stdout] 14 | /// Process a single audio sample [INFO] [stdout] 15 | fn process_sample(&mut self, input: f32) -> f32; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | fn name(&self) -> &str; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EffectWrapper` is never constructed [INFO] [stdout] --> src/effects/mod.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct EffectWrapper [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/effects/mod.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 34 | / impl EffectWrapper [INFO] [stdout] 35 | | where [INFO] [stdout] 36 | | S: Source, [INFO] [stdout] 37 | | E: AudioEffect, [INFO] [stdout] | |___________________- associated function in this implementation [INFO] [stdout] 38 | { [INFO] [stdout] 39 | pub fn new(source: S, effect: E) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EffectChain` is never constructed [INFO] [stdout] --> src/effects/mod.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 79 | pub struct EffectChain { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_effect`, `process_sample`, and `reset` are never used [INFO] [stdout] --> src/effects/mod.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 83 | impl EffectChain { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 84 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn add_effect(&mut self, effect: Box) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn process_sample(&mut self, mut input: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/effects/delay.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct DelayEffect { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 8 | delay_samples: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 9 | feedback: f32, // Amount of delayed signal fed back (0.0 - 0.99) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 10 | mix: f32, // Dry/wet mix (0.0 = dry only, 1.0 = wet only) [INFO] [stdout] | ^^^ [INFO] [stdout] 11 | sample_rate: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 12 | // Multiple delay taps for richer sound [INFO] [stdout] 13 | tap1_samples: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 14 | tap2_samples: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | damping_coefficient: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DelayEffect` 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: methods `set_delay_time`, `set_feedback`, `set_mix`, and `read_tap` are never used [INFO] [stdout] --> src/effects/delay.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl DelayEffect { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn set_delay_time(&mut self, delay_time_ms: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn set_feedback(&mut self, feedback: f32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn set_mix(&mut self, mix: f32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | fn read_tap(&self, tap_samples: usize) -> f32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `comb_feedback`, `allpass_feedback`, `room_size`, `damping`, and `mix` are never read [INFO] [stdout] --> src/effects/reverb.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct ReverbEffect { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 9 | comb_feedback: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | allpass_feedback: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | room_size: f32, // 0.0 - 1.0 [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 18 | damping: f32, // 0.0 - 1.0 [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 19 | mix: f32, // 0.0 - 1.0 [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReverbEffect` 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: methods `process_comb_filters`, `process_allpass_filters`, `set_room_size`, `set_damping`, and `set_mix` are never used [INFO] [stdout] --> src/effects/reverb.rs:73:8 [INFO] [stdout] | [INFO] [stdout] 25 | impl ReverbEffect { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 73 | fn process_comb_filters(&mut self, input: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | fn process_allpass_filters(&mut self, mut input: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | pub fn set_room_size(&mut self, room_size: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn set_damping(&mut self, damping: f32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn set_mix(&mut self, mix: f32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/effects/flanger.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct FlangerEffect { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 12 | lfo_rate: f32, // LFO frequency in Hz [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | delay_base: f32, // Base delay time in samples [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 16 | delay_range: f32, // Modulation range in samples [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 17 | depth: f32, // Effect depth (0.0 - 1.0) [INFO] [stdout] | ^^^^^ [INFO] [stdout] 18 | feedback: f32, // Feedback amount (0.0 - 0.99) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 19 | mix: f32, // Dry/wet mix (0.0 - 1.0) [INFO] [stdout] | ^^^ [INFO] [stdout] 20 | [INFO] [stdout] 21 | sample_rate: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FlangerEffect` 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: methods `lerp`, `get_delayed_sample`, `set_lfo_rate`, `set_depth`, `set_feedback`, and `set_mix` are never used [INFO] [stdout] --> src/effects/flanger.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 24 | impl FlangerEffect { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | fn lerp(&self, a: f32, b: f32, t: f32) -> f32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | fn get_delayed_sample(&self, delay_samples: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn set_lfo_rate(&mut self, rate: f32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn set_depth(&mut self, depth: f32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | pub fn set_feedback(&mut self, feedback: f32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn set_mix(&mut self, mix: f32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `sample_rate` is never read [INFO] [stdout] --> src/audio/mixer.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct MultiTrackMixer { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 15 | sample_rate: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `play_multi_track_sequence`, `play_track_at_time`, and `apply_master_effects` are never used [INFO] [stdout] --> src/audio/mixer.rs:106:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl MultiTrackMixer { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn play_multi_track_sequence( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | fn play_track_at_time(&self, track: &Track, sink: &mut Sink, playback_time: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn apply_master_effects(&self, _master_track: &MasterTrack, sample: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_pan` is never used [INFO] [stdout] --> src/audio/mixer.rs:143:8 [INFO] [stdout] | [INFO] [stdout] 143 | pub fn apply_pan(sample: f32, pan: f32) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 28s [INFO] running `Command { std: "docker" "inspect" "1e2ea6ee4cbde27365a395930567df10a34bea2f0c51b6febb6df3acc56f5b1c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1e2ea6ee4cbde27365a395930567df10a34bea2f0c51b6febb6df3acc56f5b1c", kill_on_drop: false }` [INFO] [stdout] 1e2ea6ee4cbde27365a395930567df10a34bea2f0c51b6febb6df3acc56f5b1c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0b7e21a96311b298c4462bd4a9809c14b6a0cfe279199161d0b35e108055636f [INFO] running `Command { std: "docker" "start" "-a" "0b7e21a96311b298c4462bd4a9809c14b6a0cfe279199161d0b35e108055636f", kill_on_drop: false }` [INFO] [stderr] Compiling synthesizer v0.5.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `EffectWrapper` [INFO] [stdout] --> src/state/utils.rs:6:22 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::effects::{EffectWrapper, AudioEffect, DelayEffect, ReverbEffect, FlangerEffect}; [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: `draw_control_buttons` [INFO] [stdout] --> src/state/utils.rs:9:47 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::graphics::draw::{draw_adsr_faders, draw_control_buttons, draw_display_sprite_single, draw_idle_key_sprites, draw_idle_tangent_... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::adsr_envelope::ADSREnvelope` [INFO] [stdout] --> src/state/utils.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::waveforms::adsr_envelope::ADSREnvelope; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::sawtooth_wave::SawtoothWave` [INFO] [stdout] --> src/state/utils.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::waveforms::sawtooth_wave::SawtoothWave; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::sine_wave::SineWave` [INFO] [stdout] --> src/state/utils.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::waveforms::sine_wave::SineWave; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::square_wave::SquareWave` [INFO] [stdout] --> src/state/utils.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::waveforms::square_wave::SquareWave; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::triangle_wave::TriangleWave` [INFO] [stdout] --> src/state/utils.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::waveforms::triangle_wave::TriangleWave; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AMPLITUDE` and `Waveform` [INFO] [stdout] --> src/state/utils.rs:18:24 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::waveforms::{Waveform, AMPLITUDE}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyRepeat` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:1:19 [INFO] [stdout] | [INFO] [stdout] 1 | use minifb::{Key, KeyRepeat, Window}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Source` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:2:19 [INFO] [stdout] | [INFO] [stdout] 2 | use rodio::{Sink, Source}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::music_theory::note::Note` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::music_theory::note::Note; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::adsr_envelope::ADSREnvelope` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::waveforms::adsr_envelope::ADSREnvelope; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::sine_wave::SineWave` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::waveforms::sine_wave::SineWave; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::square_wave::SquareWave` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::waveforms::square_wave::SquareWave; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::triangle_wave::TriangleWave` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::waveforms::triangle_wave::TriangleWave; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AMPLITUDE` and `Waveform` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:10:24 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::waveforms::{Waveform, AMPLITUDE}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::waveforms::sawtooth_wave::SawtoothWave` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::waveforms::sawtooth_wave::SawtoothWave; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `OCTAVE_LOWER_BOUND` and `OCTAVE_UPPER_BOUND` [INFO] [stdout] --> src/input/commands/octave_adjust.rs:4:27 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::music_theory::{OCTAVE_LOWER_BOUND, OCTAVE_UPPER_BOUND}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `handle_musical_note` [INFO] [stdout] --> src/input/commands/recording_control.rs:4:27 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::state::utils::{handle_musical_note}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Key` [INFO] [stdout] --> src/input/commands/track_control.rs:1:14 [INFO] [stdout] | [INFO] [stdout] 1 | use minifb::{Key, Window}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/audio/mixer.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RecordedNote` [INFO] [stdout] --> src/audio/mixer.rs:3:47 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::state::{State, Track, MasterTrack, RecordedNote}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::effects::AudioEffect` [INFO] [stdout] --> src/audio/mixer.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::effects::AudioEffect; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sink` [INFO] [stdout] --> src/state/updaters/audio_updater.rs:13:45 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn update(&self, state: &mut State, sink: &mut Sink) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sink` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/state/updaters/audio_updater.rs:33:40 [INFO] [stdout] | [INFO] [stdout] 33 | fn update_frequency_display(&self, state: &mut State) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/state/updaters/recording_updater.rs:41:38 [INFO] [stdout] | [INFO] [stdout] 41 | fn handle_playback_timing(&self, state: &mut State) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sprites` [INFO] [stdout] --> src/graphics/draw.rs:186:40 [INFO] [stdout] | [INFO] [stdout] 186 | pub fn draw_adsr_faders(state: &State, sprites: &Sprites, window_buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sprites` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `window` [INFO] [stdout] --> src/input/commands/keyboard_input.rs:26:42 [INFO] [stdout] | [INFO] [stdout] 26 | fn execute(&self, state: &mut State, window: &mut Window, sink: &mut Sink) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_window` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sink` [INFO] [stdout] --> src/input/commands/mouse_input.rs:77:51 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn handle_adsr_fader_mouse(state: &mut State, sink: &mut Sink) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sink` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sink` [INFO] [stdout] --> src/input/commands/mouse_input.rs:362:56 [INFO] [stdout] | [INFO] [stdout] 362 | pub fn handle_effects_buttons_mouse(state: &mut State, sink: &mut Sink) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sink` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `track_width` [INFO] [stdout] --> src/input/commands/mouse_input.rs:423:9 [INFO] [stdout] | [INFO] [stdout] 423 | let track_width = 350; // Updated width for transport controls [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 423 | let _track_width = 350; // Updated width for transport controls [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `OCTAVE_LOWER_BOUND` [INFO] [stdout] | [INFO] [stdout] 423 - let track_width = 350; // Updated width for transport controls [INFO] [stdout] 423 + let music_theory::OCTAVE_LOWER_BOUND = 350; // Updated width for transport controls [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sink` [INFO] [stdout] --> src/input/commands/waveform_toggle.rs:10:63 [INFO] [stdout] | [INFO] [stdout] 10 | fn execute(&self, state: &mut State, window: &mut Window, sink: &mut Sink) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sink` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sink` [INFO] [stdout] --> src/input/commands/octave_adjust.rs:19:63 [INFO] [stdout] | [INFO] [stdout] 19 | fn execute(&self, state: &mut State, window: &mut Window, sink: &mut Sink) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sink` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sink` [INFO] [stdout] --> src/input/commands/adsr_control.rs:39:63 [INFO] [stdout] | [INFO] [stdout] 39 | fn execute(&self, state: &mut State, window: &mut Window, sink: &mut Sink) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sink` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sink` [INFO] [stdout] --> src/input/commands/effects_toggle.rs:34:63 [INFO] [stdout] | [INFO] [stdout] 34 | fn execute(&self, state: &mut State, window: &mut Window, sink: &mut Sink) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_sink` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `track` [INFO] [stdout] --> src/input/commands/track_control.rs:49:21 [INFO] [stdout] | [INFO] [stdout] 49 | let track = &state.tracks[current_track_id]; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_track` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `track` [INFO] [stdout] --> src/input/commands/track_control.rs:55:21 [INFO] [stdout] | [INFO] [stdout] 55 | let track = &state.tracks[current_track_id]; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_track` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DURATION` is never used [INFO] [stdout] --> src/waveforms/mod.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub const DURATION: f32 = 0.19; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `release` is never used [INFO] [stdout] --> src/waveforms/adsr_envelope.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 20 | / impl ADSREnvelope [INFO] [stdout] 21 | | where [INFO] [stdout] 22 | | S: Source, [INFO] [stdout] | |__________________________- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn release(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/state/mod.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 62 | pub struct MasterTrack { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 63 | pub volume: f32, // Master volume 0.0 - 1.0 [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 64 | pub delay_enabled: bool, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 65 | pub reverb_enabled: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 66 | pub flanger_enabled: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 67 | pub delay_effect: DelayEffect, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 68 | pub reverb_effect: ReverbEffect, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 69 | pub flanger_effect: FlangerEffect, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MasterTrack` 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 `note`, `octave`, `x`, and `y` are never read [INFO] [stdout] --> src/state/mod.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct VisualNote { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 97 | pub note: Note, [INFO] [stdout] | ^^^^ [INFO] [stdout] 98 | pub octave: i32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub x: f32, [INFO] [stdout] | ^ [INFO] [stdout] 102 | pub y: f32, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `VisualNote` 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 `master_track`, `filter_factor`, `lpf_active`, `delay_effect`, `reverb_effect`, and `flanger_effect` are never read [INFO] [stdout] --> src/state/mod.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 142 | pub struct State { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 145 | pub master_track: MasterTrack, // Master mix bus [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub(crate) filter_factor: f32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 154 | pub(crate) lpf_active: usize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | pub delay_effect: DelayEffect, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 184 | pub reverb_effect: ReverbEffect, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 185 | pub flanger_effect: FlangerEffect, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/state/mod.rs:244:12 [INFO] [stdout] | [INFO] [stdout] 189 | impl State { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 244 | pub fn apply_lpf(&mut self, sample: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 249 | pub fn increase_octave(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub fn decrease_octave(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | pub fn toggle_lpf(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 269 | pub fn increase_filter_cutoff(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 276 | pub fn decrease_filter_cutoff(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 283 | pub fn get_current_octave(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | pub fn toggle_waveform(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 310 | pub fn increase_attack(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 314 | pub fn decrease_attack(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 318 | pub fn increase_decay(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | pub fn decrease_decay(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 326 | pub fn increase_sustain(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 330 | pub fn decrease_sustain(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 334 | pub fn increase_release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 338 | pub fn decrease_release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 343 | pub fn attack_normalized(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | pub fn decay_normalized(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 351 | pub fn sustain_normalized(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 360 | pub fn start_recording(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 387 | pub fn start_playback(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 399 | pub fn add_visual_note(&mut self, note: Note, octave: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 435 | pub fn calculate_adsr_amplitude(&self, time_since_start: f32, is_key_pressed: bool, time_since_release: Option) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 488 | pub fn current_track_mut(&mut self) -> &mut Track { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 493 | pub fn toggle_current_track_playback(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EffectsProcessor` is never constructed [INFO] [stdout] --> src/state/utils.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | struct EffectsProcessor> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/state/utils.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 31 | impl> EffectsProcessor { [INFO] [stdout] | ----------------------------------------------- associated function in this implementation [INFO] [stdout] 32 | fn new(source: S, state: &State) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `numbers`, `knob`, `display_sine`, `display_square`, `bulb`, and `adsr_fader` are never read [INFO] [stdout] --> src/graphics/sprites.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Sprites { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 16 | pub notes: Vec, [INFO] [stdout] 17 | pub numbers: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub knob: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 21 | pub rack: Vec, [INFO] [stdout] 22 | pub display_sine: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 23 | pub display_square: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 24 | pub octave_fader: Vec, [INFO] [stdout] 25 | pub bulb: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] 26 | pub adsr_fader: Vec, // ADSR fader sprites (10 positions for fine control) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_display_sprite` is never used [INFO] [stdout] --> src/graphics/draw.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn draw_display_sprite(sprite: &Vec, buffer: &mut [u32], display_index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_bulb_sprite` is never used [INFO] [stdout] --> src/graphics/draw.rs:80:8 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn draw_bulb_sprite(state: &State, sprites: &Sprites, window_buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_filter_cutoff_knob_sprite` is never used [INFO] [stdout] --> src/graphics/draw.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn draw_filter_cutoff_knob_sprite(state: &State, sprites: &Sprites, window_buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_idle_knob_sprite` is never used [INFO] [stdout] --> src/graphics/draw.rs:117:8 [INFO] [stdout] | [INFO] [stdout] 117 | pub fn draw_idle_knob_sprite(sprites: &Sprites, window_buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_number_value` is never used [INFO] [stdout] --> src/graphics/draw.rs:263:4 [INFO] [stdout] | [INFO] [stdout] 263 | fn draw_number_value(x: usize, y: usize, value: u8, sprites: &Sprites, buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_control_buttons` is never used [INFO] [stdout] --> src/graphics/draw.rs:284:8 [INFO] [stdout] | [INFO] [stdout] 284 | pub fn draw_control_buttons(state: &State, buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_button` is never used [INFO] [stdout] --> src/graphics/draw.rs:332:4 [INFO] [stdout] | [INFO] [stdout] 332 | fn draw_button(x: usize, y: usize, width: usize, height: usize, color: u32, text: &str, buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_simple_text` is never used [INFO] [stdout] --> src/graphics/draw.rs:358:4 [INFO] [stdout] | [INFO] [stdout] 358 | fn draw_simple_text(x: usize, y: usize, text: &str, color: u32, buffer: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_control_buttons_mouse` is never used [INFO] [stdout] --> src/input/commands/mouse_input.rs:300:8 [INFO] [stdout] | [INFO] [stdout] 300 | pub fn handle_control_buttons_mouse(state: &mut State, sink: &mut Sink) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SwitchToTrack` is never constructed [INFO] [stdout] --> src/input/commands/track_control.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum TrackAction { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] 13 | SwitchToTrack(usize), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TrackAction` 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: methods `process_sample` and `name` are never used [INFO] [stdout] --> src/effects/mod.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub trait AudioEffect: Send + Sync { [INFO] [stdout] | ----------- methods in this trait [INFO] [stdout] 14 | /// Process a single audio sample [INFO] [stdout] 15 | fn process_sample(&mut self, input: f32) -> f32; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | fn name(&self) -> &str; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EffectWrapper` is never constructed [INFO] [stdout] --> src/effects/mod.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct EffectWrapper [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/effects/mod.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 34 | / impl EffectWrapper [INFO] [stdout] 35 | | where [INFO] [stdout] 36 | | S: Source, [INFO] [stdout] 37 | | E: AudioEffect, [INFO] [stdout] | |___________________- associated function in this implementation [INFO] [stdout] 38 | { [INFO] [stdout] 39 | pub fn new(source: S, effect: E) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EffectChain` is never constructed [INFO] [stdout] --> src/effects/mod.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 79 | pub struct EffectChain { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_effect`, `process_sample`, and `reset` are never used [INFO] [stdout] --> src/effects/mod.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 83 | impl EffectChain { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 84 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn add_effect(&mut self, effect: Box) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn process_sample(&mut self, mut input: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/effects/delay.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct DelayEffect { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 8 | delay_samples: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 9 | feedback: f32, // Amount of delayed signal fed back (0.0 - 0.99) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 10 | mix: f32, // Dry/wet mix (0.0 = dry only, 1.0 = wet only) [INFO] [stdout] | ^^^ [INFO] [stdout] 11 | sample_rate: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 12 | // Multiple delay taps for richer sound [INFO] [stdout] 13 | tap1_samples: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 14 | tap2_samples: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | damping_coefficient: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DelayEffect` 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: methods `set_delay_time`, `set_feedback`, `set_mix`, and `read_tap` are never used [INFO] [stdout] --> src/effects/delay.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl DelayEffect { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn set_delay_time(&mut self, delay_time_ms: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn set_feedback(&mut self, feedback: f32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn set_mix(&mut self, mix: f32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | fn read_tap(&self, tap_samples: usize) -> f32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `comb_feedback`, `allpass_feedback`, `room_size`, `damping`, and `mix` are never read [INFO] [stdout] --> src/effects/reverb.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct ReverbEffect { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 9 | comb_feedback: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | allpass_feedback: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | room_size: f32, // 0.0 - 1.0 [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 18 | damping: f32, // 0.0 - 1.0 [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 19 | mix: f32, // 0.0 - 1.0 [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReverbEffect` 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: methods `process_comb_filters`, `process_allpass_filters`, `set_room_size`, `set_damping`, and `set_mix` are never used [INFO] [stdout] --> src/effects/reverb.rs:73:8 [INFO] [stdout] | [INFO] [stdout] 25 | impl ReverbEffect { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 73 | fn process_comb_filters(&mut self, input: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | fn process_allpass_filters(&mut self, mut input: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | pub fn set_room_size(&mut self, room_size: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn set_damping(&mut self, damping: f32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn set_mix(&mut self, mix: f32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/effects/flanger.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct FlangerEffect { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 12 | lfo_rate: f32, // LFO frequency in Hz [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | delay_base: f32, // Base delay time in samples [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 16 | delay_range: f32, // Modulation range in samples [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 17 | depth: f32, // Effect depth (0.0 - 1.0) [INFO] [stdout] | ^^^^^ [INFO] [stdout] 18 | feedback: f32, // Feedback amount (0.0 - 0.99) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 19 | mix: f32, // Dry/wet mix (0.0 - 1.0) [INFO] [stdout] | ^^^ [INFO] [stdout] 20 | [INFO] [stdout] 21 | sample_rate: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FlangerEffect` 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: methods `lerp`, `get_delayed_sample`, `set_lfo_rate`, `set_depth`, `set_feedback`, and `set_mix` are never used [INFO] [stdout] --> src/effects/flanger.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 24 | impl FlangerEffect { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | fn lerp(&self, a: f32, b: f32, t: f32) -> f32 { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | fn get_delayed_sample(&self, delay_samples: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn set_lfo_rate(&mut self, rate: f32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn set_depth(&mut self, depth: f32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | pub fn set_feedback(&mut self, feedback: f32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn set_mix(&mut self, mix: f32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `sample_rate` is never read [INFO] [stdout] --> src/audio/mixer.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct MultiTrackMixer { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 15 | sample_rate: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `play_multi_track_sequence`, `play_track_at_time`, and `apply_master_effects` are never used [INFO] [stdout] --> src/audio/mixer.rs:106:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl MultiTrackMixer { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn play_multi_track_sequence( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | fn play_track_at_time(&self, track: &Track, sink: &mut Sink, playback_time: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn apply_master_effects(&self, _master_track: &MasterTrack, sample: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_pan` is never used [INFO] [stdout] --> src/audio/mixer.rs:143:8 [INFO] [stdout] | [INFO] [stdout] 143 | pub fn apply_pan(sample: f32, pan: f32) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.35s [INFO] running `Command { std: "docker" "inspect" "0b7e21a96311b298c4462bd4a9809c14b6a0cfe279199161d0b35e108055636f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0b7e21a96311b298c4462bd4a9809c14b6a0cfe279199161d0b35e108055636f", kill_on_drop: false }` [INFO] [stdout] 0b7e21a96311b298c4462bd4a9809c14b6a0cfe279199161d0b35e108055636f