[INFO] cloning repository https://github.com/shunonymous/mirmidivi-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shunonymous/mirmidivi-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshunonymous%2Fmirmidivi-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshunonymous%2Fmirmidivi-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2a777003d9311ba39a2f5fdb0cd19a14ed8bec42
[INFO] checking shunonymous/mirmidivi-rs against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshunonymous%2Fmirmidivi-rs" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/shunonymous/mirmidivi-rs
[INFO] finished tweaking git repo https://github.com/shunonymous/mirmidivi-rs
[INFO] tweaked toml for git repo https://github.com/shunonymous/mirmidivi-rs written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/shunonymous/mirmidivi-rs on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/shunonymous/mirmidivi-rs 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded nodi v1.0.1
[INFO] [stderr]   Downloaded winreg v0.5.1
[INFO] [stderr]   Downloaded pancurses v0.17.0
[INFO] [stderr]   Downloaded coremidi-sys v3.1.1
[INFO] [stderr]   Downloaded coremidi v0.8.0
[INFO] [stderr]   Downloaded midir v0.10.1
[INFO] [stderr]   Downloaded midly v0.5.3
[INFO] [stderr]   Downloaded midi-msg v0.7.3
[INFO] [stderr]   Downloaded syn v2.0.89
[INFO] [stderr]   Downloaded micromath v1.1.1
[INFO] [stderr]   Downloaded pdcurses-sys v0.7.1
[INFO] [stderr]   Downloaded web-sys v0.3.72
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1aa58add0413ae2b8779730302edaa5ab3db4714cffef4dfdda7dec4433239d0
[INFO] running `Command { std: "docker" "start" "1aa58add0413ae2b8779730302edaa5ab3db4714cffef4dfdda7dec4433239d0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1aa58add0413ae2b8779730302edaa5ab3db4714cffef4dfdda7dec4433239d0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1aa58add0413ae2b8779730302edaa5ab3db4714cffef4dfdda7dec4433239d0" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1aa58add0413ae2b8779730302edaa5ab3db4714cffef4dfdda7dec4433239d0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1aa58add0413ae2b8779730302edaa5ab3db4714cffef4dfdda7dec4433239d0" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.92
[INFO] [stderr]    Compiling libc v0.2.167
[INFO] [stderr]    Compiling pkg-config v0.3.31
[INFO] [stderr]    Compiling unicode-ident v1.0.14
[INFO] [stderr]    Compiling rustversion v1.0.18
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling cc v1.2.2
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking bitflags v2.6.0
[INFO] [stderr]     Checking rayon-core v1.12.1
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]     Checking anstyle-parse v0.2.6
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]     Checking either v1.13.0
[INFO] [stderr]     Checking anstyle-query v1.1.2
[INFO] [stderr]     Checking anstyle v1.0.10
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking colorchoice v1.0.3
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking clap_lex v0.7.3
[INFO] [stderr]    Compiling anyhow v1.0.93
[INFO] [stderr]     Checking anstream v0.6.18
[INFO] [stderr]     Checking log v0.4.22
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]     Checking clap_builder v4.5.21
[INFO] [stderr]     Checking deranged v0.3.11
[INFO] [stderr]     Checking micromath v1.1.1
[INFO] [stderr]     Checking time-core v0.1.2
[INFO] [stderr]    Compiling syn v2.0.89
[INFO] [stderr]     Checking bstr v1.11.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.13
[INFO] [stderr]     Checking time v0.3.36
[INFO] [stderr]    Compiling ncurses v5.101.0
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking pancurses v0.17.0
[INFO] [stderr]     Checking libloading v0.8.5
[INFO] [stderr]     Checking mopa v0.2.2
[INFO] [stderr]     Checking midir v0.10.1
[INFO] [stderr]    Compiling strum_macros v0.24.3
[INFO] [stderr]     Checking midly v0.5.3
[INFO] [stderr]     Checking ctrlc v3.4.5
[INFO] [stderr]     Checking nodi v1.0.1
[INFO] [stderr]     Checking strum v0.24.1
[INFO] [stderr]     Checking midi-msg v0.7.3
[INFO] [stderr]    Compiling clap_derive v4.5.18
[INFO] [stderr]     Checking clap v4.5.21
[INFO] [stderr]     Checking mirmidivi-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Mutex`
[INFO] [stdout]  --> src/main.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::JoinHandle`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::thread::JoinHandle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `time::Duration`
[INFO] [stdout]  --> src/midi/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/midi/midi_player.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Error`
[INFO] [stdout]  --> src/midi/midi_player.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use anyhow::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MidiMessage`
[INFO] [stdout]   --> src/midi/midi_player.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | use nodi::midly::{MidiMessage, Timing};
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ticker`
[INFO] [stdout]   --> src/midi/midi_player.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 |     timers::{ControlTicker, Ticker},
[INFO] [stdout]    |                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Moment` and `Timer`
[INFO] [stdout]   --> src/midi/midi_player.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | use nodi::{Moment, Timer};
[INFO] [stdout]    |            ^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]    --> src/midi/midi_player.rs:180:9
[INFO] [stdout]     |
[INFO] [stdout] 180 |     use std::time::Instant;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mutex`
[INFO] [stdout]  --> src/renderer/mod.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::JoinHandle`
[INFO] [stdout]  --> src/renderer/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::thread::JoinHandle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::text::TextRenderer`
[INFO] [stdout]   --> src/renderer/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use self::text::TextRenderer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MidiData`
[INFO] [stdout]  --> src/renderer/curses.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     MidiData,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Receiver`
[INFO] [stdout]   --> src/renderer/curses.rs:10:39
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crossbeam_channel::{select, tick, Receiver};
[INFO] [stdout]    |                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JoinHandle` and `Mutex`
[INFO] [stdout]   --> src/renderer/curses.rs:15:14
[INFO] [stdout]    |
[INFO] [stdout] 15 |         Arc, Mutex,
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 16 |     },
[INFO] [stdout] 17 |     thread::{self, JoinHandle},
[INFO] [stdout]    |                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JoinHandle` and `Mutex`
[INFO] [stdout]  --> src/renderer/text.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 |     sync::{atomic::AtomicBool, Arc, Mutex},
[INFO] [stdout]   |                                     ^^^^^
[INFO] [stdout] 5 |     thread::{self, JoinHandle},
[INFO] [stdout]   |                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `midir::MidiIO`
[INFO] [stdout]   --> src/renderer/text.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use midir::MidiIO;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]   --> src/renderer/text.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::time::Instant;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/renderer_lib/pianoroll.rs:139:40
[INFO] [stdout]     |
[INFO] [stdout] 139 | ...                   .rfind(|n| (n.channel == channel && n.note == note))
[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] 139 -                             .rfind(|n| (n.channel == channel && n.note == note))
[INFO] [stdout] 139 +                             .rfind(|n| n.channel == channel && n.note == note)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bounded`
[INFO] [stdout]    --> src/renderer_lib/pianoroll.rs:185:29
[INFO] [stdout]     |
[INFO] [stdout] 185 |     use crossbeam_channel::{bounded, unbounded};
[INFO] [stdout]     |                             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MidiMsg` and `ReceiverContext`
[INFO] [stdout]    --> src/renderer_lib/pianoroll.rs:186:20
[INFO] [stdout]     |
[INFO] [stdout] 186 |     use midi_msg::{MidiMsg, ReceiverContext};
[INFO] [stdout]     |                    ^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mutex`
[INFO] [stdout]  --> src/main.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::JoinHandle`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::thread::JoinHandle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `time::Duration`
[INFO] [stdout]  --> src/midi/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/midi/midi_player.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Error`
[INFO] [stdout]  --> src/midi/midi_player.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use anyhow::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MidiMessage`
[INFO] [stdout]   --> src/midi/midi_player.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | use nodi::midly::{MidiMessage, Timing};
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ticker`
[INFO] [stdout]   --> src/midi/midi_player.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 |     timers::{ControlTicker, Ticker},
[INFO] [stdout]    |                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Moment` and `Timer`
[INFO] [stdout]   --> src/midi/midi_player.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | use nodi::{Moment, Timer};
[INFO] [stdout]    |            ^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mutex`
[INFO] [stdout]  --> src/renderer/mod.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::JoinHandle`
[INFO] [stdout]  --> src/renderer/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::thread::JoinHandle;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::text::TextRenderer`
[INFO] [stdout]   --> src/renderer/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use self::text::TextRenderer;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MidiData`
[INFO] [stdout]  --> src/renderer/curses.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     MidiData,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Receiver`
[INFO] [stdout]   --> src/renderer/curses.rs:10:39
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crossbeam_channel::{select, tick, Receiver};
[INFO] [stdout]    |                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JoinHandle` and `Mutex`
[INFO] [stdout]   --> src/renderer/curses.rs:15:14
[INFO] [stdout]    |
[INFO] [stdout] 15 |         Arc, Mutex,
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 16 |     },
[INFO] [stdout] 17 |     thread::{self, JoinHandle},
[INFO] [stdout]    |                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `JoinHandle` and `Mutex`
[INFO] [stdout]  --> src/renderer/text.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 |     sync::{atomic::AtomicBool, Arc, Mutex},
[INFO] [stdout]   |                                     ^^^^^
[INFO] [stdout] 5 |     thread::{self, JoinHandle},
[INFO] [stdout]   |                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `midir::MidiIO`
[INFO] [stdout]   --> src/renderer/text.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use midir::MidiIO;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]   --> src/renderer/text.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::time::Instant;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/renderer_lib/pianoroll.rs:139:40
[INFO] [stdout]     |
[INFO] [stdout] 139 | ...                   .rfind(|n| (n.channel == channel && n.note == note))
[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] 139 -                             .rfind(|n| (n.channel == channel && n.note == note))
[INFO] [stdout] 139 +                             .rfind(|n| n.channel == channel && n.note == note)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nodi::Connection`
[INFO] [stdout]   --> src/renderer/text.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use nodi::Connection;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opts`
[INFO] [stdout]   --> src/midi/midi_in.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn new(opts: &Options) -> Self {
[INFO] [stdout]    |            ^^^^ help: if this is intentional, prefix it with an underscore: `_opts`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample`
[INFO] [stdout]   --> src/renderer_lib/pianoroll.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |         for sample in 0..sample_num {
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pause_send` and `header` are never read
[INFO] [stdout]   --> src/midi/midi_player.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct MidiPlayer {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 24 |     epoch: Instant,
[INFO] [stdout] 25 |     pause_send: mpsc::Sender<()>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     header: Header,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get_parsed_smf`, `duration_in_microseconds`, and `toggle_pause_resume` are never used
[INFO] [stdout]    --> src/midi/midi_player.rs:81:12
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl MidiPlayer {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn get_parsed_smf(&self) -> Vec<MidiData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     fn duration_in_microseconds(tempo_us: u64, ppqn: u64) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn toggle_pause_resume(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_LIGHTGREEN` is never used
[INFO] [stdout]   --> src/renderer/curses.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const COLOR_LIGHTGREEN: i16 = 8;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `velocity` is never read
[INFO] [stdout]   --> src/renderer_lib/pianoroll.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct Note {
[INFO] [stdout]    |        ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     velocity: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Note` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Atom` is never constructed
[INFO] [stdout]   --> src/renderer_lib/pianoroll.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Atom {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Line` is never used
[INFO] [stdout]   --> src/renderer_lib/pianoroll.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub type Line = Vec<Atom>;
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `draw` is never used
[INFO] [stdout]   --> src/renderer_lib/pianoroll.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl PianoRoll {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn draw(&self, range_begin: Duration, range_end: Duration, sample_num: u32) -> Vec<Line> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nodi::Connection`
[INFO] [stdout]   --> src/renderer/text.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use nodi::Connection;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opts`
[INFO] [stdout]   --> src/midi/midi_in.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn new(opts: &Options) -> Self {
[INFO] [stdout]    |            ^^^^ help: if this is intentional, prefix it with an underscore: `_opts`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `midi_in`
[INFO] [stdout]   --> src/midi/midi_in.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let midi_in = MidiIn::new(&opts);
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_midi_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sample`
[INFO] [stdout]   --> src/renderer_lib/pianoroll.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |         for sample in 0..sample_num {
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sample`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pause_send` is never read
[INFO] [stdout]   --> src/midi/midi_player.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct MidiPlayer {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 24 |     epoch: Instant,
[INFO] [stdout] 25 |     pause_send: mpsc::Sender<()>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `toggle_pause_resume` is never used
[INFO] [stdout]    --> src/midi/midi_player.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl MidiPlayer {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn toggle_pause_resume(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_LIGHTGREEN` is never used
[INFO] [stdout]   --> src/renderer/curses.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const COLOR_LIGHTGREEN: i16 = 8;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `velocity` is never read
[INFO] [stdout]   --> src/renderer_lib/pianoroll.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct Note {
[INFO] [stdout]    |        ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     velocity: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Note` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scale` and `channel` are never read
[INFO] [stdout]   --> src/renderer_lib/pianoroll.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Atom {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] 35 |     pub scale: u8,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 36 |     pub channel: Channel,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Atom` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `libloading`
[INFO] [stderr]  --> Cargo.toml:5:1
[INFO] [stderr]   |
[INFO] [stderr] 5 | libloading = "0.8.5"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `libloading`
[INFO] [stderr] warning: unused dependency `mopa`
[INFO] [stderr]  --> Cargo.toml:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | mopa = "0.2.2"
[INFO] [stderr]   | ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `mopa`
[INFO] [stderr] warning: `mirmidivi-rs` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 32.03s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.29.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "1aa58add0413ae2b8779730302edaa5ab3db4714cffef4dfdda7dec4433239d0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1aa58add0413ae2b8779730302edaa5ab3db4714cffef4dfdda7dec4433239d0", kill_on_drop: false }`
[INFO] [stdout] 1aa58add0413ae2b8779730302edaa5ab3db4714cffef4dfdda7dec4433239d0
