[INFO] cloning repository https://github.com/kennoath/reeser
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kennoath/reeser" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkennoath%2Freeser", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkennoath%2Freeser'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9d1abf7d35be31d38807ceebf53393e31dcd83cb
[INFO] testing kennoath/reeser against beta-2026-03-05 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkennoath%2Freeser" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kennoath/reeser
[INFO] finished tweaking git repo https://github.com/kennoath/reeser
[INFO] tweaked toml for git repo https://github.com/kennoath/reeser written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kennoath/reeser on toolchain beta-2026-03-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kennoath/reeser 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" "+beta-2026-03-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 72eab5097dd3030056dfa932079651c8794a9839efed2649ec6f25f95fe93639
[INFO] running `Command { std: "docker" "start" "-a" "72eab5097dd3030056dfa932079651c8794a9839efed2649ec6f25f95fe93639", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "72eab5097dd3030056dfa932079651c8794a9839efed2649ec6f25f95fe93639", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "72eab5097dd3030056dfa932079651c8794a9839efed2649ec6f25f95fe93639", kill_on_drop: false }`
[INFO] [stdout] 72eab5097dd3030056dfa932079651c8794a9839efed2649ec6f25f95fe93639
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 170d6208111d17cc9ca045baac0dcec5b671e56060324a418495f40bc7a2f255
[INFO] running `Command { std: "docker" "start" "-a" "170d6208111d17cc9ca045baac0dcec5b671e56060324a418495f40bc7a2f255", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.126
[INFO] [stderr]    Compiling proc-macro2 v1.0.40
[INFO] [stderr]    Compiling unicode-ident v1.0.2
[INFO] [stderr]    Compiling quote v1.0.20
[INFO] [stderr]    Compiling pkg-config v0.3.25
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling smallvec v1.9.0
[INFO] [stderr]    Compiling libloading v0.7.3
[INFO] [stderr]    Compiling khronos_api v3.1.0
[INFO] [stderr]    Compiling dlib v0.5.0
[INFO] [stderr]    Compiling syn v1.0.98
[INFO] [stderr]    Compiling once_cell v1.13.0
[INFO] [stderr]    Compiling scoped-tls v1.0.0
[INFO] [stderr]    Compiling lock_api v0.4.7
[INFO] [stderr]    Compiling instant v0.1.12
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling backtrace v0.3.66
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling wayland-sys v0.29.4
[INFO] [stderr]    Compiling x11-dl v2.19.1
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling smithay-client-toolkit v0.15.4
[INFO] [stderr]    Compiling miniz_oxide v0.5.3
[INFO] [stderr]    Compiling wayland-scanner v0.29.4
[INFO] [stderr]    Compiling unicode-xid v0.2.3
[INFO] [stderr]    Compiling nom v7.1.1
[INFO] [stderr]    Compiling gimli v0.26.2
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.7
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.5
[INFO] [stderr]    Compiling object v0.29.0
[INFO] [stderr]    Compiling nix v0.22.3
[INFO] [stderr]    Compiling wayland-client v0.29.4
[INFO] [stderr]    Compiling wayland-protocols v0.29.4
[INFO] [stderr]    Compiling parking_lot_core v0.8.5
[INFO] [stderr]    Compiling parking_lot v0.11.2
[INFO] [stderr]    Compiling xcursor v0.3.4
[INFO] [stderr]    Compiling addr2line v0.17.0
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling memmap2 v0.3.1
[INFO] [stderr]    Compiling indexmap v1.9.1
[INFO] [stderr]    Compiling cty v0.2.2
[INFO] [stderr]    Compiling winit v0.26.1
[INFO] [stderr]    Compiling raw-window-handle v0.4.3
[INFO] [stderr]    Compiling nix v0.23.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.31
[INFO] [stderr]    Compiling shared_library v0.1.9
[INFO] [stderr]    Compiling mio v0.8.4
[INFO] [stderr]    Compiling os_str_bytes v6.2.0
[INFO] [stderr]    Compiling cpal v0.13.5
[INFO] [stderr]    Compiling strength_reduce v0.2.3
[INFO] [stderr]    Compiling anyhow v1.0.58
[INFO] [stderr]    Compiling wayland-commons v0.29.4
[INFO] [stderr]    Compiling calloop v0.9.3
[INFO] [stderr]    Compiling thiserror v1.0.31
[INFO] [stderr]    Compiling failure v0.1.8
[INFO] [stderr]    Compiling transpose v0.2.1
[INFO] [stderr]    Compiling clap_lex v0.2.4
[INFO] [stderr]    Compiling deflate v1.0.0
[INFO] [stderr]    Compiling osmesa-sys v0.1.2
[INFO] [stderr]    Compiling primal-check v0.3.1
[INFO] [stderr]    Compiling num-complex v0.4.2
[INFO] [stderr]    Compiling svg v0.7.2
[INFO] [stderr]    Compiling cache-padded v1.2.0
[INFO] [stderr]    Compiling textwrap v0.15.0
[INFO] [stderr]    Compiling rustfft v6.0.1
[INFO] [stderr]    Compiling plotlib v0.5.1
[INFO] [stderr]    Compiling clap v3.2.13
[INFO] [stderr]    Compiling png v0.17.5
[INFO] [stderr]    Compiling ringbuf v0.2.8
[INFO] [stderr]    Compiling wayland-cursor v0.29.4
[INFO] [stderr]    Compiling wayland-egl v0.29.4
[INFO] [stderr]    Compiling glow v0.11.2
[INFO] [stderr]    Compiling alsa v0.6.0
[INFO] [stderr]    Compiling hound v3.4.0
[INFO] [stderr]    Compiling assert_hex v0.2.2
[INFO] [stderr]    Compiling glutin v0.28.0
[INFO] [stderr]    Compiling reeser v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/kimg.rs:54:34
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let mut data = vec![0u8; (3*self.w*self.h)];
[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] 54 -         let mut data = vec![0u8; (3*self.w*self.h)];
[INFO] [stdout] 54 +         let mut data = vec![0u8; 3*self.w*self.h ];
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/kimg.rs:159:34
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let mut data = vec![0u8; (4*self.w*self.h)];
[INFO] [stdout]     |                                  ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 159 -         let mut data = vec![0u8; (4*self.w*self.h)];
[INFO] [stdout] 159 +         let mut data = vec![0u8; 4*self.w*self.h ];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/kinput.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[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: `glutin::event::MouseButton`
[INFO] [stdout]   --> src/kinput.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use glutin::event::MouseButton;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::kmath::*`
[INFO] [stdout]  --> src/application.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::kmath::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]   --> src/application.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::f32::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::filter::*`
[INFO] [stdout]   --> src/application.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::filter::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `plotlib::page::Page`
[INFO] [stdout]  --> src/filter.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use plotlib::page::Page;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `plotlib::repr::Plot`
[INFO] [stdout]   --> src/filter.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use plotlib::repr::Plot;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `plotlib::view::ContinuousView`
[INFO] [stdout]   --> src/filter.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use plotlib::view::ContinuousView;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PointMarker` and `PointStyle`
[INFO] [stdout]   --> src/filter.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | use plotlib::style::{PointMarker, PointStyle};
[INFO] [stdout]    |                      ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/filter.rs:113:50
[INFO] [stdout]     |
[INFO] [stdout] 113 |             acc += self.coeffs[i] * self.samples[((self.head + self.len - i) % self.len)];
[INFO] [stdout]     |                                                  ^                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 113 -             acc += self.coeffs[i] * self.samples[((self.head + self.len - i) % self.len)];
[INFO] [stdout] 113 +             acc += self.coeffs[i] * self.samples[(self.head + self.len - i) % self.len ];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]  --> src/sound.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::f32::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::kmath::*`
[INFO] [stdout]  --> src/sound.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::kmath::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::kmath::*`
[INFO] [stdout]   --> src/main.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | use crate::kmath::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::synth::*`
[INFO] [stdout]   --> src/main.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | use crate::synth::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DeviceTrait`, `HostTrait`, and `StreamTrait`
[INFO] [stdout]   --> src/main.rs:61:20
[INFO] [stdout]    |
[INFO] [stdout] 61 | use cpal::traits::{DeviceTrait, HostTrait, StreamTrait};
[INFO] [stdout]    |                    ^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/main.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | /     event_loop.run(move |event, _, control_flow| {
[INFO] [stdout] 68 | |         application.handle_event(&event);
[INFO] [stdout] 69 | |         match event {
[INFO] [stdout] 70 | |             Event::LoopDestroyed |
[INFO] [stdout] ...  |
[INFO] [stdout] 77 | |     });
[INFO] [stdout]    | |______- any code following this expression is unreachable
[INFO] [stdout] 78 |       Ok(())
[INFO] [stdout]    |       ^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/application.rs:70:14
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let (mut prod, mut cons) = rb.split();
[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/application.rs:70:24
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let (mut prod, mut cons) = rb.split();
[INFO] [stdout]    |                        ----^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/application.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |             _ => {},
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/application.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout]  93 |                 WindowEvent::Resized(physical_size) => {
[INFO] [stdout]     |                 ----------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  99 |                 _ => {},
[INFO] [stdout]     |                 - matches some of the same values
[INFO] [stdout] 100 |             _ => {},
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/synth.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |         for i in 0..ticks as i32 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `slider_t` is never read
[INFO] [stdout]    --> src/synth.rs:141:24
[INFO] [stdout]     |
[INFO] [stdout] 141 |     let mut slider_t = 0.0f32;
[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: unused variable: `k`
[INFO] [stdout]   --> src/sound.rs:76:54
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub fn detune_voice_n(freq: f32, cents: f32, n: i32, k: i32) -> f32 {
[INFO] [stdout]    |                                                      ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smoothstep` is never used
[INFO] [stdout]  --> src/kmath.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn smoothstep(x1: f32, x2: f32, t: f32) -> f32 {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remap` is never used
[INFO] [stdout]   --> src/kmath.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn remap(x: f32, from_low: f32, from_high: f32, to_low: f32, to_high: f32) -> f32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cubic_bezier` is never used
[INFO] [stdout]   --> src/kmath.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn cubic_bezier(start: Vec2, c1: Vec2, c2: Vec2, end: Vec2, t: f32) -> Vec2 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `krand` is never used
[INFO] [stdout]   --> src/kmath.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn krand(seed: u32) -> f32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kuniform` is never used
[INFO] [stdout]   --> src/kmath.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn kuniform(seed: u32, min: f32, max: f32) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chance` is never used
[INFO] [stdout]   --> src/kmath.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn chance(seed: u32, percent: f32) -> bool {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImageBuffer` is never constructed
[INFO] [stdout]  --> src/kimg.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct ImageBuffer {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_px`, `get_px`, `new_from_file`, and `dump_to_file` are never used
[INFO] [stdout]   --> src/kimg.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl ImageBuffer {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 15 |     pub fn new(w: usize, h: usize) -> ImageBuffer {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn set_px(&mut self, x: usize, y: usize, val: (u8, u8, u8)) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn get_px(&self, x: usize, y: usize) -> (u8, u8, u8) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn new_from_file(path_str: &str) -> ImageBuffer {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn dump_to_file(&self, path_str: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_px`, `bytes_transpose`, and `dump_to_file` are never used
[INFO] [stdout]    --> src/kimg.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout]  92 | impl ImageBufferA {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn get_px(&self, x: usize, y: usize) -> (u8, u8, u8, u8) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn bytes_transpose(&self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn dump_to_file(&self, path_str: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `key_falling` is never used
[INFO] [stdout]   --> src/kinput.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl FrameInputState {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn key_falling(&self, keycode: VirtualKeyCode) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `destroy` is never used
[INFO] [stdout]   --> src/krenderer.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl KRenderer {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn destroy(&self, gl: &glow::Context) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `poly` and `circle` are never used
[INFO] [stdout]    --> src/krenderer.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl KRCanvas {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn poly(&mut self, center: Vec2, radius: f32, n_sides: i32) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn circle(&mut self, center: Vec2, radius: f32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `destroy` is never used
[INFO] [stdout]    --> src/application.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl Application {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn destroy(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sample_rate` is never read
[INFO] [stdout]    --> src/application.rs:237:9
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub struct SampleRequestOptions {
[INFO] [stdout]     |            -------------------- field in this struct
[INFO] [stdout] 237 |     pub sample_rate: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `any_change` is never read
[INFO] [stdout]   --> src/synth.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Synth {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub any_change: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/filter.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl Filter {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 38 |     pub fn new() -> Filter {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `but` is never used
[INFO] [stdout]   --> src/sound.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Sound {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn but(&self, f: fn(&mut Sound)) -> Sound {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blackman` is never used
[INFO] [stdout]  --> src/fftviewer.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn blackman(n: usize, N: usize) -> f32 {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `text_clip` should have an upper case name
[INFO] [stdout]  --> src/krenderer.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const text_clip: Rect = Rect {x: 0.0, y: 6.0/10.0, w: 14.0/20.0, h: 1.5/10.0};
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 7 - pub const text_clip: Rect = Rect {x: 0.0, y: 6.0/10.0, w: 14.0/20.0, h: 1.5/10.0};
[INFO] [stdout] 7 + pub const TEXT_CLIP: Rect = Rect {x: 0.0, y: 6.0/10.0, w: 14.0/20.0, h: 1.5/10.0};
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `text_aspect` should have an upper case name
[INFO] [stdout]  --> src/krenderer.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const text_aspect: f32 = 7./8.;
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 8 - pub const text_aspect: f32 = 7./8.;
[INFO] [stdout] 8 + pub const TEXT_ASPECT: f32 = 7./8.;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused bitwise operation that must be used
[INFO] [stdout]   --> src/synth.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 | /         label_slider("voices", mids[0], 1.0, 9.0, &mut self.voices, false, inputs, kc) |
[INFO] [stdout] 69 | |         label_slider("detune", mids[1], 0.0, 316.0, &mut self.detune, false, inputs, kc) |
[INFO] [stdout] 70 | |         label_slider("volume", mids[2], 0.0, 1.0, &mut self.sound.amplitude, false, inputs, kc);
[INFO] [stdout]    | |_______________________________________________________________________________________________^ the bitwise operation produces a value
[INFO] [stdout]    |
[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] 68 |         let _ = label_slider("voices", mids[0], 1.0, 9.0, &mut self.voices, false, inputs, kc) |
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/synth.rs:93:17
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 sound_channel.push(SoundMessage::PlaySound(s, ke.uid));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 let _ = sound_channel.push(SoundMessage::PlaySound(s, ke.uid));
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/synth.rs:96:17
[INFO] [stdout]    |
[INFO] [stdout] 96 |                 sound_channel.push(SoundMessage::StopSound(ke.uid));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 96 |                 let _ = sound_channel.push(SoundMessage::StopSound(ke.uid));
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/filter.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let N = w.len();
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `keys` should have an upper case name
[INFO] [stdout]  --> src/keyboard.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const keys: [VirtualKeyCode; 23] = [
[INFO] [stdout]   |       ^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 6 - const keys: [VirtualKeyCode; 23] = [
[INFO] [stdout] 6 + const KEYS: [VirtualKeyCode; 23] = [
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `white_keys` should have an upper case name
[INFO] [stdout]   --> src/keyboard.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const white_keys: [VirtualKeyCode; 14] = [
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 31 - const white_keys: [VirtualKeyCode; 14] = [
[INFO] [stdout] 31 + const WHITE_KEYS: [VirtualKeyCode; 14] = [
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `black_keys` should have an upper case name
[INFO] [stdout]   --> src/keyboard.rs:47:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | const black_keys: [VirtualKeyCode; 9] = [
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 47 - const black_keys: [VirtualKeyCode; 9] = [
[INFO] [stdout] 47 + const BLACK_KEYS: [VirtualKeyCode; 9] = [
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]  --> src/fftviewer.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn blackman(n: usize, N: usize) -> f32 {
[INFO] [stdout]   |                           ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> src/envelope.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let A = self.a * sample_rate as f32;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `D` should have a snake case name
[INFO] [stdout]   --> src/envelope.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let D = self.d * sample_rate as f32;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `S` should have a snake case name
[INFO] [stdout]   --> src/envelope.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let S = self.s;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> src/envelope.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let R = self.r * sample_rate as f32;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 47s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: svg v0.7.2
[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" "170d6208111d17cc9ca045baac0dcec5b671e56060324a418495f40bc7a2f255", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "170d6208111d17cc9ca045baac0dcec5b671e56060324a418495f40bc7a2f255", kill_on_drop: false }`
[INFO] [stdout] 170d6208111d17cc9ca045baac0dcec5b671e56060324a418495f40bc7a2f255
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0a73b663873a7a36bd54c46bcd3b65feebff8137303ac6131582e38bbd1f5e74
[INFO] running `Command { std: "docker" "start" "-a" "0a73b663873a7a36bd54c46bcd3b65feebff8137303ac6131582e38bbd1f5e74", kill_on_drop: false }`
[INFO] [stderr]    Compiling reeser v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/kimg.rs:54:34
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let mut data = vec![0u8; (3*self.w*self.h)];
[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] 54 -         let mut data = vec![0u8; (3*self.w*self.h)];
[INFO] [stdout] 54 +         let mut data = vec![0u8; 3*self.w*self.h ];
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/kimg.rs:159:34
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let mut data = vec![0u8; (4*self.w*self.h)];
[INFO] [stdout]     |                                  ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 159 -         let mut data = vec![0u8; (4*self.w*self.h)];
[INFO] [stdout] 159 +         let mut data = vec![0u8; 4*self.w*self.h ];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/kinput.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[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: `glutin::event::MouseButton`
[INFO] [stdout]   --> src/kinput.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use glutin::event::MouseButton;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::kmath::*`
[INFO] [stdout]  --> src/application.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::kmath::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]   --> src/application.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::f32::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::filter::*`
[INFO] [stdout]   --> src/application.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::filter::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `plotlib::page::Page`
[INFO] [stdout]  --> src/filter.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use plotlib::page::Page;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `plotlib::repr::Plot`
[INFO] [stdout]   --> src/filter.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use plotlib::repr::Plot;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `plotlib::view::ContinuousView`
[INFO] [stdout]   --> src/filter.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use plotlib::view::ContinuousView;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PointMarker` and `PointStyle`
[INFO] [stdout]   --> src/filter.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | use plotlib::style::{PointMarker, PointStyle};
[INFO] [stdout]    |                      ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/filter.rs:113:50
[INFO] [stdout]     |
[INFO] [stdout] 113 |             acc += self.coeffs[i] * self.samples[((self.head + self.len - i) % self.len)];
[INFO] [stdout]     |                                                  ^                                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 113 -             acc += self.coeffs[i] * self.samples[((self.head + self.len - i) % self.len)];
[INFO] [stdout] 113 +             acc += self.coeffs[i] * self.samples[(self.head + self.len - i) % self.len ];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]  --> src/sound.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::f32::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::kmath::*`
[INFO] [stdout]  --> src/sound.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::kmath::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::kmath::*`
[INFO] [stdout]   --> src/main.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | use crate::kmath::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::synth::*`
[INFO] [stdout]   --> src/main.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | use crate::synth::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DeviceTrait`, `HostTrait`, and `StreamTrait`
[INFO] [stdout]   --> src/main.rs:61:20
[INFO] [stdout]    |
[INFO] [stdout] 61 | use cpal::traits::{DeviceTrait, HostTrait, StreamTrait};
[INFO] [stdout]    |                    ^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/main.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | /     event_loop.run(move |event, _, control_flow| {
[INFO] [stdout] 68 | |         application.handle_event(&event);
[INFO] [stdout] 69 | |         match event {
[INFO] [stdout] 70 | |             Event::LoopDestroyed |
[INFO] [stdout] ...  |
[INFO] [stdout] 77 | |     });
[INFO] [stdout]    | |______- any code following this expression is unreachable
[INFO] [stdout] 78 |       Ok(())
[INFO] [stdout]    |       ^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/application.rs:70:14
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let (mut prod, mut cons) = rb.split();
[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/application.rs:70:24
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let (mut prod, mut cons) = rb.split();
[INFO] [stdout]    |                        ----^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/application.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |             _ => {},
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/application.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout]  93 |                 WindowEvent::Resized(physical_size) => {
[INFO] [stdout]     |                 ----------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  99 |                 _ => {},
[INFO] [stdout]     |                 - matches some of the same values
[INFO] [stdout] 100 |             _ => {},
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/synth.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |         for i in 0..ticks as i32 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `slider_t` is never read
[INFO] [stdout]    --> src/synth.rs:141:24
[INFO] [stdout]     |
[INFO] [stdout] 141 |     let mut slider_t = 0.0f32;
[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: unused variable: `k`
[INFO] [stdout]   --> src/sound.rs:76:54
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub fn detune_voice_n(freq: f32, cents: f32, n: i32, k: i32) -> f32 {
[INFO] [stdout]    |                                                      ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smoothstep` is never used
[INFO] [stdout]  --> src/kmath.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn smoothstep(x1: f32, x2: f32, t: f32) -> f32 {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remap` is never used
[INFO] [stdout]   --> src/kmath.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn remap(x: f32, from_low: f32, from_high: f32, to_low: f32, to_high: f32) -> f32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cubic_bezier` is never used
[INFO] [stdout]   --> src/kmath.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn cubic_bezier(start: Vec2, c1: Vec2, c2: Vec2, end: Vec2, t: f32) -> Vec2 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `krand` is never used
[INFO] [stdout]   --> src/kmath.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn krand(seed: u32) -> f32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kuniform` is never used
[INFO] [stdout]   --> src/kmath.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn kuniform(seed: u32, min: f32, max: f32) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chance` is never used
[INFO] [stdout]   --> src/kmath.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn chance(seed: u32, percent: f32) -> bool {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImageBuffer` is never constructed
[INFO] [stdout]  --> src/kimg.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct ImageBuffer {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_px`, `get_px`, `new_from_file`, and `dump_to_file` are never used
[INFO] [stdout]   --> src/kimg.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl ImageBuffer {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 15 |     pub fn new(w: usize, h: usize) -> ImageBuffer {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn set_px(&mut self, x: usize, y: usize, val: (u8, u8, u8)) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn get_px(&self, x: usize, y: usize) -> (u8, u8, u8) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn new_from_file(path_str: &str) -> ImageBuffer {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn dump_to_file(&self, path_str: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_px`, `bytes_transpose`, and `dump_to_file` are never used
[INFO] [stdout]    --> src/kimg.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout]  92 | impl ImageBufferA {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn get_px(&self, x: usize, y: usize) -> (u8, u8, u8, u8) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn bytes_transpose(&self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn dump_to_file(&self, path_str: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `key_falling` is never used
[INFO] [stdout]   --> src/kinput.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl FrameInputState {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn key_falling(&self, keycode: VirtualKeyCode) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `destroy` is never used
[INFO] [stdout]   --> src/krenderer.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl KRenderer {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn destroy(&self, gl: &glow::Context) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `poly` and `circle` are never used
[INFO] [stdout]    --> src/krenderer.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl KRCanvas {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn poly(&mut self, center: Vec2, radius: f32, n_sides: i32) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn circle(&mut self, center: Vec2, radius: f32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `destroy` is never used
[INFO] [stdout]    --> src/application.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl Application {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn destroy(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sample_rate` is never read
[INFO] [stdout]    --> src/application.rs:237:9
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub struct SampleRequestOptions {
[INFO] [stdout]     |            -------------------- field in this struct
[INFO] [stdout] 237 |     pub sample_rate: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `any_change` is never read
[INFO] [stdout]   --> src/synth.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Synth {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub any_change: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/filter.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl Filter {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 38 |     pub fn new() -> Filter {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `but` is never used
[INFO] [stdout]   --> src/sound.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Sound {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn but(&self, f: fn(&mut Sound)) -> Sound {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blackman` is never used
[INFO] [stdout]  --> src/fftviewer.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn blackman(n: usize, N: usize) -> f32 {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `text_clip` should have an upper case name
[INFO] [stdout]  --> src/krenderer.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const text_clip: Rect = Rect {x: 0.0, y: 6.0/10.0, w: 14.0/20.0, h: 1.5/10.0};
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 7 - pub const text_clip: Rect = Rect {x: 0.0, y: 6.0/10.0, w: 14.0/20.0, h: 1.5/10.0};
[INFO] [stdout] 7 + pub const TEXT_CLIP: Rect = Rect {x: 0.0, y: 6.0/10.0, w: 14.0/20.0, h: 1.5/10.0};
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `text_aspect` should have an upper case name
[INFO] [stdout]  --> src/krenderer.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const text_aspect: f32 = 7./8.;
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 8 - pub const text_aspect: f32 = 7./8.;
[INFO] [stdout] 8 + pub const TEXT_ASPECT: f32 = 7./8.;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused bitwise operation that must be used
[INFO] [stdout]   --> src/synth.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 | /         label_slider("voices", mids[0], 1.0, 9.0, &mut self.voices, false, inputs, kc) |
[INFO] [stdout] 69 | |         label_slider("detune", mids[1], 0.0, 316.0, &mut self.detune, false, inputs, kc) |
[INFO] [stdout] 70 | |         label_slider("volume", mids[2], 0.0, 1.0, &mut self.sound.amplitude, false, inputs, kc);
[INFO] [stdout]    | |_______________________________________________________________________________________________^ the bitwise operation produces a value
[INFO] [stdout]    |
[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] 68 |         let _ = label_slider("voices", mids[0], 1.0, 9.0, &mut self.voices, false, inputs, kc) |
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/synth.rs:93:17
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 sound_channel.push(SoundMessage::PlaySound(s, ke.uid));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 let _ = sound_channel.push(SoundMessage::PlaySound(s, ke.uid));
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/synth.rs:96:17
[INFO] [stdout]    |
[INFO] [stdout] 96 |                 sound_channel.push(SoundMessage::StopSound(ke.uid));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 96 |                 let _ = sound_channel.push(SoundMessage::StopSound(ke.uid));
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]   --> src/filter.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let N = w.len();
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `n`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `keys` should have an upper case name
[INFO] [stdout]  --> src/keyboard.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const keys: [VirtualKeyCode; 23] = [
[INFO] [stdout]   |       ^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]   |
[INFO] [stdout] 6 - const keys: [VirtualKeyCode; 23] = [
[INFO] [stdout] 6 + const KEYS: [VirtualKeyCode; 23] = [
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `white_keys` should have an upper case name
[INFO] [stdout]   --> src/keyboard.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const white_keys: [VirtualKeyCode; 14] = [
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 31 - const white_keys: [VirtualKeyCode; 14] = [
[INFO] [stdout] 31 + const WHITE_KEYS: [VirtualKeyCode; 14] = [
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `black_keys` should have an upper case name
[INFO] [stdout]   --> src/keyboard.rs:47:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | const black_keys: [VirtualKeyCode; 9] = [
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 47 - const black_keys: [VirtualKeyCode; 9] = [
[INFO] [stdout] 47 + const BLACK_KEYS: [VirtualKeyCode; 9] = [
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `N` should have a snake case name
[INFO] [stdout]  --> src/fftviewer.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn blackman(n: usize, N: usize) -> f32 {
[INFO] [stdout]   |                           ^ help: convert the identifier to snake case: `n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> src/envelope.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let A = self.a * sample_rate as f32;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `D` should have a snake case name
[INFO] [stdout]   --> src/envelope.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let D = self.d * sample_rate as f32;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `S` should have a snake case name
[INFO] [stdout]   --> src/envelope.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let S = self.s;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> src/envelope.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let R = self.r * sample_rate as f32;
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.14s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: svg v0.7.2
[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" "0a73b663873a7a36bd54c46bcd3b65feebff8137303ac6131582e38bbd1f5e74", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0a73b663873a7a36bd54c46bcd3b65feebff8137303ac6131582e38bbd1f5e74", kill_on_drop: false }`
[INFO] [stdout] 0a73b663873a7a36bd54c46bcd3b65feebff8137303ac6131582e38bbd1f5e74
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 01f56a5404fb97618b3a64da5b712988787d9009368a452483826b2f56c4e34a
[INFO] running `Command { std: "docker" "start" "-a" "01f56a5404fb97618b3a64da5b712988787d9009368a452483826b2f56c4e34a", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]   --> src/kimg.rs:54:34
[INFO] [stderr]    |
[INFO] [stderr] 54 |         let mut data = vec![0u8; (3*self.w*self.h)];
[INFO] [stderr]    |                                  ^               ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 54 -         let mut data = vec![0u8; (3*self.w*self.h)];
[INFO] [stderr] 54 +         let mut data = vec![0u8; 3*self.w*self.h ];
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> src/kimg.rs:159:34
[INFO] [stderr]     |
[INFO] [stderr] 159 |         let mut data = vec![0u8; (4*self.w*self.h)];
[INFO] [stderr]     |                                  ^               ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 159 -         let mut data = vec![0u8; (4*self.w*self.h)];
[INFO] [stderr] 159 +         let mut data = vec![0u8; 4*self.w*self.h ];
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/kinput.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `glutin::event::MouseButton`
[INFO] [stderr]   --> src/kinput.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use glutin::event::MouseButton;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::kmath::*`
[INFO] [stderr]  --> src/application.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::kmath::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::f32::consts::PI`
[INFO] [stderr]   --> src/application.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use std::f32::consts::PI;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::filter::*`
[INFO] [stderr]   --> src/application.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use crate::filter::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `plotlib::page::Page`
[INFO] [stderr]  --> src/filter.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use plotlib::page::Page;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `plotlib::repr::Plot`
[INFO] [stderr]   --> src/filter.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use plotlib::repr::Plot;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `plotlib::view::ContinuousView`
[INFO] [stderr]   --> src/filter.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use plotlib::view::ContinuousView;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `PointMarker` and `PointStyle`
[INFO] [stderr]   --> src/filter.rs:12:22
[INFO] [stderr]    |
[INFO] [stderr] 12 | use plotlib::style::{PointMarker, PointStyle};
[INFO] [stderr]    |                      ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around index expression
[INFO] [stderr]    --> src/filter.rs:113:50
[INFO] [stderr]     |
[INFO] [stderr] 113 |             acc += self.coeffs[i] * self.samples[((self.head + self.len - i) % self.len)];
[INFO] [stderr]     |                                                  ^                                     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 113 -             acc += self.coeffs[i] * self.samples[((self.head + self.len - i) % self.len)];
[INFO] [stderr] 113 +             acc += self.coeffs[i] * self.samples[(self.head + self.len - i) % self.len ];
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::f32::consts::PI`
[INFO] [stderr]  --> src/sound.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::f32::consts::PI;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::kmath::*`
[INFO] [stderr]  --> src/sound.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::kmath::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::kmath::*`
[INFO] [stderr]   --> src/main.rs:58:5
[INFO] [stderr]    |
[INFO] [stderr] 58 | use crate::kmath::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::synth::*`
[INFO] [stderr]   --> src/main.rs:59:5
[INFO] [stderr]    |
[INFO] [stderr] 59 | use crate::synth::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DeviceTrait`, `HostTrait`, and `StreamTrait`
[INFO] [stderr]   --> src/main.rs:61:20
[INFO] [stderr]    |
[INFO] [stderr] 61 | use cpal::traits::{DeviceTrait, HostTrait, StreamTrait};
[INFO] [stderr]    |                    ^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]   --> src/main.rs:78:5
[INFO] [stderr]    |
[INFO] [stderr] 67 | /     event_loop.run(move |event, _, control_flow| {
[INFO] [stderr] 68 | |         application.handle_event(&event);
[INFO] [stderr] 69 | |         match event {
[INFO] [stderr] 70 | |             Event::LoopDestroyed |
[INFO] [stderr] ...  |
[INFO] [stderr] 77 | |     });
[INFO] [stderr]    | |______- any code following this expression is unreachable
[INFO] [stderr] 78 |       Ok(())
[INFO] [stderr]    |       ^^^^^^ unreachable expression
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/application.rs:70:14
[INFO] [stderr]    |
[INFO] [stderr] 70 |         let (mut prod, mut cons) = rb.split();
[INFO] [stderr]    |              ----^^^^
[INFO] [stderr]    |              |
[INFO] [stderr]    |              help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/application.rs:70:24
[INFO] [stderr]    |
[INFO] [stderr] 70 |         let (mut prod, mut cons) = rb.split();
[INFO] [stderr]    |                        ----^^^^
[INFO] [stderr]    |                        |
[INFO] [stderr]    |                        help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/application.rs:100:13
[INFO] [stderr]     |
[INFO] [stderr] 100 |             _ => {},
[INFO] [stderr]     |             ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> src/application.rs:100:13
[INFO] [stderr]     |
[INFO] [stderr]  93 |                 WindowEvent::Resized(physical_size) => {
[INFO] [stderr]     |                 ----------------------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr]  99 |                 _ => {},
[INFO] [stderr]     |                 - matches some of the same values
[INFO] [stderr] 100 |             _ => {},
[INFO] [stderr]     |             ^ collectively making this unreachable
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/synth.rs:51:13
[INFO] [stderr]    |
[INFO] [stderr] 51 |         for i in 0..ticks as i32 {
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `slider_t` is never read
[INFO] [stderr]    --> src/synth.rs:141:24
[INFO] [stderr]     |
[INFO] [stderr] 141 |     let mut slider_t = 0.0f32;
[INFO] [stderr]     |                        ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `k`
[INFO] [stderr]   --> src/sound.rs:76:54
[INFO] [stderr]    |
[INFO] [stderr] 76 | pub fn detune_voice_n(freq: f32, cents: f32, n: i32, k: i32) -> f32 {
[INFO] [stderr]    |                                                      ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stderr] 
[INFO] [stderr] warning: function `smoothstep` is never used
[INFO] [stderr]  --> src/kmath.rs:8:8
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub fn smoothstep(x1: f32, x2: f32, t: f32) -> f32 {
[INFO] [stderr]   |        ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `remap` is never used
[INFO] [stderr]   --> src/kmath.rs:17:8
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub fn remap(x: f32, from_low: f32, from_high: f32, to_low: f32, to_high: f32) -> f32 {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cubic_bezier` is never used
[INFO] [stderr]   --> src/kmath.rs:21:8
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub fn cubic_bezier(start: Vec2, c1: Vec2, c2: Vec2, end: Vec2, t: f32) -> Vec2 {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `krand` is never used
[INFO] [stderr]   --> src/kmath.rs:36:8
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub fn krand(seed: u32) -> f32 {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `kuniform` is never used
[INFO] [stderr]   --> src/kmath.rs:40:8
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub fn kuniform(seed: u32, min: f32, max: f32) -> f32 {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `chance` is never used
[INFO] [stderr]   --> src/kmath.rs:44:8
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub fn chance(seed: u32, percent: f32) -> bool {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ImageBuffer` is never constructed
[INFO] [stderr]  --> src/kimg.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct ImageBuffer {
[INFO] [stderr]   |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `set_px`, `get_px`, `new_from_file`, and `dump_to_file` are never used
[INFO] [stderr]   --> src/kimg.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl ImageBuffer {
[INFO] [stderr]    | ---------------- associated items in this implementation
[INFO] [stderr] 15 |     pub fn new(w: usize, h: usize) -> ImageBuffer {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 |     pub fn set_px(&mut self, x: usize, y: usize, val: (u8, u8, u8)) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub fn get_px(&self, x: usize, y: usize) -> (u8, u8, u8) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 29 |     pub fn new_from_file(path_str: &str) -> ImageBuffer {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub fn dump_to_file(&self, path_str: &str) {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_px`, `bytes_transpose`, and `dump_to_file` are never used
[INFO] [stderr]    --> src/kimg.rs:103:12
[INFO] [stderr]     |
[INFO] [stderr]  92 | impl ImageBufferA {
[INFO] [stderr]     | ----------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 103 |     pub fn get_px(&self, x: usize, y: usize) -> (u8, u8, u8, u8) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 141 |     pub fn bytes_transpose(&self) -> Vec<u8> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 154 |     pub fn dump_to_file(&self, path_str: &str) {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `key_falling` is never used
[INFO] [stderr]   --> src/kinput.rs:52:12
[INFO] [stderr]    |
[INFO] [stderr] 45 | impl FrameInputState {
[INFO] [stderr]    | -------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 52 |     pub fn key_falling(&self, keycode: VirtualKeyCode) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `destroy` is never used
[INFO] [stderr]   --> src/krenderer.rs:68:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl KRenderer {
[INFO] [stderr]    | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 68 |     pub fn destroy(&self, gl: &glow::Context) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `poly` and `circle` are never used
[INFO] [stderr]    --> src/krenderer.rs:153:12
[INFO] [stderr]     |
[INFO] [stderr]  86 | impl KRCanvas {
[INFO] [stderr]     | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 153 |     pub fn poly(&mut self, center: Vec2, radius: f32, n_sides: i32) {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 161 |     pub fn circle(&mut self, center: Vec2, radius: f32) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `destroy` is never used
[INFO] [stderr]    --> src/application.rs:122:12
[INFO] [stderr]     |
[INFO] [stderr]  40 | impl Application {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 122 |     pub fn destroy(&mut self) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `sample_rate` is never read
[INFO] [stderr]    --> src/application.rs:237:9
[INFO] [stderr]     |
[INFO] [stderr] 236 | pub struct SampleRequestOptions {
[INFO] [stderr]     |            -------------------- field in this struct
[INFO] [stderr] 237 |     pub sample_rate: f32,
[INFO] [stderr]     |         ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `any_change` is never read
[INFO] [stderr]   --> src/synth.rs:25:9
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct Synth {
[INFO] [stderr]    |            ----- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub any_change: bool,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/filter.rs:38:12
[INFO] [stderr]    |
[INFO] [stderr] 37 | impl Filter {
[INFO] [stderr]    | ----------- associated function in this implementation
[INFO] [stderr] 38 |     pub fn new() -> Filter {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `but` is never used
[INFO] [stderr]   --> src/sound.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 26 | impl Sound {
[INFO] [stderr]    | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub fn but(&self, f: fn(&mut Sound)) -> Sound {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `blackman` is never used
[INFO] [stderr]  --> src/fftviewer.rs:7:8
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn blackman(n: usize, N: usize) -> f32 {
[INFO] [stderr]   |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `text_clip` should have an upper case name
[INFO] [stderr]  --> src/krenderer.rs:7:11
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub const text_clip: Rect = Rect {x: 0.0, y: 6.0/10.0, w: 14.0/20.0, h: 1.5/10.0};
[INFO] [stderr]   |           ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]   |
[INFO] [stderr] 7 - pub const text_clip: Rect = Rect {x: 0.0, y: 6.0/10.0, w: 14.0/20.0, h: 1.5/10.0};
[INFO] [stderr] 7 + pub const TEXT_CLIP: Rect = Rect {x: 0.0, y: 6.0/10.0, w: 14.0/20.0, h: 1.5/10.0};
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: constant `text_aspect` should have an upper case name
[INFO] [stderr]  --> src/krenderer.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const text_aspect: f32 = 7./8.;
[INFO] [stderr]   |           ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]   |
[INFO] [stderr] 8 - pub const text_aspect: f32 = 7./8.;
[INFO] [stderr] 8 + pub const TEXT_ASPECT: f32 = 7./8.;
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unused bitwise operation that must be used
[INFO] [stderr]   --> src/synth.rs:68:9
[INFO] [stderr]    |
[INFO] [stderr] 68 | /         label_slider("voices", mids[0], 1.0, 9.0, &mut self.voices, false, inputs, kc) |
[INFO] [stderr] 69 | |         label_slider("detune", mids[1], 0.0, 316.0, &mut self.detune, false, inputs, kc) |
[INFO] [stderr] 70 | |         label_slider("volume", mids[2], 0.0, 1.0, &mut self.sound.amplitude, false, inputs, kc);
[INFO] [stderr]    | |_______________________________________________________________________________________________^ the bitwise operation produces a value
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 68 |         let _ = label_slider("voices", mids[0], 1.0, 9.0, &mut self.voices, false, inputs, kc) |
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/synth.rs:93:17
[INFO] [stderr]    |
[INFO] [stderr] 93 |                 sound_channel.push(SoundMessage::PlaySound(s, ke.uid));
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 93 |                 let _ = sound_channel.push(SoundMessage::PlaySound(s, ke.uid));
[INFO] [stderr]    |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> src/synth.rs:96:17
[INFO] [stderr]    |
[INFO] [stderr] 96 |                 sound_channel.push(SoundMessage::StopSound(ke.uid));
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 96 |                 let _ = sound_channel.push(SoundMessage::StopSound(ke.uid));
[INFO] [stderr]    |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: variable `N` should have a snake case name
[INFO] [stderr]   --> src/filter.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 17 |     let N = w.len();
[INFO] [stderr]    |         ^ help: convert the identifier to snake case: `n`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `keys` should have an upper case name
[INFO] [stderr]  --> src/keyboard.rs:6:7
[INFO] [stderr]   |
[INFO] [stderr] 6 | const keys: [VirtualKeyCode; 23] = [
[INFO] [stderr]   |       ^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]   |
[INFO] [stderr] 6 - const keys: [VirtualKeyCode; 23] = [
[INFO] [stderr] 6 + const KEYS: [VirtualKeyCode; 23] = [
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: constant `white_keys` should have an upper case name
[INFO] [stderr]   --> src/keyboard.rs:31:7
[INFO] [stderr]    |
[INFO] [stderr] 31 | const white_keys: [VirtualKeyCode; 14] = [
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]    |
[INFO] [stderr] 31 - const white_keys: [VirtualKeyCode; 14] = [
[INFO] [stderr] 31 + const WHITE_KEYS: [VirtualKeyCode; 14] = [
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: constant `black_keys` should have an upper case name
[INFO] [stderr]   --> src/keyboard.rs:47:7
[INFO] [stderr]    |
[INFO] [stderr] 47 | const black_keys: [VirtualKeyCode; 9] = [
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]    |
[INFO] [stderr] 47 - const black_keys: [VirtualKeyCode; 9] = [
[INFO] [stderr] 47 + const BLACK_KEYS: [VirtualKeyCode; 9] = [
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: variable `N` should have a snake case name
[INFO] [stderr]  --> src/fftviewer.rs:7:27
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn blackman(n: usize, N: usize) -> f32 {
[INFO] [stderr]   |                           ^ help: convert the identifier to snake case: `n`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `A` should have a snake case name
[INFO] [stderr]   --> src/envelope.rs:44:13
[INFO] [stderr]    |
[INFO] [stderr] 44 |         let A = self.a * sample_rate as f32;
[INFO] [stderr]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `D` should have a snake case name
[INFO] [stderr]   --> src/envelope.rs:45:13
[INFO] [stderr]    |
[INFO] [stderr] 45 |         let D = self.d * sample_rate as f32;
[INFO] [stderr]    |             ^ help: convert the identifier to snake case: `d`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `S` should have a snake case name
[INFO] [stderr]   --> src/envelope.rs:46:13
[INFO] [stderr]    |
[INFO] [stderr] 46 |         let S = self.s;
[INFO] [stderr]    |             ^ help: convert the identifier to snake case (notice the capitalization): `s`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `R` should have a snake case name
[INFO] [stderr]   --> src/envelope.rs:47:13
[INFO] [stderr]    |
[INFO] [stderr] 47 |         let R = self.r * sample_rate as f32;
[INFO] [stderr]    |             ^ help: convert the identifier to snake case: `r`
[INFO] [stderr] 
[INFO] [stderr] warning: `reeser` (bin "reeser" test) generated 56 warnings (run `cargo fix --bin "reeser" -p reeser --tests` to apply 26 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.19s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: svg v0.7.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/reeser-cd108c58800406b6)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test envelope::test_env ... ok
[INFO] [stdout] test kmath::test_lerp ... ok
[INFO] [stdout] test sound::test_detune ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- sound::test_detune stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'sound::test_detune' (19) panicked at src/sound.rs:90:5:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: 1000.0
[INFO] [stdout]  right: 500.0
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5d59b9c144da - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5d59b9c144da - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5d59b9c144da - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5d59b9c144da - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5d59b9c28d1a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5d59b9c28d1a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x5d59b9c18d62 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5d59b9c18d62 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5d59b9bf36ef - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5d59b9bf36ef - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5d59b9c0ca49 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5d59b9ba8c9c - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x5d59b9ba8c9c - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5d59b9c0cc02 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x5d59b9c0cc02 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5d59b9bf37a8 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5d59b9beb149 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5d59b9bf44bd - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5d59b9c2952c - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5d59b9c29443 - core[10b6fa85044e1869]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x5d59b9b9b87a - core::panicking::assert_failed::h63af4d0dde391513
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x5d59b9b9c414 - reeser::sound::test_detune::hc39414f64334c6cb
[INFO] [stdout]                                at /opt/rustwide/workdir/src/sound.rs:90:5
[INFO] [stdout]   22:     0x5d59b9b9c627 - reeser::sound::test_detune::{{closure}}::h44e9c8660127b6bf
[INFO] [stdout]                                at /opt/rustwide/workdir/src/sound.rs:84:17
[INFO] [stdout]   23:     0x5d59b9b9b6b6 - core::ops::function::FnOnce::call_once::hfa56a6c7b5990ede
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5d59b9b9cd7b - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5d59b9b9cd7b - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x5d59b9ba976b - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x5d59b9ba976b - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x5d59b9ba976b - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5d59b9ba976b - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5d59b9ba976b - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5d59b9ba976b - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x5d59b9ba976b - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x5d59b9ba4e84 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x5d59b9ba4e84 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5d59b9bac372 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x5d59b9bac372 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x5d59b9bac372 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5d59b9bac372 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5d59b9bac372 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5d59b9bac372 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x5d59b9bac372 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5d59b9c13def - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   43:     0x5d59b9c13def - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7546ad5a0aa4 - <unknown>
[INFO] [stdout]   45:     0x7546ad62da64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     sound::test_detune
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin reeser`
[INFO] running `Command { std: "docker" "inspect" "01f56a5404fb97618b3a64da5b712988787d9009368a452483826b2f56c4e34a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "01f56a5404fb97618b3a64da5b712988787d9009368a452483826b2f56c4e34a", kill_on_drop: false }`
[INFO] [stdout] 01f56a5404fb97618b3a64da5b712988787d9009368a452483826b2f56c4e34a
