[INFO] cloning repository https://github.com/JesstLe/music
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JesstLe/music" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJesstLe%2Fmusic", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJesstLe%2Fmusic'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c969394b5a159798edc6589a504ca312287a4b34
[INFO] checking JesstLe/music against 1ed2df61a19042f231709eb05d032ae9e2cb2084 for pr-160235
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJesstLe%2Fmusic" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/JesstLe/music
[INFO] finished tweaking git repo https://github.com/JesstLe/music
[INFO] tweaked toml for git repo https://github.com/JesstLe/music written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/JesstLe/music on toolchain 1ed2df61a19042f231709eb05d032ae9e2cb2084
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1ed2df61a19042f231709eb05d032ae9e2cb2084" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/JesstLe/music 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" "+1ed2df61a19042f231709eb05d032ae9e2cb2084" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded enigo v0.3.0
[INFO] [stderr]   Downloaded egui_extras v0.31.1
[INFO] [stderr]   Downloaded pitch-detection v0.3.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7036938c8390a84572acca2e8e4a915d1119a7adbb2e56f3003c181b35872f27
[INFO] running `Command { std: "docker" "start" "7036938c8390a84572acca2e8e4a915d1119a7adbb2e56f3003c181b35872f27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7036938c8390a84572acca2e8e4a915d1119a7adbb2e56f3003c181b35872f27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7036938c8390a84572acca2e8e4a915d1119a7adbb2e56f3003c181b35872f27" "/opt/rustwide/cargo-home/bin/cargo" "+1ed2df61a19042f231709eb05d032ae9e2cb2084" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7036938c8390a84572acca2e8e4a915d1119a7adbb2e56f3003c181b35872f27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7036938c8390a84572acca2e8e4a915d1119a7adbb2e56f3003c181b35872f27" "/opt/rustwide/cargo-home/bin/cargo" "+1ed2df61a19042f231709eb05d032ae9e2cb2084" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling zerocopy v0.8.50
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr]    Compiling toml_edit v0.25.12+spec-1.1.0
[INFO] [stderr]     Checking wayland-sys v0.31.11
[INFO] [stderr]    Compiling wayland-backend v0.3.15
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking async-executor v1.14.0
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]     Checking memmap2 v0.9.10
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking xdg-home v1.3.0
[INFO] [stderr]    Compiling log v0.4.32
[INFO] [stderr]     Checking accesskit v0.17.1
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling winit v0.30.13
[INFO] [stderr]     Checking immutable-chunkmap v2.1.2
[INFO] [stderr]     Checking profiling v1.0.18
[INFO] [stderr]     Checking epaint_default_fonts v0.31.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking dpi v0.1.2
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking async-lock v3.4.2
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]    Compiling smithay-client-toolkit v0.20.0
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling quick-xml v0.39.4
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling glutin v0.32.3
[INFO] [stderr]    Compiling glutin_egl_sys v0.7.1
[INFO] [stderr]     Checking accesskit_consumer v0.26.0
[INFO] [stderr]    Compiling glutin_glx_sys v0.6.1
[INFO] [stderr]    Compiling mime_guess2 v2.3.1
[INFO] [stderr]     Checking async-fs v2.2.0
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling glutin-winit v0.5.0
[INFO] [stderr]     Checking uuid v1.23.2
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]     Checking transpose v0.2.3
[INFO] [stderr]     Checking ogg v0.8.0
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking primal-check v0.3.4
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]    Compiling rfd v0.15.4
[INFO] [stderr]     Checking glow v0.16.0
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking anstream v1.0.0
[INFO] [stderr]     Checking rustfft v6.4.1
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]     Checking xkbcommon v0.8.0
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]     Checking jiff v0.2.28
[INFO] [stderr]     Checking enigo v0.3.0
[INFO] [stderr]     Checking serde_json v1.0.150
[INFO] [stderr]    Compiling wayland-scanner v0.31.10
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking pitch-detection v0.3.0
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking midly v0.5.3
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking async-io v2.6.0
[INFO] [stderr]     Checking async-signal v0.2.14
[INFO] [stderr]     Checking async-net v2.0.0
[INFO] [stderr]     Checking env_filter v1.0.1
[INFO] [stderr]     Checking async-process v2.5.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zvariant_utils v2.1.0
[INFO] [stderr]     Checking env_logger v0.11.10
[INFO] [stderr]     Checking wayland-client v0.31.14
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zvariant_derive v4.2.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling zbus_macros v4.4.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]    Compiling enum-map-derive v0.17.0
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking wayland-protocols v0.32.12
[INFO] [stderr]     Checking wayland-cursor v0.31.14
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.4
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]     Checking calloop v0.14.4
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking symphonia-core v0.5.5
[INFO] [stderr]     Checking emath v0.31.1
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking ecolor v0.31.1
[INFO] [stderr]     Checking calloop-wayland-source v0.4.1
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking epaint v0.31.1
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking symphonia-metadata v0.5.5
[INFO] [stderr]     Checking symphonia-codec-adpcm v0.5.5
[INFO] [stderr]     Checking symphonia-codec-pcm v0.5.5
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking symphonia-utils-xiph v0.5.5
[INFO] [stderr]     Checking symphonia-format-riff v0.5.5
[INFO] [stderr]     Checking symphonia-bundle-mp3 v0.5.5
[INFO] [stderr]     Checking egui v0.31.1
[INFO] [stderr]     Checking symphonia-format-mkv v0.5.5
[INFO] [stderr]     Checking symphonia-format-ogg v0.5.5
[INFO] [stderr]     Checking symphonia-bundle-flac v0.5.5
[INFO] [stderr]     Checking symphonia-codec-vorbis v0.5.5
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]     Checking quick-xml v0.30.0
[INFO] [stderr]     Checking zvariant_utils v3.4.0
[INFO] [stderr]     Checking enum-map v2.7.3
[INFO] [stderr]     Checking zvariant v4.2.0
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking symphonia v0.5.5
[INFO] [stderr]     Checking rodio v0.20.1
[INFO] [stderr]     Checking arboard v3.6.1
[INFO] [stderr]    Compiling zvariant_derive v5.12.0
[INFO] [stderr]    Compiling zvariant v5.12.0
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking zbus_names v3.0.0
[INFO] [stderr]     Checking webbrowser v1.2.1
[INFO] [stderr]     Checking zbus_xml v4.0.0
[INFO] [stderr]     Checking zbus v4.4.0
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.12
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.12
[INFO] [stderr]     Checking wayland-protocols-misc v0.3.12
[INFO] [stderr]     Checking wayland-protocols-experimental v20250721.0.1
[INFO] [stderr]     Checking egui_glow v0.31.1
[INFO] [stderr]     Checking egui_extras v0.31.1
[INFO] [stderr]     Checking zbus-lockstep v0.4.4
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]    Compiling zbus_names v4.3.2
[INFO] [stderr]    Compiling zbus-lockstep-macros v0.4.4
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]    Compiling zbus_macros v5.16.0
[INFO] [stderr]     Checking smithay-clipboard v0.7.3
[INFO] [stderr]     Checking zbus v5.16.0
[INFO] [stderr]     Checking atspi-common v0.6.0
[INFO] [stderr]     Checking atspi-proxies v0.6.0
[INFO] [stderr]     Checking accesskit_atspi_common v0.10.1
[INFO] [stderr]     Checking ashpd v0.11.1
[INFO] [stderr]     Checking atspi-connection v0.6.0
[INFO] [stderr]     Checking atspi v0.22.0
[INFO] [stderr]     Checking accesskit_unix v0.13.1
[INFO] [stderr]     Checking accesskit_winit v0.23.1
[INFO] [stderr]     Checking egui-winit v0.31.1
[INFO] [stderr]     Checking eframe v0.31.1
[INFO] [stderr]     Checking keysheet-studio v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `InstrumentMapper`, `KeyLayout`, `KeyMapping`, and `TechniqueKey`
[INFO] [stdout]  --> src/engine/instruments/profile.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Instrument, InstrumentMapper, KeyMapping, KeyLayout, TechniqueKey};
[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: `crate::engine::Note`
[INFO] [stdout]   --> src/engine/instruments/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::engine::Note;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `InstrumentMapper`, `KeyLayout`, `KeyMapping`, and `TechniqueKey`
[INFO] [stdout]  --> src/engine/instruments/profile.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::{Instrument, InstrumentMapper, KeyMapping, KeyLayout, TechniqueKey};
[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: `crate::engine::Note`
[INFO] [stdout]   --> src/engine/instruments/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::engine::Note;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::engine::instruments::Instrument`
[INFO] [stdout]  --> src/engine/scheduler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::engine::instruments::Instrument;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/engine/scheduler.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::key_sim::{self, KeySimulator, Hand as SimHand};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::engine::instruments::Instrument`
[INFO] [stdout]  --> src/engine/scheduler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::engine::instruments::Instrument;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/engine/scheduler.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::key_sim::{self, KeySimulator, Hand as SimHand};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]  --> src/audit.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chrono::{DateTime, Local};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]  --> src/audit.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chrono::{DateTime, Local};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/ui/waterfall_view.rs:97:35
[INFO] [stdout]    |
[INFO] [stdout] 97 |                 egui::Stroke::new(2.0, theme::PLAYHEAD),
[INFO] [stdout]    |                                   ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/ui/keyboard_view.rs:36:79
[INFO] [stdout]    |
[INFO] [stdout] 36 | ...   ui.painter().rect_stroke(rect, 4.0, egui::Stroke::new(1.0, egui::Color32::from_rgb(80, 80, 90)), egui::StrokeKind::Outside);
[INFO] [stdout]    |                                                             ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/ui/waterfall_view.rs:97:35
[INFO] [stdout]    |
[INFO] [stdout] 97 |                 egui::Stroke::new(2.0, theme::PLAYHEAD),
[INFO] [stdout]    |                                   ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/ui/keyboard_view.rs:36:79
[INFO] [stdout]    |
[INFO] [stdout] 36 | ...   ui.painter().rect_stroke(rect, 4.0, egui::Stroke::new(1.0, egui::Color32::from_rgb(80, 80, 90)), egui::StrokeKind::Outside);
[INFO] [stdout]    |                                                             ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `InstrumentMapper`
[INFO] [stdout]  --> src/engine/instruments/mapper.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::{Instrument, InstrumentMapper};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hand`
[INFO] [stdout]   --> src/engine/instruments/jianggu.rs:30:25
[INFO] [stdout]    |
[INFO] [stdout] 30 |             .map(|(key, hand, label, tech)| {
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_hand`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `InstrumentMapper`
[INFO] [stdout]  --> src/engine/instruments/mapper.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::{Instrument, InstrumentMapper};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hand`
[INFO] [stdout]   --> src/engine/instruments/jianggu.rs:30:25
[INFO] [stdout]    |
[INFO] [stdout] 30 |             .map(|(key, hand, label, tech)| {
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_hand`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mapper`
[INFO] [stdout]   --> src/ui/settings_panel.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |             let mapper = state.selected_instrument.mapper();
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mapper`
[INFO] [stdout]   --> src/ui/settings_panel.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |             let mapper = state.selected_instrument.mapper();
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `volume` is never read
[INFO] [stdout]   --> src/app.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct PlaybackState {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub volume: f32,
[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 `instrument` is never used
[INFO] [stdout]   --> src/engine/instruments/mod.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub trait InstrumentMapper: Send + Sync {
[INFO] [stdout]    |           ---------------- method in this trait
[INFO] [stdout] 81 |     fn instrument(&self) -> Instrument;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `label` is never read
[INFO] [stdout]   --> src/engine/instruments/mod.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct KeyMapping {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub label: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `KeyMapping` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `technique` is never read
[INFO] [stdout]   --> src/engine/instruments/mod.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub struct TechniqueKey {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 96 |     pub key: String,
[INFO] [stdout] 97 |     pub technique: crate::engine::Technique,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TechniqueKey` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `key` is never read
[INFO] [stdout]    --> src/engine/instruments/mod.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct KeyInfo {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 115 |     pub key: String,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `KeyInfo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `midi_to_note_name` is never used
[INFO] [stdout]    --> src/engine/instruments/mod.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn midi_to_note_name(midi: u8) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `instrument` and `display_name` are never read
[INFO] [stdout]  --> src/engine/instruments/profile.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct InstrumentProfile {
[INFO] [stdout]   |            ----------------- fields in this struct
[INFO] [stdout] 4 |     pub instrument: Instrument,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 5 |     pub display_name: String,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_notes` is never used
[INFO] [stdout]  --> src/engine/instruments/mapper.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn map_notes(instrument: &Instrument, midi_notes: &[(u8, u64, u32)]) -> Vec<Note> {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `channels` is never read
[INFO] [stdout]  --> src/engine/audio_decode.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct AudioData {
[INFO] [stdout]   |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     pub channels: u16,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AudioData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `start_sample` is never read
[INFO] [stdout]  --> src/engine/pitch_detect.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct DetectedPitch {
[INFO] [stdout]   |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub start_sample: usize,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DetectedPitch` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `beats` is never read
[INFO] [stdout]  --> src/engine/beat_detect.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct BeatInfo {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 3 |     pub bpm: f32,
[INFO] [stdout] 4 |     pub beats: Vec<Beat>,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `BeatInfo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `position_ms` and `strength` are never read
[INFO] [stdout]   --> src/engine/beat_detect.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Beat {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout]  9 |     pub position_ms: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 10 |     pub strength: f32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Beat` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_multi_track` is never used
[INFO] [stdout]   --> src/engine/score_gen.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn generate_multi_track(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `finger` is never read
[INFO] [stdout]   --> src/engine/scheduler.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct ActiveNote {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     finger: u8,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_track` is never used
[INFO] [stdout]   --> src/engine/scheduler.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Scheduler {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn set_track(&mut self, track: usize) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PERCUSSIVE` is never used
[INFO] [stdout]   --> src/ui/theme.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const PERCUSSIVE: Color32 = Color32::from_rgb(230, 160, 100);
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimulatedNote` is never constructed
[INFO] [stdout]   --> src/key_sim.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct SimulatedNote {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/key_sim.rs:53:19
[INFO] [stdout]    |
[INFO] [stdout] 53 |     KeyNotAllowed(String),
[INFO] [stdout]    |     ------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SimError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 53 -     KeyNotAllowed(String),
[INFO] [stdout] 53 +     KeyNotAllowed(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]   --> src/key_sim.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct AuditEntry {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 59 |     pub timestamp: Instant,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AuditEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_valid` is never used
[INFO] [stdout]   --> src/auth.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl AuthState {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn is_valid(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuditEntry` is never constructed
[INFO] [stdout]  --> src/audit.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct AuditEntry {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AuditEvent` is never used
[INFO] [stdout]   --> src/audit.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum AuditEvent {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuditLog` is never constructed
[INFO] [stdout]   --> src/audit.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct AuditLog {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `log`, `entries`, and `clear` are never used
[INFO] [stdout]   --> src/audit.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl AuditLog {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 26 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn log(&mut self, event: AuditEvent, detail: String) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn entries(&self) -> &[AuditEntry] {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `volume` is never read
[INFO] [stdout]   --> src/app.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct PlaybackState {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub volume: f32,
[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 `instrument` is never used
[INFO] [stdout]   --> src/engine/instruments/mod.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub trait InstrumentMapper: Send + Sync {
[INFO] [stdout]    |           ---------------- method in this trait
[INFO] [stdout] 81 |     fn instrument(&self) -> Instrument;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `label` is never read
[INFO] [stdout]   --> src/engine/instruments/mod.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct KeyMapping {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub label: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `KeyMapping` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `technique` is never read
[INFO] [stdout]   --> src/engine/instruments/mod.rs:97:9
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub struct TechniqueKey {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 96 |     pub key: String,
[INFO] [stdout] 97 |     pub technique: crate::engine::Technique,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TechniqueKey` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `key` is never read
[INFO] [stdout]    --> src/engine/instruments/mod.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct KeyInfo {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 115 |     pub key: String,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `KeyInfo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `midi_to_note_name` is never used
[INFO] [stdout]    --> src/engine/instruments/mod.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn midi_to_note_name(midi: u8) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `instrument` and `display_name` are never read
[INFO] [stdout]  --> src/engine/instruments/profile.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct InstrumentProfile {
[INFO] [stdout]   |            ----------------- fields in this struct
[INFO] [stdout] 4 |     pub instrument: Instrument,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 5 |     pub display_name: String,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `map_notes` is never used
[INFO] [stdout]  --> src/engine/instruments/mapper.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn map_notes(instrument: &Instrument, midi_notes: &[(u8, u64, u32)]) -> Vec<Note> {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `channels` is never read
[INFO] [stdout]  --> src/engine/audio_decode.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct AudioData {
[INFO] [stdout]   |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     pub channels: u16,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AudioData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `start_sample` is never read
[INFO] [stdout]  --> src/engine/pitch_detect.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct DetectedPitch {
[INFO] [stdout]   |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub start_sample: usize,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DetectedPitch` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `midi_to_frequency` is never used
[INFO] [stdout]    --> src/engine/pitch_detect.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn midi_to_frequency(midi: f64) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `beats` is never read
[INFO] [stdout]  --> src/engine/beat_detect.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct BeatInfo {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 3 |     pub bpm: f32,
[INFO] [stdout] 4 |     pub beats: Vec<Beat>,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `BeatInfo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `position_ms` and `strength` are never read
[INFO] [stdout]   --> src/engine/beat_detect.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Beat {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout]  9 |     pub position_ms: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 10 |     pub strength: f32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Beat` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_multi_track` is never used
[INFO] [stdout]   --> src/engine/score_gen.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn generate_multi_track(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `finger` is never read
[INFO] [stdout]   --> src/engine/scheduler.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct ActiveNote {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     finger: u8,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_track` is never used
[INFO] [stdout]   --> src/engine/scheduler.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Scheduler {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn set_track(&mut self, track: usize) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PERCUSSIVE` is never used
[INFO] [stdout]   --> src/ui/theme.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const PERCUSSIVE: Color32 = Color32::from_rgb(230, 160, 100);
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimulatedNote` is never constructed
[INFO] [stdout]   --> src/key_sim.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct SimulatedNote {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/key_sim.rs:53:19
[INFO] [stdout]    |
[INFO] [stdout] 53 |     KeyNotAllowed(String),
[INFO] [stdout]    |     ------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SimError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 53 -     KeyNotAllowed(String),
[INFO] [stdout] 53 +     KeyNotAllowed(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]   --> src/key_sim.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct AuditEntry {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 59 |     pub timestamp: Instant,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AuditEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_valid` is never used
[INFO] [stdout]   --> src/auth.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl AuthState {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn is_valid(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuditEntry` is never constructed
[INFO] [stdout]  --> src/audit.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct AuditEntry {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AuditEvent` is never used
[INFO] [stdout]   --> src/audit.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum AuditEvent {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuditLog` is never constructed
[INFO] [stdout]   --> src/audit.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct AuditLog {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `log`, `entries`, and `clear` are never used
[INFO] [stdout]   --> src/audit.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl AuditLog {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 26 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn log(&mut self, event: AuditEvent, detail: String) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn entries(&self) -> &[AuditEntry] {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 40s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: glutin v0.32.3, glutin-winit v0.5.0, nix v0.29.0, winit v0.30.13
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5`
[INFO] running `Command { std: "docker" "inspect" "7036938c8390a84572acca2e8e4a915d1119a7adbb2e56f3003c181b35872f27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7036938c8390a84572acca2e8e4a915d1119a7adbb2e56f3003c181b35872f27", kill_on_drop: false }`
[INFO] [stdout] 7036938c8390a84572acca2e8e4a915d1119a7adbb2e56f3003c181b35872f27
