[INFO] cloning repository https://github.com/MrCHB1/AndromedaRust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/MrCHB1/AndromedaRust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMrCHB1%2FAndromedaRust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMrCHB1%2FAndromedaRust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 3b59b930cd7cfa1966ddcb2f6e54f9b980389613 [INFO] checking MrCHB1/AndromedaRust against try#e19b5cc0f024358aaaecf2776a5291fa5a95b623 for pr-147185-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMrCHB1%2FAndromedaRust" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/MrCHB1/AndromedaRust [INFO] finished tweaking git repo https://github.com/MrCHB1/AndromedaRust [INFO] tweaked toml for git repo https://github.com/MrCHB1/AndromedaRust written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/MrCHB1/AndromedaRust on toolchain e19b5cc0f024358aaaecf2776a5291fa5a95b623 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e19b5cc0f024358aaaecf2776a5291fa5a95b623" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/MrCHB1/AndromedaRust 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" "+e19b5cc0f024358aaaecf2776a5291fa5a95b623" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+e19b5cc0f024358aaaecf2776a5291fa5a95b623" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f2ed3da5c0110817b70231b4c7d41a41f39f0fdfa7e30e23048bd356fe418c32 [INFO] running `Command { std: "docker" "start" "-a" "f2ed3da5c0110817b70231b4c7d41a41f39f0fdfa7e30e23048bd356fe418c32", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f2ed3da5c0110817b70231b4c7d41a41f39f0fdfa7e30e23048bd356fe418c32", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f2ed3da5c0110817b70231b4c7d41a41f39f0fdfa7e30e23048bd356fe418c32", kill_on_drop: false }` [INFO] [stdout] f2ed3da5c0110817b70231b4c7d41a41f39f0fdfa7e30e23048bd356fe418c32 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+e19b5cc0f024358aaaecf2776a5291fa5a95b623" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] db781358e77a893ec79a03976a2a975f60cb9cb7f74b2d186f3f14b9a6880613 [INFO] running `Command { std: "docker" "start" "-a" "db781358e77a893ec79a03976a2a975f60cb9cb7f74b2d186f3f14b9a6880613", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.101 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Checking cfg-if v1.0.3 [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking bitflags v2.9.3 [INFO] [stderr] Checking once_cell v1.21.3 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Checking log v0.4.27 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling rustix v1.0.8 [INFO] [stderr] Checking linux-raw-sys v0.9.4 [INFO] [stderr] Checking stable_deref_trait v1.2.0 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Checking pin-project-lite v0.2.16 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling memchr v2.7.5 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling zerocopy v0.8.26 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling winnow v0.7.13 [INFO] [stderr] Checking litemap v0.8.0 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling indexmap v2.11.0 [INFO] [stderr] Compiling cfg_aliases v0.2.1 [INFO] [stderr] Checking writeable v0.6.1 [INFO] [stderr] Checking slab v0.4.11 [INFO] [stderr] Compiling icu_properties_data v2.0.1 [INFO] [stderr] Checking parking v2.2.1 [INFO] [stderr] Checking futures-core v0.3.31 [INFO] [stderr] Compiling icu_normalizer_data v2.0.0 [INFO] [stderr] Checking concurrent-queue v2.5.0 [INFO] [stderr] Checking libloading v0.8.8 [INFO] [stderr] Checking percent-encoding v2.3.2 [INFO] [stderr] Checking event-listener v5.4.1 [INFO] [stderr] Checking futures-io v0.3.31 [INFO] [stderr] Checking dlib v0.5.2 [INFO] [stderr] Compiling wayland-sys v0.31.7 [INFO] [stderr] Checking utf8_iter v1.0.4 [INFO] [stderr] Checking event-listener-strategy v0.5.4 [INFO] [stderr] Checking fastrand v2.3.0 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling cc v1.2.34 [INFO] [stderr] Checking form_urlencoded v1.2.2 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking futures-lite v2.6.1 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling memoffset v0.9.1 [INFO] [stderr] Checking scoped-tls v1.0.1 [INFO] [stderr] Checking endi v1.1.0 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Checking static_assertions v1.1.0 [INFO] [stderr] Checking atomic-waker v1.1.2 [INFO] [stderr] Checking async-task v4.7.1 [INFO] [stderr] Checking downcast-rs v1.2.1 [INFO] [stderr] Checking piper v0.2.4 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking async-lock v3.4.1 [INFO] [stderr] Checking async-channel v2.5.0 [INFO] [stderr] Compiling quick-xml v0.37.5 [INFO] [stderr] Checking tracing-core v0.1.34 [INFO] [stderr] Compiling wayland-client v0.31.11 [INFO] [stderr] Compiling wayland-backend v0.3.11 [INFO] [stderr] Checking blocking v1.6.2 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking cpufeatures v0.2.17 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling wayland-scanner v0.31.7 [INFO] [stderr] Checking futures-task v0.3.31 [INFO] [stderr] Checking futures-sink v0.3.31 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Checking ttf-parser v0.25.1 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking crossbeam-deque v0.8.6 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Compiling proc-macro-crate v3.3.0 [INFO] [stderr] Checking polling v3.10.0 [INFO] [stderr] Checking async-io v2.5.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zvariant_utils v2.1.0 [INFO] [stderr] Checking async-fs v2.1.3 [INFO] [stderr] Checking async-executor v1.13.2 [INFO] [stderr] Checking xdg-home v1.3.0 [INFO] [stderr] Checking async-broadcast v0.7.2 [INFO] [stderr] Checking ordered-stream v0.2.0 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Checking ab_glyph_rasterizer v0.1.10 [INFO] [stderr] Compiling khronos_api v3.1.0 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Checking simd-adler32 v0.3.7 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking owned_ttf_parser v0.25.1 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Checking ab_glyph v0.2.31 [INFO] [stderr] Compiling xml-rs v0.8.27 [INFO] [stderr] Compiling anyhow v1.0.100 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Checking accesskit v0.17.1 [INFO] [stderr] Checking wayland-protocols v0.32.9 [INFO] [stderr] Checking adler2 v2.0.1 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling enumflags2_derive v0.7.12 [INFO] [stderr] Compiling zvariant_derive v4.2.0 [INFO] [stderr] Compiling bytemuck_derive v1.10.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Checking zerovec v0.11.4 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking bytemuck v1.23.2 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling profiling-procmacros v1.0.17 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Compiling zbus_macros v4.4.0 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking profiling v1.0.17 [INFO] [stderr] Compiling equator-macro v0.4.2 [INFO] [stderr] Checking calloop v0.13.0 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Checking equator v0.4.2 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking aligned-vec v0.6.4 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Compiling smithay-client-toolkit v0.19.2 [INFO] [stderr] Checking xcursor v0.3.10 [INFO] [stderr] Compiling built v0.7.7 [INFO] [stderr] Checking xkeysym v0.2.1 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Checking minimal-lexical v0.2.1 [INFO] [stderr] Checking cursor-icon v1.2.0 [INFO] [stderr] Checking wayland-csd-frame v0.3.0 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Compiling rav1e v0.7.1 [INFO] [stderr] Checking wayland-protocols-wlr v0.3.9 [INFO] [stderr] Checking wayland-cursor v0.31.11 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking v_frame v0.3.9 [INFO] [stderr] Checking calloop-wayland-source v0.3.0 [INFO] [stderr] Checking emath v0.31.1 [INFO] [stderr] Checking rayon v1.11.0 [INFO] [stderr] Checking memmap2 v0.9.5 [INFO] [stderr] Checking strict-num v0.1.1 [INFO] [stderr] Checking quick-error v2.0.1 [INFO] [stderr] Checking arrayref v0.3.9 [INFO] [stderr] Checking flate2 v1.1.2 [INFO] [stderr] Checking url v2.5.7 [INFO] [stderr] Checking enumflags2 v0.7.12 [INFO] [stderr] Checking quick-xml v0.30.0 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Compiling zvariant v4.2.0 [INFO] [stderr] Checking av1-grain v0.2.4 [INFO] [stderr] Checking ecolor v0.31.1 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Compiling fax_derive v0.2.0 [INFO] [stderr] Checking itertools v0.12.1 [INFO] [stderr] Checking maybe-rayon v0.1.1 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Checking half v2.6.0 [INFO] [stderr] Checking raw-window-handle v0.6.2 [INFO] [stderr] Checking epaint_default_fonts v0.31.1 [INFO] [stderr] Checking x11rb-protocol v0.13.1 [INFO] [stderr] Checking imgref v1.12.0 [INFO] [stderr] Checking weezl v0.1.10 [INFO] [stderr] Checking foldhash v0.1.5 [INFO] [stderr] Checking nohash-hasher v0.2.0 [INFO] [stderr] Checking zune-core v0.4.12 [INFO] [stderr] Checking as-raw-xcb-connection v1.0.1 [INFO] [stderr] Compiling noop_proc_macro v0.3.0 [INFO] [stderr] Checking bitstream-io v2.6.0 [INFO] [stderr] Checking new_debug_unreachable v1.0.6 [INFO] [stderr] Checking zbus_names v3.0.0 [INFO] [stderr] Checking zune-jpeg v0.4.21 [INFO] [stderr] Checking epaint v0.31.1 [INFO] [stderr] Checking zbus v4.4.0 [INFO] [stderr] Checking zbus_xml v4.0.0 [INFO] [stderr] Checking loop9 v0.1.5 [INFO] [stderr] Checking fax v0.2.6 [INFO] [stderr] Checking tiny-skia v0.11.4 [INFO] [stderr] Checking zune-inflate v0.2.54 [INFO] [stderr] Checking zbus-lockstep v0.4.4 [INFO] [stderr] Checking fdeflate v0.3.7 [INFO] [stderr] Checking pxfm v0.1.24 [INFO] [stderr] Checking avif-serialize v0.8.6 [INFO] [stderr] Checking immutable-chunkmap v2.0.6 [INFO] [stderr] Compiling winit v0.30.12 [INFO] [stderr] Compiling zbus-lockstep-macros v0.4.4 [INFO] [stderr] Checking lebe v0.5.3 [INFO] [stderr] Checking color_quant v1.1.0 [INFO] [stderr] Compiling unicase v2.8.1 [INFO] [stderr] Compiling siphasher v1.0.1 [INFO] [stderr] Checking rgb v0.8.52 [INFO] [stderr] Checking byteorder-lite v0.1.0 [INFO] [stderr] Checking bit_field v0.10.3 [INFO] [stderr] Compiling phf_shared v0.11.3 [INFO] [stderr] Checking exr v1.73.0 [INFO] [stderr] Checking gif v0.13.3 [INFO] [stderr] Checking image-webp v0.2.4 [INFO] [stderr] Checking accesskit_consumer v0.26.0 [INFO] [stderr] Checking sctk-adwaita v0.10.1 [INFO] [stderr] Checking png v0.18.0 [INFO] [stderr] Checking tiff v0.10.3 [INFO] [stderr] Checking moxcms v0.7.5 [INFO] [stderr] Checking egui v0.31.1 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Checking wayland-protocols-plasma v0.3.9 [INFO] [stderr] Compiling glutin_egl_sys v0.7.1 [INFO] [stderr] Compiling glutin_glx_sys v0.6.1 [INFO] [stderr] Checking qoi v0.4.1 [INFO] [stderr] Checking dpi v0.1.2 [INFO] [stderr] Checking smol_str v0.2.2 [INFO] [stderr] Compiling phf v0.11.3 [INFO] [stderr] Compiling glutin v0.32.3 [INFO] [stderr] Checking atspi-common v0.6.0 [INFO] [stderr] Compiling alsa-sys v0.3.1 [INFO] [stderr] Compiling mime_guess2 v2.3.1 [INFO] [stderr] Checking ravif v0.11.20 [INFO] [stderr] Compiling glutin-winit v0.5.0 [INFO] [stderr] Checking smithay-clipboard v0.7.2 [INFO] [stderr] Checking webbrowser v1.0.5 [INFO] [stderr] Compiling enum-map-derive v0.17.0 [INFO] [stderr] Checking async-net v2.0.0 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Checking glow v0.16.0 [INFO] [stderr] Compiling litrs v0.4.2 [INFO] [stderr] Compiling rfd v0.14.1 [INFO] [stderr] Checking web-time v1.1.0 [INFO] [stderr] Checking mime v0.3.17 [INFO] [stderr] Checking ashpd v0.8.1 [INFO] [stderr] Checking enum-map v2.7.3 [INFO] [stderr] Checking alsa v0.9.1 [INFO] [stderr] Checking crossbeam-queue v0.3.12 [INFO] [stderr] Compiling document-features v0.2.11 [INFO] [stderr] Checking crossbeam-channel v0.5.15 [INFO] [stderr] Checking pollster v0.3.0 [INFO] [stderr] Checking urlencoding v2.1.3 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking crossbeam v0.8.4 [INFO] [stderr] Checking egui_double_slider v0.8.0 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Checking ordered-float v5.0.0 [INFO] [stderr] Checking image v0.25.8 [INFO] [stderr] Checking midir v0.10.2 [INFO] [stderr] Checking arc-swap v1.7.1 [INFO] [stderr] Checking egui_glow v0.31.1 [INFO] [stderr] Checking rounded-div v0.1.3 [INFO] [stderr] Checking rtrb v0.3.2 [INFO] [stderr] Checking atspi-proxies v0.6.0 [INFO] [stderr] Checking accesskit_atspi_common v0.10.1 [INFO] [stderr] Checking x11rb v0.13.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 egui_extras v0.31.1 [INFO] [stderr] Checking arboard v3.6.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 AndromedaRust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/midi/midi_track_parser.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::{HashMap, HashSet, VecDeque}, fs::File, sync::{Arc, Mutex}}; [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: `epaint::RectShape` [INFO] [stdout] --> src/app/main_window.rs:17:92 [INFO] [stdout] | [INFO] [stdout] 17 | egui::{self, Color32, Pos2, RichText, Shape, Stroke, Ui, Vec2}, egui_glow::CallbackFn, epaint::RectShape, glow::HasContext [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `egui_extras::StripBuilder` [INFO] [stdout] --> src/app/main_window.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use egui_extras::StripBuilder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PianoRollRenderer`, `bin_search_notes_exact`, `decode_note_group`, `find_note_at`, `get_absolute_max_tick_from_ids`, `get_min_max_ticks_in_selection`, `get_notes_in_range`, and `move_element` [INFO] [stdout] --> src/app/main_window.rs:26:33 [INFO] [stdout] | [INFO] [stdout] 26 | ...::{PianoRollRenderer}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | ...Data, util::{bin_search_notes, bin_search_notes_exact, decode_note_group, find_note_at, get_absolute_max_tick_from_ids, get_min_max_ticks_in_selection, get_notes_in_range, move_element} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/app/main_window.rs:42:28 [INFO] [stdout] | [INFO] [stdout] 42 | collections::{HashMap, HashSet, VecDeque}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `main_window::MainWindow` [INFO] [stdout] --> src/app/rendering.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::{app::{main_window::MainWindow, rendering::{piano_roll::PianoRollRenderer, track_view::TrackViewRenderer}, shared::NoteColors,... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/app/rendering/buffers.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/app/rendering/buffers.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BLACK`, `SELECTED`, and `WHITE` [INFO] [stdout] --> src/app/rendering/piano_roll.rs:2:38 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::app::shared::{NoteColors, BLACK, SELECTED, WHITE}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::editor::util::get_meta_next_tick` [INFO] [stdout] --> src/app/rendering/piano_roll.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::editor::util::get_meta_next_tick; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MetaEventType` and `MetaEvent` [INFO] [stdout] --> src/app/rendering/piano_roll.rs:7:39 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::midi::events::meta_event::{MetaEvent, MetaEventType}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::midi::events::note::Note` [INFO] [stdout] --> src/app/rendering/data_view.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::midi::events::note::Note; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/app/rendering.rs:114:72 [INFO] [stdout] | [INFO] [stdout] 114 | pub fn get_active_renderer(&mut self) -> &mut Arc> { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 114 - pub fn get_active_renderer(&mut self) -> &mut Arc> { [INFO] [stdout] 114 + pub fn get_active_renderer(&mut self) -> &mut Arc> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/app/rendering.rs:129:86 [INFO] [stdout] | [INFO] [stdout] 129 | fn get_renderer(&mut self, render_type: RenderType) -> &mut Arc> { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 129 - fn get_renderer(&mut self, render_type: RenderType) -> &mut Arc> { [INFO] [stdout] 129 + fn get_renderer(&mut self, render_type: RenderType) -> &mut Arc> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `VS_PianoRoll_OnionState` should have an upper camel case name [INFO] [stdout] --> src/app/view_settings.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum VS_PianoRoll_OnionState { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `VsPianoRollOnionState` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `VS_PianoRoll_OnionColoring` should have an upper camel case name [INFO] [stdout] --> src/app/view_settings.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum VS_PianoRoll_OnionColoring { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `VsPianoRollOnionColoring` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `VS_PianoRoll_DataViewState` should have an upper camel case name [INFO] [stdout] --> src/app/view_settings.rs:42:10 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum VS_PianoRoll_DataViewState { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `VsPianoRollDataViewState` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Num` and `PrimInt` [INFO] [stdout] --> src/app/custom_widgets.rs:4:18 [INFO] [stdout] | [INFO] [stdout] 4 | use num_traits::{Num, NumCast, PrimInt, ToPrimitive}; [INFO] [stdout] | ^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `Mutex` [INFO] [stdout] --> src/editor/navigation.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `audio::event_playback::PlaybackManager`, `playhead::Playhead`, and `util::MIDITick` [INFO] [stdout] --> src/editor/navigation.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{audio::event_playback::PlaybackManager, editor::{playhead::Playhead, util::MIDITick}}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HashSet` and `VecDeque` [INFO] [stdout] --> src/editor/util.rs:4:49 [INFO] [stdout] | [INFO] [stdout] 4 | use std::{cmp::Ordering, collections::{HashMap, HashSet, VecDeque}, sync::{Arc, Mutex}}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc`, `HashMap`, `HashSet`, `Mutex`, and `VecDeque` [INFO] [stdout] --> src/editor/edit_functions.rs:1:25 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::{HashMap, HashSet, VecDeque}, sync::{Arc, Mutex}}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^ ^^^^^^^^ ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color32`, `RichText`, `Stroke`, `Ui`, `egui_glow::CallbackFn`, `glow::HasContext`, and `self` [INFO] [stdout] --> src/editor/edit_functions.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | egui::{self, Color32, RichText, Stroke, Ui}, [INFO] [stdout] | ^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^ ^^ [INFO] [stdout] 5 | egui_glow::CallbackFn, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | glow::HasContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `bin_search_notes`, `get_min_max_ticks_in_selection`, `main_window::MainWindow`, and `move_element` [INFO] [stdout] --> src/editor/edit_functions.rs:9:49 [INFO] [stdout] | [INFO] [stdout] 9 | ...d, main_window::MainWindow}, editor::{actions::{EditorAction, EditorActions}, util::{bin_search_notes, get_min_max_keys_in_selection, get_min_max_ticks_in_selection, manipulate_note_lengths, manipulate_note_ticks, move_element, M... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ui` [INFO] [stdout] --> src/editor/settings/project_settings.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | use eframe::egui::{self, RichText, Ui}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ProjectInfo` [INFO] [stdout] --> src/editor/settings/project_settings.rs:3:48 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::editor::project_data::{ProjectData, ProjectInfo}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Pos2` [INFO] [stdout] --> src/editor/note_editing.rs:1:26 [INFO] [stdout] | [INFO] [stdout] 1 | use eframe::egui::{self, Pos2, Ui}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `decode_note_group` [INFO] [stdout] --> src/editor/note_editing.rs:3:217 [INFO] [stdout] | [INFO] [stdout] 3 | ...navigation::PianoRollNavigation, util::{bin_search_notes, decode_note_group, find_note_at, get_min_max_ticks_in_selection, get_mouse_m... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::app::custom_widgets::NumericField` [INFO] [stdout] --> src/editor/note_editing.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::app::custom_widgets::NumericField; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ui` [INFO] [stdout] --> src/editor/meta_editing.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | use eframe::egui::{self, RichText, Ui}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_traits::Num` [INFO] [stdout] --> src/editor/meta_editing.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use num_traits::Num; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/editor/midi_bar_cacher.rs:1:22 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::{Arc, Mutex, RwLock}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rfd::MessageDialog` [INFO] [stdout] --> src/audio/midi_devices.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use rfd::MessageDialog; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `Mutex` [INFO] [stdout] --> src/audio/midi_devices.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AtomicU32`, `BinaryHeap`, `LinkedList`, `VecDeque`, and `thread::JoinHandle` [INFO] [stdout] --> src/audio/event_playback.rs:1:25 [INFO] [stdout] | [INFO] [stdout] 1 | ...ns::{BinaryHeap, LinkedList, VecDeque}, sync::{atomic::{AtomicBool, AtomicU32, Ordering}, Arc, Mutex, RwLock}, thread::JoinHandle, tim... [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `midi_devices::MIDIDevices` [INFO] [stdout] --> src/audio/event_playback.rs:3:57 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{audio::{midi_audio_engine::MIDIAudioEngine, midi_devices::MIDIDevices}, editor::{project_data::bytes_as_tempo, util::{bin_sea... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RecvTimeoutError` [INFO] [stdout] --> src/audio/event_playback.rs:4:45 [INFO] [stdout] | [INFO] [stdout] 4 | use crossbeam::channel::{bounded, Receiver, RecvTimeoutError, Sender}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ordered_float::NotNan` [INFO] [stdout] --> src/audio/event_playback.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use ordered_float::NotNan; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::Reverse` [INFO] [stdout] --> src/audio/event_playback.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::cmp::Reverse; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/midi/midi_track_parser.rs:1:34 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::{HashMap, HashSet, VecDeque}, fs::File, sync::{Arc, Mutex}}; [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: `epaint::RectShape` [INFO] [stdout] --> src/app/main_window.rs:17:92 [INFO] [stdout] | [INFO] [stdout] 17 | egui::{self, Color32, Pos2, RichText, Shape, Stroke, Ui, Vec2}, egui_glow::CallbackFn, epaint::RectShape, glow::HasContext [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `egui_extras::StripBuilder` [INFO] [stdout] --> src/app/main_window.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use egui_extras::StripBuilder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PianoRollRenderer`, `bin_search_notes_exact`, `decode_note_group`, `find_note_at`, `get_absolute_max_tick_from_ids`, `get_min_max_ticks_in_selection`, `get_notes_in_range`, and `move_element` [INFO] [stdout] --> src/app/main_window.rs:26:33 [INFO] [stdout] | [INFO] [stdout] 26 | ...::{PianoRollRenderer}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | ...Data, util::{bin_search_notes, bin_search_notes_exact, decode_note_group, find_note_at, get_absolute_max_tick_from_ids, get_min_max_ticks_in_selection, get_notes_in_range, move_element} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/app/main_window.rs:42:28 [INFO] [stdout] | [INFO] [stdout] 42 | collections::{HashMap, HashSet, VecDeque}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `main_window::MainWindow` [INFO] [stdout] --> src/app/rendering.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::{app::{main_window::MainWindow, rendering::{piano_roll::PianoRollRenderer, track_view::TrackViewRenderer}, shared::NoteColors,... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/app/rendering/buffers.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/app/rendering/buffers.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BLACK`, `SELECTED`, and `WHITE` [INFO] [stdout] --> src/app/rendering/piano_roll.rs:2:38 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::app::shared::{NoteColors, BLACK, SELECTED, WHITE}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::editor::util::get_meta_next_tick` [INFO] [stdout] --> src/app/rendering/piano_roll.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::editor::util::get_meta_next_tick; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MetaEventType` and `MetaEvent` [INFO] [stdout] --> src/app/rendering/piano_roll.rs:7:39 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::midi::events::meta_event::{MetaEvent, MetaEventType}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::midi::events::note::Note` [INFO] [stdout] --> src/app/rendering/data_view.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::midi::events::note::Note; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/app/rendering.rs:114:72 [INFO] [stdout] | [INFO] [stdout] 114 | pub fn get_active_renderer(&mut self) -> &mut Arc> { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 114 - pub fn get_active_renderer(&mut self) -> &mut Arc> { [INFO] [stdout] 114 + pub fn get_active_renderer(&mut self) -> &mut Arc> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/app/rendering.rs:129:86 [INFO] [stdout] | [INFO] [stdout] 129 | fn get_renderer(&mut self, render_type: RenderType) -> &mut Arc> { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 129 - fn get_renderer(&mut self, render_type: RenderType) -> &mut Arc> { [INFO] [stdout] 129 + fn get_renderer(&mut self, render_type: RenderType) -> &mut Arc> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `VS_PianoRoll_OnionState` should have an upper camel case name [INFO] [stdout] --> src/app/view_settings.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum VS_PianoRoll_OnionState { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `VsPianoRollOnionState` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `VS_PianoRoll_OnionColoring` should have an upper camel case name [INFO] [stdout] --> src/app/view_settings.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum VS_PianoRoll_OnionColoring { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `VsPianoRollOnionColoring` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `VS_PianoRoll_DataViewState` should have an upper camel case name [INFO] [stdout] --> src/app/view_settings.rs:42:10 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum VS_PianoRoll_DataViewState { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `VsPianoRollDataViewState` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Num` and `PrimInt` [INFO] [stdout] --> src/app/custom_widgets.rs:4:18 [INFO] [stdout] | [INFO] [stdout] 4 | use num_traits::{Num, NumCast, PrimInt, ToPrimitive}; [INFO] [stdout] | ^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `Mutex` [INFO] [stdout] --> src/editor/navigation.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `audio::event_playback::PlaybackManager`, `playhead::Playhead`, and `util::MIDITick` [INFO] [stdout] --> src/editor/navigation.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{audio::event_playback::PlaybackManager, editor::{playhead::Playhead, util::MIDITick}}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HashSet` and `VecDeque` [INFO] [stdout] --> src/editor/util.rs:4:49 [INFO] [stdout] | [INFO] [stdout] 4 | use std::{cmp::Ordering, collections::{HashMap, HashSet, VecDeque}, sync::{Arc, Mutex}}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc`, `HashMap`, `HashSet`, `Mutex`, and `VecDeque` [INFO] [stdout] --> src/editor/edit_functions.rs:1:25 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::{HashMap, HashSet, VecDeque}, sync::{Arc, Mutex}}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^ ^^^^^^^^ ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color32`, `RichText`, `Stroke`, `Ui`, `egui_glow::CallbackFn`, `glow::HasContext`, and `self` [INFO] [stdout] --> src/editor/edit_functions.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | egui::{self, Color32, RichText, Stroke, Ui}, [INFO] [stdout] | ^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^ ^^ [INFO] [stdout] 5 | egui_glow::CallbackFn, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | glow::HasContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `bin_search_notes`, `get_min_max_ticks_in_selection`, `main_window::MainWindow`, and `move_element` [INFO] [stdout] --> src/editor/edit_functions.rs:9:49 [INFO] [stdout] | [INFO] [stdout] 9 | ...d, main_window::MainWindow}, editor::{actions::{EditorAction, EditorActions}, util::{bin_search_notes, get_min_max_keys_in_selection, get_min_max_ticks_in_selection, manipulate_note_lengths, manipulate_note_ticks, move_element, M... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ui` [INFO] [stdout] --> src/editor/settings/project_settings.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | use eframe::egui::{self, RichText, Ui}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ProjectInfo` [INFO] [stdout] --> src/editor/settings/project_settings.rs:3:48 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::editor::project_data::{ProjectData, ProjectInfo}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Pos2` [INFO] [stdout] --> src/editor/note_editing.rs:1:26 [INFO] [stdout] | [INFO] [stdout] 1 | use eframe::egui::{self, Pos2, Ui}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `decode_note_group` [INFO] [stdout] --> src/editor/note_editing.rs:3:217 [INFO] [stdout] | [INFO] [stdout] 3 | ...navigation::PianoRollNavigation, util::{bin_search_notes, decode_note_group, find_note_at, get_min_max_ticks_in_selection, get_mouse_m... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::app::custom_widgets::NumericField` [INFO] [stdout] --> src/editor/note_editing.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::app::custom_widgets::NumericField; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ui` [INFO] [stdout] --> src/editor/meta_editing.rs:1:36 [INFO] [stdout] | [INFO] [stdout] 1 | use eframe::egui::{self, RichText, Ui}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `num_traits::Num` [INFO] [stdout] --> src/editor/meta_editing.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use num_traits::Num; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/editor/midi_bar_cacher.rs:1:22 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::{Arc, Mutex, RwLock}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rfd::MessageDialog` [INFO] [stdout] --> src/audio/midi_devices.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use rfd::MessageDialog; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `Mutex` [INFO] [stdout] --> src/audio/midi_devices.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AtomicU32`, `BinaryHeap`, `LinkedList`, `VecDeque`, and `thread::JoinHandle` [INFO] [stdout] --> src/audio/event_playback.rs:1:25 [INFO] [stdout] | [INFO] [stdout] 1 | ...ns::{BinaryHeap, LinkedList, VecDeque}, sync::{atomic::{AtomicBool, AtomicU32, Ordering}, Arc, Mutex, RwLock}, thread::JoinHandle, tim... [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `midi_devices::MIDIDevices` [INFO] [stdout] --> src/audio/event_playback.rs:3:57 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::{audio::{midi_audio_engine::MIDIAudioEngine, midi_devices::MIDIDevices}, editor::{project_data::bytes_as_tempo, util::{bin_sea... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RecvTimeoutError` [INFO] [stdout] --> src/audio/event_playback.rs:4:45 [INFO] [stdout] | [INFO] [stdout] 4 | use crossbeam::channel::{bounded, Receiver, RecvTimeoutError, Sender}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ordered_float::NotNan` [INFO] [stdout] --> src/audio/event_playback.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use ordered_float::NotNan; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::Reverse` [INFO] [stdout] --> src/audio/event_playback.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::cmp::Reverse; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AtomicMIDITick` [INFO] [stdout] --> src/audio/event_playback.rs:3:155 [INFO] [stdout] | [INFO] [stdout] 3 | ...roject_data::bytes_as_tempo, util::{bin_search_notes_exact, AtomicMIDITick, MIDITick, MIDITickAtomic}}, midi::events::{channel_event::... [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AtomicMIDITick` [INFO] [stdout] --> src/audio/event_playback.rs:3:155 [INFO] [stdout] | [INFO] [stdout] 3 | ...roject_data::bytes_as_tempo, util::{bin_search_notes_exact, AtomicMIDITick, MIDITick, MIDITickAtomic}}, midi::events::{channel_event::... [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `view_top` [INFO] [stdout] --> src/app/main_window.rs:516:29 [INFO] [stdout] | [INFO] [stdout] 516 | let view_top = track_view_nav.zoom_tracks + track_view_nav.zoom_tracks; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 516 | let _view_top = track_view_nav.zoom_tracks + track_view_nav.zoom_tracks; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NOTE_BORDER_DARKNESS` [INFO] [stdout] | [INFO] [stdout] 516 - let view_top = track_view_nav.zoom_tracks + track_view_nav.zoom_tracks; [INFO] [stdout] 516 + let app::rendering::piano_roll::NOTE_BORDER_DARKNESS = track_view_nav.zoom_tracks + track_view_nav.zoom_tracks; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/app/main_window.rs:745:9 [INFO] [stdout] | [INFO] [stdout] 745 | curr_channel: u8, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_channel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `action` [INFO] [stdout] --> src/app/main_window.rs:1686:37 [INFO] [stdout] | [INFO] [stdout] 1686 | fn apply_ghost_notes(&mut self, action: EditorAction) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `window_height` [INFO] [stdout] --> src/app/main_window.rs:1985:13 [INFO] [stdout] | [INFO] [stdout] 1985 | let window_height = ctx.input(|i| i.screen_rect).size().y; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1985 | let _window_height = ctx.input(|i| i.screen_rect).size().y; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NOTE_BORDER_DARKNESS` [INFO] [stdout] | [INFO] [stdout] 1985 - let window_height = ctx.input(|i| i.screen_rect).size().y; [INFO] [stdout] 1985 + let app::rendering::piano_roll::NOTE_BORDER_DARKNESS = ctx.input(|i| i.screen_rect).size().y; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `view_top` [INFO] [stdout] --> src/app/main_window.rs:516:29 [INFO] [stdout] | [INFO] [stdout] 516 | let view_top = track_view_nav.zoom_tracks + track_view_nav.zoom_tracks; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 516 | let _view_top = track_view_nav.zoom_tracks + track_view_nav.zoom_tracks; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NOTE_BORDER_DARKNESS` [INFO] [stdout] | [INFO] [stdout] 516 - let view_top = track_view_nav.zoom_tracks + track_view_nav.zoom_tracks; [INFO] [stdout] 516 + let app::rendering::piano_roll::NOTE_BORDER_DARKNESS = track_view_nav.zoom_tracks + track_view_nav.zoom_tracks; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ctx` [INFO] [stdout] --> src/app/main_window.rs:2063:36 [INFO] [stdout] | [INFO] [stdout] 2063 | fn draw_data_viewer(&mut self, ctx: &egui::Context, ui: &mut Ui, any_window_opened: bool) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ctx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `any_window_opened` [INFO] [stdout] --> src/app/main_window.rs:2063:70 [INFO] [stdout] | [INFO] [stdout] 2063 | fn draw_data_viewer(&mut self, ctx: &egui::Context, ui: &mut Ui, any_window_opened: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_any_window_opened` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/app/main_window.rs:745:9 [INFO] [stdout] | [INFO] [stdout] 745 | curr_channel: u8, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_channel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dataview_size` [INFO] [stdout] --> src/app/main_window.rs:2495:38 [INFO] [stdout] | [INFO] [stdout] 2495 | let (dataview_state, dataview_size) = if let Some(view_settings) = self.view_settings.as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 2495 | let (dataview_state, _dataview_size) = if let Some(view_settings) = self.view_settings.as_ref() { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NOTE_BORDER_DARKNESS` [INFO] [stdout] | [INFO] [stdout] 2495 - let (dataview_state, dataview_size) = if let Some(view_settings) = self.view_settings.as_ref() { [INFO] [stdout] 2495 + let (dataview_state, app::rendering::piano_roll::NOTE_BORDER_DARKNESS) = if let Some(view_settings) = self.view_settings.as_ref() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ui` [INFO] [stdout] --> src/app/main_window.rs:2360:45 [INFO] [stdout] | [INFO] [stdout] 2360 | ui.menu_button("Help", |ui| { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_track` [INFO] [stdout] --> src/app/main_window.rs:2594:34 [INFO] [stdout] | [INFO] [stdout] 2594 | if let Some((curr_track, curr_channel)) = self.get_current_track_and_channel() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 2594 | if let Some((_curr_track, curr_channel)) = self.get_current_track_and_channel() { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NOTE_EDIT_MOUSE_DOWN_ON_UI` [INFO] [stdout] | [INFO] [stdout] 2594 - if let Some((curr_track, curr_channel)) = self.get_current_track_and_channel() { [INFO] [stdout] 2594 + if let Some((editor::note_editing::note_flags::NOTE_EDIT_MOUSE_DOWN_ON_UI, curr_channel)) = self.get_current_track_and_channel() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/app/main_window.rs:2594:46 [INFO] [stdout] | [INFO] [stdout] 2594 | if let Some((curr_track, curr_channel)) = self.get_current_track_and_channel() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 2594 | if let Some((curr_track, _curr_channel)) = self.get_current_track_and_channel() { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `TOOL_ERASER_ENABLE` [INFO] [stdout] | [INFO] [stdout] 2594 - if let Some((curr_track, curr_channel)) = self.get_current_track_and_channel() { [INFO] [stdout] 2594 + if let Some((curr_track, app::main_window::TOOL_ERASER_ENABLE)) = self.get_current_track_and_channel() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `notes` [INFO] [stdout] --> src/app/main_window.rs:2596:33 [INFO] [stdout] | [INFO] [stdout] 2596 | let mut notes = project_data.notes.read().unwrap(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_notes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ratio` [INFO] [stdout] --> src/app/main_window.rs:2662:35 [INFO] [stdout] | [INFO] [stdout] 2662 | for (i, &(ratio, name)) in SNAP_MAPPINGS.iter().enumerate() { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ratio` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `action` [INFO] [stdout] --> src/app/main_window.rs:1686:37 [INFO] [stdout] | [INFO] [stdout] 1686 | fn apply_ghost_notes(&mut self, action: EditorAction) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_action` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `window_height` [INFO] [stdout] --> src/app/main_window.rs:1985:13 [INFO] [stdout] | [INFO] [stdout] 1985 | let window_height = ctx.input(|i| i.screen_rect).size().y; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1985 | let _window_height = ctx.input(|i| i.screen_rect).size().y; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NOTE_BORDER_DARKNESS` [INFO] [stdout] | [INFO] [stdout] 1985 - let window_height = ctx.input(|i| i.screen_rect).size().y; [INFO] [stdout] 1985 + let app::rendering::piano_roll::NOTE_BORDER_DARKNESS = ctx.input(|i| i.screen_rect).size().y; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ctx` [INFO] [stdout] --> src/app/main_window.rs:2063:36 [INFO] [stdout] | [INFO] [stdout] 2063 | fn draw_data_viewer(&mut self, ctx: &egui::Context, ui: &mut Ui, any_window_opened: bool) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ctx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `any_window_opened` [INFO] [stdout] --> src/app/main_window.rs:2063:70 [INFO] [stdout] | [INFO] [stdout] 2063 | fn draw_data_viewer(&mut self, ctx: &egui::Context, ui: &mut Ui, any_window_opened: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_any_window_opened` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dataview_size` [INFO] [stdout] --> src/app/main_window.rs:2495:38 [INFO] [stdout] | [INFO] [stdout] 2495 | let (dataview_state, dataview_size) = if let Some(view_settings) = self.view_settings.as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 2495 | let (dataview_state, _dataview_size) = if let Some(view_settings) = self.view_settings.as_ref() { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NOTE_BORDER_DARKNESS` [INFO] [stdout] | [INFO] [stdout] 2495 - let (dataview_state, dataview_size) = if let Some(view_settings) = self.view_settings.as_ref() { [INFO] [stdout] 2495 + let (dataview_state, app::rendering::piano_roll::NOTE_BORDER_DARKNESS) = if let Some(view_settings) = self.view_settings.as_ref() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ui` [INFO] [stdout] --> src/app/main_window.rs:2360:45 [INFO] [stdout] | [INFO] [stdout] 2360 | ui.menu_button("Help", |ui| { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_track` [INFO] [stdout] --> src/app/main_window.rs:2594:34 [INFO] [stdout] | [INFO] [stdout] 2594 | if let Some((curr_track, curr_channel)) = self.get_current_track_and_channel() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 2594 | if let Some((_curr_track, curr_channel)) = self.get_current_track_and_channel() { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NOTE_EDIT_MOUSE_DOWN_ON_UI` [INFO] [stdout] | [INFO] [stdout] 2594 - if let Some((curr_track, curr_channel)) = self.get_current_track_and_channel() { [INFO] [stdout] 2594 + if let Some((editor::note_editing::note_flags::NOTE_EDIT_MOUSE_DOWN_ON_UI, curr_channel)) = self.get_current_track_and_channel() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/app/main_window.rs:2594:46 [INFO] [stdout] | [INFO] [stdout] 2594 | if let Some((curr_track, curr_channel)) = self.get_current_track_and_channel() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 2594 | if let Some((curr_track, _curr_channel)) = self.get_current_track_and_channel() { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `TOOL_ERASER_ENABLE` [INFO] [stdout] | [INFO] [stdout] 2594 - if let Some((curr_track, curr_channel)) = self.get_current_track_and_channel() { [INFO] [stdout] 2594 + if let Some((curr_track, app::main_window::TOOL_ERASER_ENABLE)) = self.get_current_track_and_channel() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `notes` [INFO] [stdout] --> src/app/main_window.rs:2596:33 [INFO] [stdout] | [INFO] [stdout] 2596 | let mut notes = project_data.notes.read().unwrap(); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_notes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ratio` [INFO] [stdout] --> src/app/main_window.rs:2662:35 [INFO] [stdout] | [INFO] [stdout] 2662 | for (i, &(ratio, name)) in SNAP_MAPPINGS.iter().enumerate() { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ratio` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/app/main_window.rs:2195:49 [INFO] [stdout] | [INFO] [stdout] 2195 | ... let mut playhead = &mut main_window.playhead; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/app/main_window.rs:2596:29 [INFO] [stdout] | [INFO] [stdout] 2596 | let mut notes = project_data.notes.read().unwrap(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `global_metas` [INFO] [stdout] --> src/app/rendering/piano_roll.rs:177:21 [INFO] [stdout] | [INFO] [stdout] 177 | let (notes, global_metas) = { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_global_metas` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nav_curr_channel` [INFO] [stdout] --> src/app/rendering/piano_roll.rs:258:34 [INFO] [stdout] | [INFO] [stdout] 258 | let (nav_curr_track, nav_curr_channel) = { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 258 | let (nav_curr_track, _nav_curr_channel) = { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `TOOL_ERASER_ENABLE` [INFO] [stdout] | [INFO] [stdout] 258 - let (nav_curr_track, nav_curr_channel) = { [INFO] [stdout] 258 + let (nav_curr_track, app::main_window::TOOL_ERASER_ENABLE) = { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `rendered_notes` is assigned to, but never used [INFO] [stdout] --> src/app/rendering/piano_roll.rs:415:37 [INFO] [stdout] | [INFO] [stdout] 415 | ... let mut rendered_notes = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_rendered_notes` instead [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 415 - let mut rendered_notes = 0; [INFO] [stdout] 415 + let mut audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN = 0; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid_render` [INFO] [stdout] --> src/app/rendering/piano_roll.rs:417:37 [INFO] [stdout] | [INFO] [stdout] 417 | ... let mut valid_render = true; // in case tracks have been switched in the middle of looping [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 417 | let mut _valid_render = true; // in case tracks have been switched in the middle of looping [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_IS_BIASED` [INFO] [stdout] | [INFO] [stdout] 417 - let mut valid_render = true; // in case tracks have been switched in the middle of looping [INFO] [stdout] 417 + let mut audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_IS_BIASED = true; // in case tracks have been switched in the middle of looping [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `note_idx` is assigned to, but never used [INFO] [stdout] --> src/app/rendering/piano_roll.rs:456:41 [INFO] [stdout] | [INFO] [stdout] 456 | ... let mut note_idx = n_off; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_note_idx` instead [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 456 - let mut note_idx = n_off; [INFO] [stdout] 456 + let mut audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN = n_off; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sel_lock` [INFO] [stdout] --> src/app/rendering/piano_roll.rs:479:45 [INFO] [stdout] | [INFO] [stdout] 479 | ... let sel_lock = self.selected.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sel_lock` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `rendered_notes` is never read [INFO] [stdout] --> src/app/rendering/piano_roll.rs:808:33 [INFO] [stdout] | [INFO] [stdout] 808 | ... rendered_notes += note_id; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/app/main_window.rs:2195:49 [INFO] [stdout] | [INFO] [stdout] 2195 | ... let mut playhead = &mut main_window.playhead; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/app/main_window.rs:2596:29 [INFO] [stdout] | [INFO] [stdout] 2596 | let mut notes = project_data.notes.read().unwrap(); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/app/rendering/piano_roll.rs:417:33 [INFO] [stdout] | [INFO] [stdout] 417 | ... let mut valid_render = true; // in case tracks have been switched in the middle of looping [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `global_metas` [INFO] [stdout] --> src/app/rendering/piano_roll.rs:177:21 [INFO] [stdout] | [INFO] [stdout] 177 | let (notes, global_metas) = { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_global_metas` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/app/rendering/track_view.rs:369:29 [INFO] [stdout] | [INFO] [stdout] 369 | let mut curr_channel = 0; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_channel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_note` [INFO] [stdout] --> src/app/rendering/track_view.rs:371:29 [INFO] [stdout] | [INFO] [stdout] 371 | let mut curr_note = 0; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_note` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `note_idx` [INFO] [stdout] --> src/app/rendering/track_view.rs:395:29 [INFO] [stdout] | [INFO] [stdout] 395 | let mut note_idx = n_off; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 395 | let mut _note_idx = n_off; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 395 - let mut note_idx = n_off; [INFO] [stdout] 395 + let mut audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN = n_off; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nav_curr_channel` [INFO] [stdout] --> src/app/rendering/piano_roll.rs:258:34 [INFO] [stdout] | [INFO] [stdout] 258 | let (nav_curr_track, nav_curr_channel) = { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 258 | let (nav_curr_track, _nav_curr_channel) = { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `TOOL_ERASER_ENABLE` [INFO] [stdout] | [INFO] [stdout] 258 - let (nav_curr_track, nav_curr_channel) = { [INFO] [stdout] 258 + let (nav_curr_track, app::main_window::TOOL_ERASER_ENABLE) = { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `rendered_notes` is assigned to, but never used [INFO] [stdout] --> src/app/rendering/piano_roll.rs:415:37 [INFO] [stdout] | [INFO] [stdout] 415 | ... let mut rendered_notes = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_rendered_notes` instead [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 415 - let mut rendered_notes = 0; [INFO] [stdout] 415 + let mut audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN = 0; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `valid_render` [INFO] [stdout] --> src/app/rendering/piano_roll.rs:417:37 [INFO] [stdout] | [INFO] [stdout] 417 | ... let mut valid_render = true; // in case tracks have been switched in the middle of looping [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 417 | let mut _valid_render = true; // in case tracks have been switched in the middle of looping [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_IS_BIASED` [INFO] [stdout] | [INFO] [stdout] 417 - let mut valid_render = true; // in case tracks have been switched in the middle of looping [INFO] [stdout] 417 + let mut audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_IS_BIASED = true; // in case tracks have been switched in the middle of looping [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `note_idx` is assigned to, but never used [INFO] [stdout] --> src/app/rendering/piano_roll.rs:456:41 [INFO] [stdout] | [INFO] [stdout] 456 | ... let mut note_idx = n_off; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_note_idx` instead [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 456 - let mut note_idx = n_off; [INFO] [stdout] 456 + let mut audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN = n_off; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sel_lock` [INFO] [stdout] --> src/app/rendering/piano_roll.rs:479:45 [INFO] [stdout] | [INFO] [stdout] 479 | ... let sel_lock = self.selected.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sel_lock` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `rendered_notes` is never read [INFO] [stdout] --> src/app/rendering/piano_roll.rs:808:33 [INFO] [stdout] | [INFO] [stdout] 808 | ... rendered_notes += note_id; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/app/rendering/track_view.rs:369:25 [INFO] [stdout] | [INFO] [stdout] 369 | let mut curr_channel = 0; [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/app/rendering/track_view.rs:371:25 [INFO] [stdout] | [INFO] [stdout] 371 | let mut curr_note = 0; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/app/rendering/track_view.rs:395:25 [INFO] [stdout] | [INFO] [stdout] 395 | let mut note_idx = n_off; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `project_data` [INFO] [stdout] --> src/app/rendering/data_view.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | project_data: &Arc>, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_project_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key_pos` [INFO] [stdout] --> src/app/rendering/data_view.rs:172:30 [INFO] [stdout] | [INFO] [stdout] 172 | let (zoom_ticks, key_pos, zoom_keys) = { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 172 | let (zoom_ticks, _key_pos, zoom_keys) = { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NOTE_BORDER_DARKNESS` [INFO] [stdout] | [INFO] [stdout] 172 - let (zoom_ticks, key_pos, zoom_keys) = { [INFO] [stdout] 172 + let (zoom_ticks, app::rendering::piano_roll::NOTE_BORDER_DARKNESS, zoom_keys) = { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `zoom_keys` [INFO] [stdout] --> src/app/rendering/data_view.rs:172:39 [INFO] [stdout] | [INFO] [stdout] 172 | let (zoom_ticks, key_pos, zoom_keys) = { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 172 | let (zoom_ticks, key_pos, _zoom_keys) = { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NOTE_BORDER_DARKNESS` [INFO] [stdout] | [INFO] [stdout] 172 - let (zoom_ticks, key_pos, zoom_keys) = { [INFO] [stdout] 172 + let (zoom_ticks, key_pos, app::rendering::piano_roll::NOTE_BORDER_DARKNESS) = { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nav_curr_track` [INFO] [stdout] --> src/app/rendering/data_view.rs:177:18 [INFO] [stdout] | [INFO] [stdout] 177 | let (nav_curr_track, nav_curr_channel) = { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 177 | let (_nav_curr_track, nav_curr_channel) = { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NOTE_EDIT_MOUSE_DOWN_ON_UI` [INFO] [stdout] | [INFO] [stdout] 177 - let (nav_curr_track, nav_curr_channel) = { [INFO] [stdout] 177 + let (editor::note_editing::note_flags::NOTE_EDIT_MOUSE_DOWN_ON_UI, nav_curr_channel) = { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nav_curr_channel` [INFO] [stdout] --> src/app/rendering/data_view.rs:177:34 [INFO] [stdout] | [INFO] [stdout] 177 | let (nav_curr_track, nav_curr_channel) = { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 177 | let (nav_curr_track, _nav_curr_channel) = { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `TOOL_ERASER_ENABLE` [INFO] [stdout] | [INFO] [stdout] 177 - let (nav_curr_track, nav_curr_channel) = { [INFO] [stdout] 177 + let (nav_curr_track, app::main_window::TOOL_ERASER_ENABLE) = { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_playing` [INFO] [stdout] --> src/app/rendering/data_view.rs:182:18 [INFO] [stdout] | [INFO] [stdout] 182 | let (is_playing, playback_pos) = { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 182 | let (_is_playing, playback_pos) = { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_IS_BIASED` [INFO] [stdout] | [INFO] [stdout] 182 - let (is_playing, playback_pos) = { [INFO] [stdout] 182 + let (audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_IS_BIASED, playback_pos) = { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `playback_pos` [INFO] [stdout] --> src/app/rendering/data_view.rs:182:30 [INFO] [stdout] | [INFO] [stdout] 182 | let (is_playing, playback_pos) = { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 182 | let (is_playing, _playback_pos) = { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NOTE_BORDER_DARKNESS` [INFO] [stdout] | [INFO] [stdout] 182 - let (is_playing, playback_pos) = { [INFO] [stdout] 182 + let (is_playing, app::rendering::piano_roll::NOTE_BORDER_DARKNESS) = { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/app/rendering/piano_roll.rs:417:33 [INFO] [stdout] | [INFO] [stdout] 417 | ... let mut valid_render = true; // in case tracks have been switched in the middle of looping [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/app/rendering/track_view.rs:369:29 [INFO] [stdout] | [INFO] [stdout] 369 | let mut curr_channel = 0; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_channel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_note` [INFO] [stdout] --> src/app/rendering/track_view.rs:371:29 [INFO] [stdout] | [INFO] [stdout] 371 | let mut curr_note = 0; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_note` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `note_idx` [INFO] [stdout] --> src/app/rendering/track_view.rs:395:29 [INFO] [stdout] | [INFO] [stdout] 395 | let mut note_idx = n_off; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 395 | let mut _note_idx = n_off; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 395 - let mut note_idx = n_off; [INFO] [stdout] 395 + let mut audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN = n_off; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/app/rendering/track_view.rs:369:25 [INFO] [stdout] | [INFO] [stdout] 369 | let mut curr_channel = 0; [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/app/rendering/track_view.rs:371:25 [INFO] [stdout] | [INFO] [stdout] 371 | let mut curr_note = 0; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/app/rendering/track_view.rs:395:25 [INFO] [stdout] | [INFO] [stdout] 395 | let mut note_idx = n_off; [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `project_data` [INFO] [stdout] --> src/app/rendering/data_view.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | project_data: &Arc>, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_project_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/editor/util.rs:268:10 [INFO] [stdout] | [INFO] [stdout] 268 | for (i, (old_id, note, start_change, _)) in updates.into_iter().enumerate() { [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 268 | for (_i, (old_id, note, start_change, _)) in updates.into_iter().enumerate() { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 268 - for (i, (old_id, note, start_change, _)) in updates.into_iter().enumerate() { [INFO] [stdout] 268 + for (audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN, (old_id, note, start_change, _)) in updates.into_iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key_pos` [INFO] [stdout] --> src/app/rendering/data_view.rs:172:30 [INFO] [stdout] | [INFO] [stdout] 172 | let (zoom_ticks, key_pos, zoom_keys) = { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 172 | let (zoom_ticks, _key_pos, zoom_keys) = { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NOTE_BORDER_DARKNESS` [INFO] [stdout] | [INFO] [stdout] 172 - let (zoom_ticks, key_pos, zoom_keys) = { [INFO] [stdout] 172 + let (zoom_ticks, app::rendering::piano_roll::NOTE_BORDER_DARKNESS, zoom_keys) = { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `zoom_keys` [INFO] [stdout] --> src/app/rendering/data_view.rs:172:39 [INFO] [stdout] | [INFO] [stdout] 172 | let (zoom_ticks, key_pos, zoom_keys) = { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 172 | let (zoom_ticks, key_pos, _zoom_keys) = { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NOTE_BORDER_DARKNESS` [INFO] [stdout] | [INFO] [stdout] 172 - let (zoom_ticks, key_pos, zoom_keys) = { [INFO] [stdout] 172 + let (zoom_ticks, key_pos, app::rendering::piano_roll::NOTE_BORDER_DARKNESS) = { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nav_curr_track` [INFO] [stdout] --> src/app/rendering/data_view.rs:177:18 [INFO] [stdout] | [INFO] [stdout] 177 | let (nav_curr_track, nav_curr_channel) = { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 177 | let (_nav_curr_track, nav_curr_channel) = { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NOTE_EDIT_MOUSE_DOWN_ON_UI` [INFO] [stdout] | [INFO] [stdout] 177 - let (nav_curr_track, nav_curr_channel) = { [INFO] [stdout] 177 + let (editor::note_editing::note_flags::NOTE_EDIT_MOUSE_DOWN_ON_UI, nav_curr_channel) = { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `nav_curr_channel` [INFO] [stdout] --> src/app/rendering/data_view.rs:177:34 [INFO] [stdout] | [INFO] [stdout] 177 | let (nav_curr_track, nav_curr_channel) = { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 177 | let (nav_curr_track, _nav_curr_channel) = { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `TOOL_ERASER_ENABLE` [INFO] [stdout] | [INFO] [stdout] 177 - let (nav_curr_track, nav_curr_channel) = { [INFO] [stdout] 177 + let (nav_curr_track, app::main_window::TOOL_ERASER_ENABLE) = { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_playing` [INFO] [stdout] --> src/app/rendering/data_view.rs:182:18 [INFO] [stdout] | [INFO] [stdout] 182 | let (is_playing, playback_pos) = { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 182 | let (_is_playing, playback_pos) = { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_IS_BIASED` [INFO] [stdout] | [INFO] [stdout] 182 - let (is_playing, playback_pos) = { [INFO] [stdout] 182 + let (audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_IS_BIASED, playback_pos) = { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `playback_pos` [INFO] [stdout] --> src/app/rendering/data_view.rs:182:30 [INFO] [stdout] | [INFO] [stdout] 182 | let (is_playing, playback_pos) = { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 182 | let (is_playing, _playback_pos) = { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `NOTE_BORDER_DARKNESS` [INFO] [stdout] | [INFO] [stdout] 182 - let (is_playing, playback_pos) = { [INFO] [stdout] 182 + let (is_playing, app::rendering::piano_roll::NOTE_BORDER_DARKNESS) = { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `note_ids` [INFO] [stdout] --> src/editor/edit_functions.rs:85:32 [INFO] [stdout] | [INFO] [stdout] 85 | EditFunction::Chop(note_ids, use_tick_lens, snap_id, max_len) => { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_note_ids` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `use_tick_lens` [INFO] [stdout] --> src/editor/edit_functions.rs:85:42 [INFO] [stdout] | [INFO] [stdout] 85 | EditFunction::Chop(note_ids, use_tick_lens, snap_id, max_len) => { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 85 | EditFunction::Chop(note_ids, _use_tick_lens, snap_id, max_len) => { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_IS_BIASED` [INFO] [stdout] | [INFO] [stdout] 85 - EditFunction::Chop(note_ids, use_tick_lens, snap_id, max_len) => { [INFO] [stdout] 85 + EditFunction::Chop(note_ids, audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_IS_BIASED, snap_id, max_len) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `snap_id` [INFO] [stdout] --> src/editor/edit_functions.rs:85:57 [INFO] [stdout] | [INFO] [stdout] 85 | EditFunction::Chop(note_ids, use_tick_lens, snap_id, max_len) => { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 85 | EditFunction::Chop(note_ids, use_tick_lens, _snap_id, max_len) => { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 85 - EditFunction::Chop(note_ids, use_tick_lens, snap_id, max_len) => { [INFO] [stdout] 85 + EditFunction::Chop(note_ids, use_tick_lens, audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN, max_len) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `max_len` [INFO] [stdout] --> src/editor/edit_functions.rs:85:66 [INFO] [stdout] | [INFO] [stdout] 85 | EditFunction::Chop(note_ids, use_tick_lens, snap_id, max_len) => { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/editor/util.rs:268:10 [INFO] [stdout] | [INFO] [stdout] 268 | for (i, (old_id, note, start_change, _)) in updates.into_iter().enumerate() { [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 268 | for (_i, (old_id, note, start_change, _)) in updates.into_iter().enumerate() { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 268 - for (i, (old_id, note, start_change, _)) in updates.into_iter().enumerate() { [INFO] [stdout] 268 + for (audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN, (old_id, note, start_change, _)) in updates.into_iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `note_ids` [INFO] [stdout] --> src/editor/edit_functions.rs:85:32 [INFO] [stdout] | [INFO] [stdout] 85 | EditFunction::Chop(note_ids, use_tick_lens, snap_id, max_len) => { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_note_ids` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `use_tick_lens` [INFO] [stdout] --> src/editor/edit_functions.rs:85:42 [INFO] [stdout] | [INFO] [stdout] 85 | EditFunction::Chop(note_ids, use_tick_lens, snap_id, max_len) => { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 85 | EditFunction::Chop(note_ids, _use_tick_lens, snap_id, max_len) => { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_IS_BIASED` [INFO] [stdout] | [INFO] [stdout] 85 - EditFunction::Chop(note_ids, use_tick_lens, snap_id, max_len) => { [INFO] [stdout] 85 + EditFunction::Chop(note_ids, audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_IS_BIASED, snap_id, max_len) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `snap_id` [INFO] [stdout] --> src/editor/edit_functions.rs:85:57 [INFO] [stdout] | [INFO] [stdout] 85 | EditFunction::Chop(note_ids, use_tick_lens, snap_id, max_len) => { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 85 | EditFunction::Chop(note_ids, use_tick_lens, _snap_id, max_len) => { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 85 - EditFunction::Chop(note_ids, use_tick_lens, snap_id, max_len) => { [INFO] [stdout] 85 + EditFunction::Chop(note_ids, use_tick_lens, audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN, max_len) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `max_len` [INFO] [stdout] --> src/editor/edit_functions.rs:85:66 [INFO] [stdout] | [INFO] [stdout] 85 | EditFunction::Chop(note_ids, use_tick_lens, snap_id, max_len) => { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/editor/note_editing.rs:152:82 [INFO] [stdout] | [INFO] [stdout] 152 | fn move_note_ids_to_ghost_note(&mut self, ids: &Vec, curr_track: u16, curr_channel: u8) { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_channel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/editor/note_editing.rs:179:68 [INFO] [stdout] | [INFO] [stdout] 179 | fn move_selected_ids_to_ghost_note(&mut self, curr_track: u16, curr_channel: u8) { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_channel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/editor/note_editing.rs:242:26 [INFO] [stdout] | [INFO] [stdout] 242 | let (curr_track, curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 242 | let (curr_track, _curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `TOOL_ERASER_ENABLE` [INFO] [stdout] | [INFO] [stdout] 242 - let (curr_track, curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] 242 + let (curr_track, app::main_window::TOOL_ERASER_ENABLE) = self.get_current_track_and_channel(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/editor/note_editing.rs:351:42 [INFO] [stdout] | [INFO] [stdout] 351 | let (curr_track, curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 351 | let (curr_track, _curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `TOOL_ERASER_ENABLE` [INFO] [stdout] | [INFO] [stdout] 351 - let (curr_track, curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] 351 + let (curr_track, app::main_window::TOOL_ERASER_ENABLE) = self.get_current_track_and_channel(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `clicked_note_idx` [INFO] [stdout] --> src/editor/note_editing.rs:421:29 [INFO] [stdout] | [INFO] [stdout] 421 | if let Some(clicked_note_idx) = self.curr_mouse_over_note_idx { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 421 | if let Some(_clicked_note_idx) = self.curr_mouse_over_note_idx { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 421 - if let Some(clicked_note_idx) = self.curr_mouse_over_note_idx { [INFO] [stdout] 421 + if let Some(audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN) = self.curr_mouse_over_note_idx { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/editor/note_editing.rs:578:38 [INFO] [stdout] | [INFO] [stdout] 578 | let (curr_track, curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 578 | let (curr_track, _curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `TOOL_ERASER_ENABLE` [INFO] [stdout] | [INFO] [stdout] 578 - let (curr_track, curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] 578 + let (curr_track, app::main_window::TOOL_ERASER_ENABLE) = self.get_current_track_and_channel(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/editor/note_editing.rs:844:34 [INFO] [stdout] | [INFO] [stdout] 844 | let (curr_track, curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 844 | let (curr_track, _curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `TOOL_ERASER_ENABLE` [INFO] [stdout] | [INFO] [stdout] 844 - let (curr_track, curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] 844 + let (curr_track, app::main_window::TOOL_ERASER_ENABLE) = self.get_current_track_and_channel(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `min_tick` [INFO] [stdout] --> src/editor/note_editing.rs:845:38 [INFO] [stdout] | [INFO] [stdout] 845 | let (sel_notes_dupe, min_tick, max_tick) = { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_tick` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/editor/note_editing.rs:1069:96 [INFO] [stdout] | [INFO] [stdout] 1069 | fn setup_notes_for_length_change(&mut self, note_ids: Option>, curr_track: u16, curr_channel: u8, base_id: usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_channel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/editor/note_editing.rs:152:82 [INFO] [stdout] | [INFO] [stdout] 152 | fn move_note_ids_to_ghost_note(&mut self, ids: &Vec, curr_track: u16, curr_channel: u8) { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_channel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/editor/note_editing.rs:179:68 [INFO] [stdout] | [INFO] [stdout] 179 | fn move_selected_ids_to_ghost_note(&mut self, curr_track: u16, curr_channel: u8) { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_channel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/editor/note_editing.rs:242:26 [INFO] [stdout] | [INFO] [stdout] 242 | let (curr_track, curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 242 | let (curr_track, _curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `TOOL_ERASER_ENABLE` [INFO] [stdout] | [INFO] [stdout] 242 - let (curr_track, curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] 242 + let (curr_track, app::main_window::TOOL_ERASER_ENABLE) = self.get_current_track_and_channel(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/editor/note_editing.rs:351:42 [INFO] [stdout] | [INFO] [stdout] 351 | let (curr_track, curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 351 | let (curr_track, _curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `TOOL_ERASER_ENABLE` [INFO] [stdout] | [INFO] [stdout] 351 - let (curr_track, curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] 351 + let (curr_track, app::main_window::TOOL_ERASER_ENABLE) = self.get_current_track_and_channel(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `clicked_note_idx` [INFO] [stdout] --> src/editor/note_editing.rs:421:29 [INFO] [stdout] | [INFO] [stdout] 421 | if let Some(clicked_note_idx) = self.curr_mouse_over_note_idx { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 421 | if let Some(_clicked_note_idx) = self.curr_mouse_over_note_idx { [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 421 - if let Some(clicked_note_idx) = self.curr_mouse_over_note_idx { [INFO] [stdout] 421 + if let Some(audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN) = self.curr_mouse_over_note_idx { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chan` [INFO] [stdout] --> src/editor/note_editing.rs:1318:21 [INFO] [stdout] | [INFO] [stdout] 1318 | let chan = (note_group & 0xF) as usize; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1318 | let _chan = (note_group & 0xF) as usize; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 1318 - let chan = (note_group & 0xF) as usize; [INFO] [stdout] 1318 + let audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN = (note_group & 0xF) as usize; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chan` [INFO] [stdout] --> src/editor/note_editing.rs:1330:21 [INFO] [stdout] | [INFO] [stdout] 1330 | let chan = (note_group & 0xF) as usize; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1330 | let _chan = (note_group & 0xF) as usize; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 1330 - let chan = (note_group & 0xF) as usize; [INFO] [stdout] 1330 + let audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN = (note_group & 0xF) as usize; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/editor/note_editing.rs:578:38 [INFO] [stdout] | [INFO] [stdout] 578 | let (curr_track, curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 578 | let (curr_track, _curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `TOOL_ERASER_ENABLE` [INFO] [stdout] | [INFO] [stdout] 578 - let (curr_track, curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] 578 + let (curr_track, app::main_window::TOOL_ERASER_ENABLE) = self.get_current_track_and_channel(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chan` [INFO] [stdout] --> src/editor/note_editing.rs:1344:21 [INFO] [stdout] | [INFO] [stdout] 1344 | let chan = (note_group & 0xF) as usize; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1344 | let _chan = (note_group & 0xF) as usize; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 1344 - let chan = (note_group & 0xF) as usize; [INFO] [stdout] 1344 + let audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN = (note_group & 0xF) as usize; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chan` [INFO] [stdout] --> src/editor/note_editing.rs:1355:21 [INFO] [stdout] | [INFO] [stdout] 1355 | let chan = (note_group & 0xF) as usize; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1355 | let _chan = (note_group & 0xF) as usize; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 1355 - let chan = (note_group & 0xF) as usize; [INFO] [stdout] 1355 + let audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN = (note_group & 0xF) as usize; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chan` [INFO] [stdout] --> src/editor/note_editing.rs:1402:21 [INFO] [stdout] | [INFO] [stdout] 1402 | let chan = (note_group & 0xF) as usize; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1402 | let _chan = (note_group & 0xF) as usize; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 1402 - let chan = (note_group & 0xF) as usize; [INFO] [stdout] 1402 + let audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN = (note_group & 0xF) as usize; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ui` [INFO] [stdout] --> src/editor/note_editing.rs:1461:54 [INFO] [stdout] | [INFO] [stdout] 1461 | pub fn update_cursor(&self, ctx: &egui::Context, ui: &mut Ui) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/editor/note_editing.rs:844:34 [INFO] [stdout] | [INFO] [stdout] 844 | let (curr_track, curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 844 | let (curr_track, _curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `TOOL_ERASER_ENABLE` [INFO] [stdout] | [INFO] [stdout] 844 - let (curr_track, curr_channel) = self.get_current_track_and_channel(); [INFO] [stdout] 844 + let (curr_track, app::main_window::TOOL_ERASER_ENABLE) = self.get_current_track_and_channel(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `min_tick` [INFO] [stdout] --> src/editor/note_editing.rs:845:38 [INFO] [stdout] | [INFO] [stdout] 845 | let (sel_notes_dupe, min_tick, max_tick) = { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_tick` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `curr_channel` [INFO] [stdout] --> src/editor/note_editing.rs:1069:96 [INFO] [stdout] | [INFO] [stdout] 1069 | fn setup_notes_for_length_change(&mut self, note_ids: Option>, curr_track: u16, curr_channel: u8, base_id: usize) { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_channel` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `notes` [INFO] [stdout] --> src/editor/track_editing.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | notes: &Arc>>>, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_notes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ch_evs` [INFO] [stdout] --> src/editor/track_editing.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | ch_evs: &Arc>>>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ch_evs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chan` [INFO] [stdout] --> src/editor/note_editing.rs:1318:21 [INFO] [stdout] | [INFO] [stdout] 1318 | let chan = (note_group & 0xF) as usize; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1318 | let _chan = (note_group & 0xF) as usize; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 1318 - let chan = (note_group & 0xF) as usize; [INFO] [stdout] 1318 + let audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN = (note_group & 0xF) as usize; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chan` [INFO] [stdout] --> src/editor/note_editing.rs:1330:21 [INFO] [stdout] | [INFO] [stdout] 1330 | let chan = (note_group & 0xF) as usize; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1330 | let _chan = (note_group & 0xF) as usize; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 1330 - let chan = (note_group & 0xF) as usize; [INFO] [stdout] 1330 + let audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN = (note_group & 0xF) as usize; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chan` [INFO] [stdout] --> src/editor/note_editing.rs:1344:21 [INFO] [stdout] | [INFO] [stdout] 1344 | let chan = (note_group & 0xF) as usize; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1344 | let _chan = (note_group & 0xF) as usize; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 1344 - let chan = (note_group & 0xF) as usize; [INFO] [stdout] 1344 + let audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN = (note_group & 0xF) as usize; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chan` [INFO] [stdout] --> src/editor/note_editing.rs:1355:21 [INFO] [stdout] | [INFO] [stdout] 1355 | let chan = (note_group & 0xF) as usize; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1355 | let _chan = (note_group & 0xF) as usize; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 1355 - let chan = (note_group & 0xF) as usize; [INFO] [stdout] 1355 + let audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN = (note_group & 0xF) as usize; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chan` [INFO] [stdout] --> src/editor/note_editing.rs:1402:21 [INFO] [stdout] | [INFO] [stdout] 1402 | let chan = (note_group & 0xF) as usize; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 1402 | let _chan = (note_group & 0xF) as usize; [INFO] [stdout] | + [INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `_LEN` [INFO] [stdout] | [INFO] [stdout] 1402 - let chan = (note_group & 0xF) as usize; [INFO] [stdout] 1402 + let audio::event_playback::PlaybackManager::run_synth_loop::{closure#0}::_LEN = (note_group & 0xF) as usize; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ui` [INFO] [stdout] --> src/editor/note_editing.rs:1461:54 [INFO] [stdout] | [INFO] [stdout] 1461 | pub fn update_cursor(&self, ctx: &egui::Context, ui: &mut Ui) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `notes` [INFO] [stdout] --> src/editor/track_editing.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | notes: &Arc>>>, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_notes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ch_evs` [INFO] [stdout] --> src/editor/track_editing.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | ch_evs: &Arc>>>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ch_evs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `raw_event` [INFO] [stdout] --> src/audio/kdmapi_engine.rs:169:34 [INFO] [stdout] | [INFO] [stdout] 169 | fn send_event(&mut self, raw_event: &[u8]) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_raw_event` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `MidiEventBatchSize` is more private than the item `PlaybackManager::set_event_batch_size` [INFO] [stdout] --> src/audio/event_playback.rs:249:5 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn set_event_batch_size(&mut self, size: MidiEventBatchSize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `PlaybackManager::set_event_batch_size` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `MidiEventBatchSize` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/audio/event_playback.rs:107:1 [INFO] [stdout] | [INFO] [stdout] 107 | enum MidiEventBatchSize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `NoteOff` and `NoteOn` are never constructed [INFO] [stdout] --> src/midi/events/channel_event.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum ChannelEventType { [INFO] [stdout] | ---------------- variants in this enum [INFO] [stdout] 4 | NoteOff(u8), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 5 | NoteOn(u8, u8), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EndOfTrack` and `SequencerSpecific` are never constructed [INFO] [stdout] --> src/midi/events/meta_event.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum MetaEventType { [INFO] [stdout] | ------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 17 | EndOfTrack = 0x2F, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | SequencerSpecific = 0x7F [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MetaEventType` 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: methods `start_mut`, `key_mut`, `velocity_mut`, `channel_mut`, `set_start`, and `set_end` are never used [INFO] [stdout] --> src/midi/events/note.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Note { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn start_mut(&mut self) -> &mut MIDITick { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn key_mut(&mut self) -> &mut u8 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn velocity_mut(&mut self) -> &mut u8 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn channel_mut(&mut self) -> &mut u8 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn set_start(&mut self, start: MIDITick) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn set_end(&mut self, end: MIDITick) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read_u8x3` is never used [INFO] [stdout] --> src/midi/io/buffered_reader.rs:124:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl BufferedByteReader { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn read_u8x3(&mut self) -> Result<(u8, u8, u8),()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TOOL_PENCIL_DRAGGING` is never used [INFO] [stdout] --> src/app/main_window.rs:47:7 [INFO] [stdout] | [INFO] [stdout] 47 | const TOOL_PENCIL_DRAGGING: u8 = 0x1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TOOL_PENCIL_LENGTH_CHANGE` is never used [INFO] [stdout] --> src/app/main_window.rs:48:7 [INFO] [stdout] | [INFO] [stdout] 48 | const TOOL_PENCIL_LENGTH_CHANGE: u8 = 0x2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TOOL_PENCIL_OVER_NOTE` is never used [INFO] [stdout] --> src/app/main_window.rs:49:7 [INFO] [stdout] | [INFO] [stdout] 49 | const TOOL_PENCIL_OVER_NOTE: u8 = 0x4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TOOL_PENCIL_ALL_FLAGS_EXCEPT_MULTIEDIT` is never used [INFO] [stdout] --> src/app/main_window.rs:50:7 [INFO] [stdout] | [INFO] [stdout] 50 | const TOOL_PENCIL_ALL_FLAGS_EXCEPT_MULTIEDIT: u8 = 0b111; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TOOL_PENCIL_MULTIEDIT` is never used [INFO] [stdout] --> src/app/main_window.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | const TOOL_PENCIL_MULTIEDIT: u8 = 0x10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TOOL_ERASER_ENABLE` is never used [INFO] [stdout] --> src/app/main_window.rs:53:7 [INFO] [stdout] | [INFO] [stdout] 53 | const TOOL_ERASER_ENABLE: u8 = 0x1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EDITOR_DEBUG` is never used [INFO] [stdout] --> src/app/main_window.rs:55:7 [INFO] [stdout] | [INFO] [stdout] 55 | const EDITOR_DEBUG: bool = true; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `flags` is never read [INFO] [stdout] --> src/app/main_window.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 88 | pub struct EditorToolSettings { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] 89 | curr_tool: EditorTool, [INFO] [stdout] 90 | flags: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset_flags` is never used [INFO] [stdout] --> src/app/main_window.rs:117:12 [INFO] [stdout] | [INFO] [stdout] 104 | impl EditorToolSettings { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn reset_flags(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/app/main_window.rs:173:5 [INFO] [stdout] | [INFO] [stdout] 139 | pub struct MainWindow { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 173 | is_dragging_notes: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 174 | old_note_lengths: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 175 | [INFO] [stdout] 176 | temp_del_notes: VecDeque, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 177 | // only use for *immediate* note modifications! [INFO] [stdout] 178 | temp_modifying_note_ids: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 179 | temp_note_positions: Vec<(u32, u8)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 180 | pub temp_selected_notes: Arc>>, [INFO] [stdout] 181 | drag_offset: i32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | selection_range: (u32, u32, u8, u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | dragged_from_ui: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 191 | draw_select_box: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | note_properties_popup_note_id: usize, // the id the popup is referring to [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | last_clicked_note_id: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 213 | last_midi_ev_key: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/app/main_window.rs:563:8 [INFO] [stdout] | [INFO] [stdout] 217 | impl MainWindow { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 563 | fn midi_pos_to_ui_pos(&self, ui: &mut Ui, tick_pos: u32, key_pos: u8) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 594 | fn get_selection_range(&self) -> (u32, u32, u8, u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 741 | fn is_cursor_at_note_end( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1375 | fn delete_notes(&mut self, sel_ids: Arc>>) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1395 | fn delete_selected_notes(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1584 | fn duplicate_notes(&mut self, note_ids: Vec, paste_tick: MIDITick, track_src: u32, track_dst: u32, select_duplicate: bool) -> ... [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1686 | fn apply_ghost_notes(&mut self, action: EditorAction) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `load_texture` is never used [INFO] [stdout] --> src/app/rendering/buffers.rs:173:12 [INFO] [stdout] | [INFO] [stdout] 145 | impl Texture { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 173 | pub fn load_texture(&mut self, path: &str, width: i32, height: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NOTE_BORDER_DARKNESS` is never used [INFO] [stdout] --> src/app/rendering/piano_roll.rs:23:7 [INFO] [stdout] | [INFO] [stdout] 23 | const NOTE_BORDER_DARKNESS: f32 = 0.5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `NoteColor` is never used [INFO] [stdout] --> src/app/rendering/piano_roll.rs:36:10 [INFO] [stdout] | [INFO] [stdout] 36 | pub type NoteColor = [f32; 3]; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `started_playing`, `last_view_offset`, and `last_zoom` are never read [INFO] [stdout] --> src/app/rendering/piano_roll.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct PianoRollRenderer { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 94 | started_playing: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 95 | last_view_offset: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 96 | last_zoom: f32 [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `playback_manager` and `global_metas` are never read [INFO] [stdout] --> src/app/rendering/track_view.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct TrackViewRenderer { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 58 | pub navigation: Arc>, [INFO] [stdout] 59 | pub playback_manager: Arc>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | global_metas: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HANDLE_BUFFER_SIZE` is never used [INFO] [stdout] --> src/app/rendering/data_view.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const HANDLE_BUFFER_SIZE: usize = 4096; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HandleRect` is never used [INFO] [stdout] --> src/app/rendering/data_view.rs:29:10 [INFO] [stdout] | [INFO] [stdout] 29 | pub type HandleRect = [f32; 4]; // (tick, length, handle_center (0.0 -> 1.0), handle_value (0.0 -> 1.0)) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HandleColor` is never used [INFO] [stdout] --> src/app/rendering/data_view.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | pub type HandleColor = [f32; 3]; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RenderDataViewHandle` is never constructed [INFO] [stdout] --> src/app/rendering/data_view.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct RenderDataViewHandle(HandleRect, HandleColor); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `started_playing`, `last_view_offset`, and `last_zoom` are never read [INFO] [stdout] --> src/app/rendering/data_view.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 53 | pub struct DataViewRenderer { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 76 | started_playing: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 77 | last_view_offset: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 78 | last_zoom: f32 [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `GrayedOut` and `FullColor` are never constructed [INFO] [stdout] --> src/app/view_settings.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum VS_PianoRoll_OnionColoring { [INFO] [stdout] | -------------------------- variants in this enum [INFO] [stdout] 29 | GrayedOut, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 30 | PartialColor, [INFO] [stdout] 31 | FullColor [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `PitchBend` is never constructed [INFO] [stdout] --> src/app/view_settings.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum VS_PianoRoll_DataViewState { [INFO] [stdout] | -------------------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 45 | PitchBend [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VS_PianoRoll_DataViewState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `as_any`, `as_any_mut`, and `as_i32` are never used [INFO] [stdout] --> src/app/custom_widgets.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub trait NumberField { [INFO] [stdout] | ----------- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 10 | fn as_any(&self) -> &dyn Any; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 11 | fn as_any_mut(&mut self) -> &mut dyn Any; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | fn as_i32(&self) -> i32; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DARK` is never used [INFO] [stdout] --> src/app/shared.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const DARK: NoteColor = [0.75, 0.75, 0.75]; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DARKER` is never used [INFO] [stdout] --> src/app/shared.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub const DARKER: NoteColor = [0.5, 0.5, 0.5]; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DARKEST` is never used [INFO] [stdout] --> src/app/shared.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub const DARKEST: NoteColor = [0.25, 0.25, 0.25]; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WHITE` is never used [INFO] [stdout] --> src/app/shared.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | pub const WHITE: NoteColor = [1.0, 1.0, 1.0]; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BLACK` is never used [INFO] [stdout] --> src/app/shared.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | pub const BLACK: NoteColor = [0.0, 0.0, 0.0]; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SELECTED` is never used [INFO] [stdout] --> src/app/shared.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | pub const SELECTED: NoteColor = [1.0, 0.5, 0.5]; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Track` and `ChannelTrack` are never constructed [INFO] [stdout] --> src/app/shared.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 37 | pub enum NoteColorIndexing { [INFO] [stdout] | ----------------- variants in this enum [INFO] [stdout] 38 | Channel, [INFO] [stdout] 39 | Track, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 40 | ChannelTrack [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `note_colors` is never read [INFO] [stdout] --> src/app/shared.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct NoteColors { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 50 | note_colors: [[f32; 3]; 16], [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `with_index_type`, `get`, `get_mut`, and `get_and_mix` are never used [INFO] [stdout] --> src/app/shared.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 65 | impl NoteColors { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn with_index_type(gl: &Arc, index_type: NoteColorIndexing) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn get(&self, trk_chan: usize) -> &NoteColor { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn get_mut(&mut self, trk_chan: usize) -> &mut NoteColor { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 156 | pub fn get_and_mix(&self, trk_chan: usize, b: &NoteColor, factor: f32) -> NoteColor { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new`, `load`, and `store` are never used [INFO] [stdout] --> src/editor/util.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub trait AtomicMIDITick: Copy + Send + Sync + 'static { [INFO] [stdout] | -------------- associated functions in this trait [INFO] [stdout] ... [INFO] [stdout] 13 | fn new(val: Self) -> Self::Atomic; [INFO] [stdout] | ^^^ [INFO] [stdout] 14 | fn load(atom: &Self::Atomic, ord: AtomicOrdering) -> Self; [INFO] [stdout] | ^^^^ [INFO] [stdout] 15 | fn store(atom: &Self::Atomic, val: Self, ord: AtomicOrdering); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `move_element` is never used [INFO] [stdout] --> src/editor/util.rs:299:8 [INFO] [stdout] | [INFO] [stdout] 299 | pub fn move_element(v: &mut Vec, from: usize, to: usize) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_note_group` is never used [INFO] [stdout] --> src/editor/util.rs:307:8 [INFO] [stdout] | [INFO] [stdout] 307 | pub fn decode_note_group(note_group: u32) -> (u16, u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mul_rgb` is never used [INFO] [stdout] --> src/editor/util.rs:311:8 [INFO] [stdout] | [INFO] [stdout] 311 | pub fn mul_rgb(rgb: u32, val: f32) -> u32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_meta_next_tick` is never used [INFO] [stdout] --> src/editor/util.rs:318:8 [INFO] [stdout] | [INFO] [stdout] 318 | pub fn get_meta_next_tick(metas: &Vec, meta_type: MetaEventType, tick: MIDITick) -> Option<&MetaEvent> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `1` and `2` are never read [INFO] [stdout] --> src/editor/actions.rs:16:27 [INFO] [stdout] | [INFO] [stdout] 16 | Duplicate(Vec, MIDITick, u32, u32), // (note_ids, paste_tick, source track/channel, destination track/channel) [INFO] [stdout] | --------- ^^^^^^^^ ^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `EditorAction` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 16 - Duplicate(Vec, MIDITick, u32, u32), // (note_ids, paste_tick, source track/channel, destination track/channel) [INFO] [stdout] 16 + Duplicate(Vec, (), (), u32), // (note_ids, paste_tick, source track/channel, destination track/channel) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/editor/edit_functions.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl EditFunctions { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 27 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_values` is never used [INFO] [stdout] --> src/editor/settings/editor_settings.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub trait Settings { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] 8 | fn get_values(&self) -> HashMap<&str, Box>; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `hide` is never used [INFO] [stdout] --> src/editor/settings/project_settings.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl ProjectSettings { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn hide(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `is_mouse_over_ui` is never read [INFO] [stdout] --> src/editor/note_editing.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 52 | pub struct NoteEditing { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 63 | is_mouse_over_ui: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_ghost_notes` and `set_is_on_track_view` are never used [INFO] [stdout] --> src/editor/note_editing.rs:135:12 [INFO] [stdout] | [INFO] [stdout] 88 | impl NoteEditing { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn get_ghost_notes(&self) -> Arc>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | pub fn set_is_on_track_view(&mut self, is_on_track_view: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NOTE_EDIT_TRACK_VIEW` is never used [INFO] [stdout] --> src/editor/note_editing.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 12 | pub const NOTE_EDIT_TRACK_VIEW: u16 = 0x4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TrackEditing` is never constructed [INFO] [stdout] --> src/editor/track_editing.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct TrackEditing { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/editor/track_editing.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl TrackEditing { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 17 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Unlimited` is never constructed [INFO] [stdout] --> src/audio/event_playback.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 107 | enum MidiEventBatchSize { [INFO] [stdout] | ------------------ variant in this enum [INFO] [stdout] 108 | Unlimited, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MidiEventBatchSize` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_event_batch_size` is never used [INFO] [stdout] --> src/audio/event_playback.rs:249:12 [INFO] [stdout] | [INFO] [stdout] 143 | impl PlaybackManager { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 249 | pub fn set_event_batch_size(&mut self, size: MidiEventBatchSize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `supports_kdmapi` is never read [INFO] [stdout] --> src/audio/kdmapi_engine.rs:153:9 [INFO] [stdout] | [INFO] [stdout] 152 | pub struct KDMAPI { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 153 | supports_kdmapi: bool [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `init_audio` and `close_stream` are never used [INFO] [stdout] --> src/audio/midi_audio_engine.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub trait MIDIAudioEngine { [INFO] [stdout] | --------------- methods in this trait [INFO] [stdout] 2 | fn init_audio(&mut self); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 3 | fn close_stream(&mut self); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `raw_event` [INFO] [stdout] --> src/audio/kdmapi_engine.rs:169:34 [INFO] [stdout] | [INFO] [stdout] 169 | fn send_event(&mut self, raw_event: &[u8]) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_raw_event` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/audio/midi_devices.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 127 | self.connect_out_port(self.curr_midi_out_port.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 127 | let _ = self.connect_out_port(self.curr_midi_out_port.unwrap()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `MidiEventBatchSize` is more private than the item `PlaybackManager::set_event_batch_size` [INFO] [stdout] --> src/audio/event_playback.rs:249:5 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn set_event_batch_size(&mut self, size: MidiEventBatchSize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `PlaybackManager::set_event_batch_size` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `MidiEventBatchSize` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/audio/event_playback.rs:107:1 [INFO] [stdout] | [INFO] [stdout] 107 | enum MidiEventBatchSize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `NoteOff` and `NoteOn` are never constructed [INFO] [stdout] --> src/midi/events/channel_event.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum ChannelEventType { [INFO] [stdout] | ---------------- variants in this enum [INFO] [stdout] 4 | NoteOff(u8), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 5 | NoteOn(u8, u8), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EndOfTrack` and `SequencerSpecific` are never constructed [INFO] [stdout] --> src/midi/events/meta_event.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum MetaEventType { [INFO] [stdout] | ------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 17 | EndOfTrack = 0x2F, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | SequencerSpecific = 0x7F [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MetaEventType` 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: methods `start_mut`, `key_mut`, `velocity_mut`, `channel_mut`, `set_start`, and `set_end` are never used [INFO] [stdout] --> src/midi/events/note.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Note { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn start_mut(&mut self) -> &mut MIDITick { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn key_mut(&mut self) -> &mut u8 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn velocity_mut(&mut self) -> &mut u8 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn channel_mut(&mut self) -> &mut u8 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn set_start(&mut self, start: MIDITick) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn set_end(&mut self, end: MIDITick) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read_u8x3` is never used [INFO] [stdout] --> src/midi/io/buffered_reader.rs:124:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl BufferedByteReader { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn read_u8x3(&mut self) -> Result<(u8, u8, u8),()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TOOL_PENCIL_DRAGGING` is never used [INFO] [stdout] --> src/app/main_window.rs:47:7 [INFO] [stdout] | [INFO] [stdout] 47 | const TOOL_PENCIL_DRAGGING: u8 = 0x1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TOOL_PENCIL_LENGTH_CHANGE` is never used [INFO] [stdout] --> src/app/main_window.rs:48:7 [INFO] [stdout] | [INFO] [stdout] 48 | const TOOL_PENCIL_LENGTH_CHANGE: u8 = 0x2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TOOL_PENCIL_OVER_NOTE` is never used [INFO] [stdout] --> src/app/main_window.rs:49:7 [INFO] [stdout] | [INFO] [stdout] 49 | const TOOL_PENCIL_OVER_NOTE: u8 = 0x4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TOOL_PENCIL_ALL_FLAGS_EXCEPT_MULTIEDIT` is never used [INFO] [stdout] --> src/app/main_window.rs:50:7 [INFO] [stdout] | [INFO] [stdout] 50 | const TOOL_PENCIL_ALL_FLAGS_EXCEPT_MULTIEDIT: u8 = 0b111; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TOOL_PENCIL_MULTIEDIT` is never used [INFO] [stdout] --> src/app/main_window.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | const TOOL_PENCIL_MULTIEDIT: u8 = 0x10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TOOL_ERASER_ENABLE` is never used [INFO] [stdout] --> src/app/main_window.rs:53:7 [INFO] [stdout] | [INFO] [stdout] 53 | const TOOL_ERASER_ENABLE: u8 = 0x1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EDITOR_DEBUG` is never used [INFO] [stdout] --> src/app/main_window.rs:55:7 [INFO] [stdout] | [INFO] [stdout] 55 | const EDITOR_DEBUG: bool = true; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `flags` is never read [INFO] [stdout] --> src/app/main_window.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 88 | pub struct EditorToolSettings { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] 89 | curr_tool: EditorTool, [INFO] [stdout] 90 | flags: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `reset_flags` is never used [INFO] [stdout] --> src/app/main_window.rs:117:12 [INFO] [stdout] | [INFO] [stdout] 104 | impl EditorToolSettings { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn reset_flags(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/app/main_window.rs:173:5 [INFO] [stdout] | [INFO] [stdout] 139 | pub struct MainWindow { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 173 | is_dragging_notes: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 174 | old_note_lengths: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 175 | [INFO] [stdout] 176 | temp_del_notes: VecDeque, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 177 | // only use for *immediate* note modifications! [INFO] [stdout] 178 | temp_modifying_note_ids: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 179 | temp_note_positions: Vec<(u32, u8)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 180 | pub temp_selected_notes: Arc>>, [INFO] [stdout] 181 | drag_offset: i32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | selection_range: (u32, u32, u8, u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | dragged_from_ui: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 191 | draw_select_box: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | note_properties_popup_note_id: usize, // the id the popup is referring to [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | last_clicked_note_id: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 213 | last_midi_ev_key: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/app/main_window.rs:563:8 [INFO] [stdout] | [INFO] [stdout] 217 | impl MainWindow { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 563 | fn midi_pos_to_ui_pos(&self, ui: &mut Ui, tick_pos: u32, key_pos: u8) -> (f32, f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 594 | fn get_selection_range(&self) -> (u32, u32, u8, u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 741 | fn is_cursor_at_note_end( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1375 | fn delete_notes(&mut self, sel_ids: Arc>>) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1395 | fn delete_selected_notes(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1584 | fn duplicate_notes(&mut self, note_ids: Vec, paste_tick: MIDITick, track_src: u32, track_dst: u32, select_duplicate: bool) -> ... [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1686 | fn apply_ghost_notes(&mut self, action: EditorAction) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `load_texture` is never used [INFO] [stdout] --> src/app/rendering/buffers.rs:173:12 [INFO] [stdout] | [INFO] [stdout] 145 | impl Texture { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 173 | pub fn load_texture(&mut self, path: &str, width: i32, height: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NOTE_BORDER_DARKNESS` is never used [INFO] [stdout] --> src/app/rendering/piano_roll.rs:23:7 [INFO] [stdout] | [INFO] [stdout] 23 | const NOTE_BORDER_DARKNESS: f32 = 0.5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `NoteColor` is never used [INFO] [stdout] --> src/app/rendering/piano_roll.rs:36:10 [INFO] [stdout] | [INFO] [stdout] 36 | pub type NoteColor = [f32; 3]; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `started_playing`, `last_view_offset`, and `last_zoom` are never read [INFO] [stdout] --> src/app/rendering/piano_roll.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct PianoRollRenderer { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 94 | started_playing: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 95 | last_view_offset: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 96 | last_zoom: f32 [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `playback_manager` and `global_metas` are never read [INFO] [stdout] --> src/app/rendering/track_view.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct TrackViewRenderer { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 58 | pub navigation: Arc>, [INFO] [stdout] 59 | pub playback_manager: Arc>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | global_metas: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HANDLE_BUFFER_SIZE` is never used [INFO] [stdout] --> src/app/rendering/data_view.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const HANDLE_BUFFER_SIZE: usize = 4096; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HandleRect` is never used [INFO] [stdout] --> src/app/rendering/data_view.rs:29:10 [INFO] [stdout] | [INFO] [stdout] 29 | pub type HandleRect = [f32; 4]; // (tick, length, handle_center (0.0 -> 1.0), handle_value (0.0 -> 1.0)) [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `HandleColor` is never used [INFO] [stdout] --> src/app/rendering/data_view.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | pub type HandleColor = [f32; 3]; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RenderDataViewHandle` is never constructed [INFO] [stdout] --> src/app/rendering/data_view.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct RenderDataViewHandle(HandleRect, HandleColor); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `started_playing`, `last_view_offset`, and `last_zoom` are never read [INFO] [stdout] --> src/app/rendering/data_view.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 53 | pub struct DataViewRenderer { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 76 | started_playing: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 77 | last_view_offset: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 78 | last_zoom: f32 [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `GrayedOut` and `FullColor` are never constructed [INFO] [stdout] --> src/app/view_settings.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum VS_PianoRoll_OnionColoring { [INFO] [stdout] | -------------------------- variants in this enum [INFO] [stdout] 29 | GrayedOut, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 30 | PartialColor, [INFO] [stdout] 31 | FullColor [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `PitchBend` is never constructed [INFO] [stdout] --> src/app/view_settings.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum VS_PianoRoll_DataViewState { [INFO] [stdout] | -------------------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 45 | PitchBend [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VS_PianoRoll_DataViewState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `as_any`, `as_any_mut`, and `as_i32` are never used [INFO] [stdout] --> src/app/custom_widgets.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub trait NumberField { [INFO] [stdout] | ----------- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 10 | fn as_any(&self) -> &dyn Any; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 11 | fn as_any_mut(&mut self) -> &mut dyn Any; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | fn as_i32(&self) -> i32; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DARK` is never used [INFO] [stdout] --> src/app/shared.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const DARK: NoteColor = [0.75, 0.75, 0.75]; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DARKER` is never used [INFO] [stdout] --> src/app/shared.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub const DARKER: NoteColor = [0.5, 0.5, 0.5]; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DARKEST` is never used [INFO] [stdout] --> src/app/shared.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub const DARKEST: NoteColor = [0.25, 0.25, 0.25]; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WHITE` is never used [INFO] [stdout] --> src/app/shared.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | pub const WHITE: NoteColor = [1.0, 1.0, 1.0]; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BLACK` is never used [INFO] [stdout] --> src/app/shared.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | pub const BLACK: NoteColor = [0.0, 0.0, 0.0]; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SELECTED` is never used [INFO] [stdout] --> src/app/shared.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | pub const SELECTED: NoteColor = [1.0, 0.5, 0.5]; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Track` and `ChannelTrack` are never constructed [INFO] [stdout] --> src/app/shared.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 37 | pub enum NoteColorIndexing { [INFO] [stdout] | ----------------- variants in this enum [INFO] [stdout] 38 | Channel, [INFO] [stdout] 39 | Track, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 40 | ChannelTrack [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `note_colors` is never read [INFO] [stdout] --> src/app/shared.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 49 | pub struct NoteColors { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 50 | note_colors: [[f32; 3]; 16], [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `with_index_type`, `get`, `get_mut`, and `get_and_mix` are never used [INFO] [stdout] --> src/app/shared.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 65 | impl NoteColors { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn with_index_type(gl: &Arc, index_type: NoteColorIndexing) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn get(&self, trk_chan: usize) -> &NoteColor { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn get_mut(&mut self, trk_chan: usize) -> &mut NoteColor { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 156 | pub fn get_and_mix(&self, trk_chan: usize, b: &NoteColor, factor: f32) -> NoteColor { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new`, `load`, and `store` are never used [INFO] [stdout] --> src/editor/util.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub trait AtomicMIDITick: Copy + Send + Sync + 'static { [INFO] [stdout] | -------------- associated functions in this trait [INFO] [stdout] ... [INFO] [stdout] 13 | fn new(val: Self) -> Self::Atomic; [INFO] [stdout] | ^^^ [INFO] [stdout] 14 | fn load(atom: &Self::Atomic, ord: AtomicOrdering) -> Self; [INFO] [stdout] | ^^^^ [INFO] [stdout] 15 | fn store(atom: &Self::Atomic, val: Self, ord: AtomicOrdering); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `move_element` is never used [INFO] [stdout] --> src/editor/util.rs:299:8 [INFO] [stdout] | [INFO] [stdout] 299 | pub fn move_element(v: &mut Vec, from: usize, to: usize) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decode_note_group` is never used [INFO] [stdout] --> src/editor/util.rs:307:8 [INFO] [stdout] | [INFO] [stdout] 307 | pub fn decode_note_group(note_group: u32) -> (u16, u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mul_rgb` is never used [INFO] [stdout] --> src/editor/util.rs:311:8 [INFO] [stdout] | [INFO] [stdout] 311 | pub fn mul_rgb(rgb: u32, val: f32) -> u32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_meta_next_tick` is never used [INFO] [stdout] --> src/editor/util.rs:318:8 [INFO] [stdout] | [INFO] [stdout] 318 | pub fn get_meta_next_tick(metas: &Vec, meta_type: MetaEventType, tick: MIDITick) -> Option<&MetaEvent> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `1` and `2` are never read [INFO] [stdout] --> src/editor/actions.rs:16:27 [INFO] [stdout] | [INFO] [stdout] 16 | Duplicate(Vec, MIDITick, u32, u32), // (note_ids, paste_tick, source track/channel, destination track/channel) [INFO] [stdout] | --------- ^^^^^^^^ ^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `EditorAction` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 16 - Duplicate(Vec, MIDITick, u32, u32), // (note_ids, paste_tick, source track/channel, destination track/channel) [INFO] [stdout] 16 + Duplicate(Vec, (), (), u32), // (note_ids, paste_tick, source track/channel, destination track/channel) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/editor/edit_functions.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl EditFunctions { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 27 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_values` is never used [INFO] [stdout] --> src/editor/settings/editor_settings.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub trait Settings { [INFO] [stdout] | -------- method in this trait [INFO] [stdout] 8 | fn get_values(&self) -> HashMap<&str, Box>; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `hide` is never used [INFO] [stdout] --> src/editor/settings/project_settings.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl ProjectSettings { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn hide(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `is_mouse_over_ui` is never read [INFO] [stdout] --> src/editor/note_editing.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 52 | pub struct NoteEditing { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 63 | is_mouse_over_ui: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_ghost_notes` and `set_is_on_track_view` are never used [INFO] [stdout] --> src/editor/note_editing.rs:135:12 [INFO] [stdout] | [INFO] [stdout] 88 | impl NoteEditing { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn get_ghost_notes(&self) -> Arc>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | pub fn set_is_on_track_view(&mut self, is_on_track_view: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NOTE_EDIT_TRACK_VIEW` is never used [INFO] [stdout] --> src/editor/note_editing.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 12 | pub const NOTE_EDIT_TRACK_VIEW: u16 = 0x4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TrackEditing` is never constructed [INFO] [stdout] --> src/editor/track_editing.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct TrackEditing { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/editor/track_editing.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl TrackEditing { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 17 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Unlimited` is never constructed [INFO] [stdout] --> src/audio/event_playback.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 107 | enum MidiEventBatchSize { [INFO] [stdout] | ------------------ variant in this enum [INFO] [stdout] 108 | Unlimited, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MidiEventBatchSize` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_event_batch_size` is never used [INFO] [stdout] --> src/audio/event_playback.rs:249:12 [INFO] [stdout] | [INFO] [stdout] 143 | impl PlaybackManager { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 249 | pub fn set_event_batch_size(&mut self, size: MidiEventBatchSize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `supports_kdmapi` is never read [INFO] [stdout] --> src/audio/kdmapi_engine.rs:153:9 [INFO] [stdout] | [INFO] [stdout] 152 | pub struct KDMAPI { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 153 | supports_kdmapi: bool [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `init_audio` and `close_stream` are never used [INFO] [stdout] --> src/audio/midi_audio_engine.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub trait MIDIAudioEngine { [INFO] [stdout] | --------------- methods in this trait [INFO] [stdout] 2 | fn init_audio(&mut self); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 3 | fn close_stream(&mut self); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/audio/midi_devices.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 127 | self.connect_out_port(self.curr_midi_out_port.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 127 | let _ = self.connect_out_port(self.curr_midi_out_port.unwrap()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 21s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: ashpd v0.8.1 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "db781358e77a893ec79a03976a2a975f60cb9cb7f74b2d186f3f14b9a6880613", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "db781358e77a893ec79a03976a2a975f60cb9cb7f74b2d186f3f14b9a6880613", kill_on_drop: false }` [INFO] [stdout] db781358e77a893ec79a03976a2a975f60cb9cb7f74b2d186f3f14b9a6880613