[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 1.94.0 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-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/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-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kennoath/reeser on toolchain 1.94.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "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" "+1.94.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wayland-sys v0.29.4
[INFO] [stderr]   Downloaded wayland-cursor v0.29.4
[INFO] [stderr]   Downloaded wayland-scanner v0.29.4
[INFO] [stderr]   Downloaded wayland-commons v0.29.4
[INFO] [stderr]   Downloaded unicode-ident v1.0.2
[INFO] [stderr]   Downloaded assert_hex v0.2.2
[INFO] [stderr]   Downloaded num_enum v0.5.7
[INFO] [stderr]   Downloaded os_str_bytes v6.2.0
[INFO] [stderr]   Downloaded clang-sys v1.3.3
[INFO] [stderr]   Downloaded bytes v1.2.0
[INFO] [stderr]   Downloaded glutin v0.28.0
[INFO] [stderr]   Downloaded alsa v0.6.0
[INFO] [stderr]   Downloaded cpal v0.13.5
[INFO] [stderr]   Downloaded combine v4.6.4
[INFO] [stderr]   Downloaded wayland-protocols v0.29.4
[INFO] [stderr]   Downloaded oboe-sys v0.4.5
[INFO] [stderr]   Downloaded clap v3.2.13
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.15.4
[INFO] [stderr]   Downloaded bindgen v0.59.2
[INFO] [stderr]   Downloaded rustfft v6.0.1
[INFO] [stderr]   Downloaded nix v0.23.1
[INFO] [stderr]   Downloaded ndk-sys v0.3.0
[INFO] [stderr]   Downloaded winit v0.26.1
[INFO] [stderr]   Downloaded object v0.29.0
[INFO] [stderr]   Downloaded deflate v1.0.0
[INFO] [stderr]   Downloaded backtrace v0.3.66
[INFO] [stderr]   Downloaded png v0.17.5
[INFO] [stderr]   Downloaded serde v1.0.139
[INFO] [stderr]   Downloaded oboe v0.4.6
[INFO] [stderr]   Downloaded plotlib v0.5.1
[INFO] [stderr]   Downloaded calloop v0.9.3
[INFO] [stderr]   Downloaded wayland-client v0.29.4
[INFO] [stderr]   Downloaded coreaudio-rs v0.10.0
[INFO] [stderr]   Downloaded ndk v0.6.0
[INFO] [stderr]   Downloaded ringbuf v0.2.8
[INFO] [stderr]   Downloaded num-complex v0.4.2
[INFO] [stderr]   Downloaded ndk v0.5.0
[INFO] [stderr]   Downloaded memmap2 v0.3.1
[INFO] [stderr]   Downloaded unicode-xid v0.2.3
[INFO] [stderr]   Downloaded strength_reduce v0.2.3
[INFO] [stderr]   Downloaded num_enum_derive v0.5.7
[INFO] [stderr]   Downloaded proc-macro-crate v1.1.3
[INFO] [stderr]   Downloaded ndk-macro v0.3.0
[INFO] [stderr]   Downloaded ndk-glue v0.5.2
[INFO] [stderr]   Downloaded coreaudio-sys v0.2.10
[INFO] [stderr]   Downloaded ndk-glue v0.6.2
[INFO] [stderr]   Downloaded glutin_egl_sys v0.1.5
[INFO] [stderr]   Downloaded gimli v0.26.2
[INFO] [stderr]   Downloaded glutin_glx_sys v0.1.7
[INFO] [stderr]   Downloaded wayland-egl v0.29.4
[INFO] [stderr]   Downloaded svg v0.7.2
[INFO] [stderr]   Downloaded cache-padded v1.2.0
[INFO] [stderr]   Downloaded primal-check v0.3.1
[INFO] [stderr]   Downloaded transpose v0.2.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 40600d3c489ec099dae8b4cdaa1735c0cad70fc9637418fac4a0d98cc7a12234
[INFO] running `Command { std: "docker" "start" "-a" "40600d3c489ec099dae8b4cdaa1735c0cad70fc9637418fac4a0d98cc7a12234", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "40600d3c489ec099dae8b4cdaa1735c0cad70fc9637418fac4a0d98cc7a12234", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "40600d3c489ec099dae8b4cdaa1735c0cad70fc9637418fac4a0d98cc7a12234", kill_on_drop: false }`
[INFO] [stdout] 40600d3c489ec099dae8b4cdaa1735c0cad70fc9637418fac4a0d98cc7a12234
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+1.94.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 165036548b6b9d439a785afc916ec3db336aac8c68c40de703b71131edbf7610
[INFO] running `Command { std: "docker" "start" "-a" "165036548b6b9d439a785afc916ec3db336aac8c68c40de703b71131edbf7610", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.126
[INFO] [stderr]    Compiling proc-macro2 v1.0.40
[INFO] [stderr]    Compiling pkg-config v0.3.25
[INFO] [stderr]    Compiling unicode-ident v1.0.2
[INFO] [stderr]    Compiling quote v1.0.20
[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 syn v1.0.98
[INFO] [stderr]    Compiling once_cell v1.13.0
[INFO] [stderr]    Compiling dlib v0.5.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 wayland-sys v0.29.4
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling x11-dl v2.19.1
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling backtrace v0.3.66
[INFO] [stderr]    Compiling miniz_oxide v0.5.3
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling smithay-client-toolkit v0.15.4
[INFO] [stderr]    Compiling nom v7.1.1
[INFO] [stderr]    Compiling wayland-scanner v0.29.4
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling gimli v0.26.2
[INFO] [stderr]    Compiling unicode-xid v0.2.3
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.7
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.5
[INFO] [stderr]    Compiling nix v0.22.3
[INFO] [stderr]    Compiling parking_lot_core v0.8.5
[INFO] [stderr]    Compiling memmap2 v0.3.1
[INFO] [stderr]    Compiling parking_lot v0.11.2
[INFO] [stderr]    Compiling wayland-client v0.29.4
[INFO] [stderr]    Compiling wayland-protocols v0.29.4
[INFO] [stderr]    Compiling object v0.29.0
[INFO] [stderr]    Compiling xcursor v0.3.4
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling addr2line v0.17.0
[INFO] [stderr]    Compiling indexmap v1.9.1
[INFO] [stderr]    Compiling winit v0.26.1
[INFO] [stderr]    Compiling cty v0.2.2
[INFO] [stderr]    Compiling wayland-commons v0.29.4
[INFO] [stderr]    Compiling calloop v0.9.3
[INFO] [stderr]    Compiling raw-window-handle v0.4.3
[INFO] [stderr]    Compiling shared_library v0.1.9
[INFO] [stderr]    Compiling thiserror-impl v1.0.31
[INFO] [stderr]    Compiling nix v0.23.1
[INFO] [stderr]    Compiling mio v0.8.4
[INFO] [stderr]    Compiling strength_reduce v0.2.3
[INFO] [stderr]    Compiling cpal v0.13.5
[INFO] [stderr]    Compiling os_str_bytes v6.2.0
[INFO] [stderr]    Compiling anyhow v1.0.58
[INFO] [stderr]    Compiling transpose v0.2.1
[INFO] [stderr]    Compiling clap_lex v0.2.4
[INFO] [stderr]    Compiling failure v0.1.8
[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 thiserror v1.0.31
[INFO] [stderr]    Compiling num-complex v0.4.2
[INFO] [stderr]    Compiling cache-padded v1.2.0
[INFO] [stderr]    Compiling svg v0.7.2
[INFO] [stderr]    Compiling textwrap v0.15.0
[INFO] [stderr]    Compiling wayland-cursor v0.29.4
[INFO] [stderr]    Compiling wayland-egl v0.29.4
[INFO] [stderr]    Compiling plotlib v0.5.1
[INFO] [stderr]    Compiling rustfft v6.0.1
[INFO] [stderr]    Compiling alsa v0.6.0
[INFO] [stderr]    Compiling clap v3.2.13
[INFO] [stderr]    Compiling ringbuf v0.2.8
[INFO] [stderr]    Compiling png v0.17.5
[INFO] [stderr]    Compiling glow v0.11.2
[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 49s
[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" "165036548b6b9d439a785afc916ec3db336aac8c68c40de703b71131edbf7610", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "165036548b6b9d439a785afc916ec3db336aac8c68c40de703b71131edbf7610", kill_on_drop: false }`
[INFO] [stdout] 165036548b6b9d439a785afc916ec3db336aac8c68c40de703b71131edbf7610
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+1.94.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cb001a8929a88e695ff9ef6b7803e8a454e5232b8f832934af22ae62ec318f86
[INFO] running `Command { std: "docker" "start" "-a" "cb001a8929a88e695ff9ef6b7803e8a454e5232b8f832934af22ae62ec318f86", 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 0.85s
[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" "cb001a8929a88e695ff9ef6b7803e8a454e5232b8f832934af22ae62ec318f86", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cb001a8929a88e695ff9ef6b7803e8a454e5232b8f832934af22ae62ec318f86", kill_on_drop: false }`
[INFO] [stdout] cb001a8929a88e695ff9ef6b7803e8a454e5232b8f832934af22ae62ec318f86
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+1.94.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d0365d68680cc8ec7219554aa9337b6eac964b9aa781ee193db6a66615c155f5
[INFO] running `Command { std: "docker" "start" "-a" "d0365d68680cc8ec7219554aa9337b6eac964b9aa781ee193db6a66615c155f5", 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.27s
[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-30e25a957ff3720f)
[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' (18) 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:     0x599d2a24d212 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x599d2a24d212 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x599d2a24d212 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x599d2a24d212 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x599d2a25ddda - core::fmt::rt::Argument::fmt::h01eff69902dad97f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x599d2a25ddda - core::fmt::write::hed7b5c73d82ecb7c
[INFO] [stdout]    6:     0x599d2a21bf56 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x599d2a21bf56 - std::io::Write::write_fmt::h5e66814db8a9cfce
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x599d2a22c6f9 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x599d2a22c6f9 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x599d2a22c591 - std::panicking::default_hook::hf0ea8939246f43a9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x599d2a1f04de - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   12:     0x599d2a1f04de - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x599d2a22c972 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
[INFO] [stdout]   14:     0x599d2a22c972 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x599d2a22c7b8 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x599d2a227d49 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x599d2a210d8d - __rustc[4425a7e20b4c8619]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x599d2a2651dc - core::panicking::panic_fmt::ha59b517dd231f4da
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x599d2a2650f3 - core::panicking::assert_failed_inner::h3c3301979dc81b81
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x599d2a1d01f5 - core::panicking::assert_failed::hf15e0c79ead71cb4
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x599d2a1d0d94 - reeser::sound::test_detune::h920c926129d6e6dd
[INFO] [stdout]                                at /opt/rustwide/workdir/src/sound.rs:90:5
[INFO] [stdout]   22:     0x599d2a1d0fa7 - reeser::sound::test_detune::{{closure}}::h991723404940421e
[INFO] [stdout]                                at /opt/rustwide/workdir/src/sound.rs:84:17
[INFO] [stdout]   23:     0x599d2a1d0006 - core::ops::function::FnOnce::call_once::ha06a30d7f07502dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x599d2a1f029b - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x599d2a1f029b - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x599d2a203caa - test::run_test_in_process::{{closure}}::h444209903f00b347
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x599d2a203caa - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   28:     0x599d2a203caa - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x599d2a203caa - std::panicking::catch_unwind::h0fadaee22787a6dd
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x599d2a203caa - std::panic::catch_unwind::hc47ad190f2c8e188
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x599d2a203caa - test::run_test_in_process::hcd7faaf934f29999
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x599d2a203caa - test::run_test::{{closure}}::hddc4550da4871867
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x599d2a1de104 - test::run_test::{{closure}}::h98ae26689f13ed94
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x599d2a1de104 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x599d2a1e1aa2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x599d2a1e1aa2 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   37:     0x599d2a1e1aa2 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x599d2a1e1aa2 - std::panicking::catch_unwind::h659e5ee8336ec8c7
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x599d2a1e1aa2 - std::panic::catch_unwind::h9d4d66a538912c18
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x599d2a1e1aa2 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x599d2a1e1aa2 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x599d2a222fdf - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   43:     0x599d2a222fdf - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
[INFO] [stdout]                                at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
[INFO] [stdout]   44:     0x7b11b952faa4 - <unknown>
[INFO] [stdout]   45:     0x7b11b95bca64 - 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.04s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin reeser`
[INFO] running `Command { std: "docker" "inspect" "d0365d68680cc8ec7219554aa9337b6eac964b9aa781ee193db6a66615c155f5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d0365d68680cc8ec7219554aa9337b6eac964b9aa781ee193db6a66615c155f5", kill_on_drop: false }`
[INFO] [stdout] d0365d68680cc8ec7219554aa9337b6eac964b9aa781ee193db6a66615c155f5
