[INFO] fetching crate launchpad 0.1.1...
[INFO] checking launchpad-0.1.1 against master#4d1bd0db7f489b22c6d8aa2385937a95412c015b for pr-114682
[INFO] extracting crate launchpad 0.1.1 into /workspace/builds/worker-1-tc1/source
[INFO] validating manifest of crates.io crate launchpad 0.1.1 on toolchain 4d1bd0db7f489b22c6d8aa2385937a95412c015b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate launchpad 0.1.1
[INFO] finished tweaking crates.io crate launchpad 0.1.1
[INFO] tweaked toml for crates.io crate launchpad 0.1.1 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded portmidi v0.2.6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 09591da5d5642087e546c0241f485030f1a8f1dea0798e59dde491a884a4fa09
[INFO] running `Command { std: "docker" "start" "-a" "09591da5d5642087e546c0241f485030f1a8f1dea0798e59dde491a884a4fa09", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "09591da5d5642087e546c0241f485030f1a8f1dea0798e59dde491a884a4fa09", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "09591da5d5642087e546c0241f485030f1a8f1dea0798e59dde491a884a4fa09", kill_on_drop: false }`
[INFO] [stdout] 09591da5d5642087e546c0241f485030f1a8f1dea0798e59dde491a884a4fa09
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+4d1bd0db7f489b22c6d8aa2385937a95412c015b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] acf892ab54b1714c6f6a567495e3cf699a0584cc06e0d0af8fc7227428bb10a5
[INFO] running `Command { std: "docker" "start" "-a" "acf892ab54b1714c6f6a567495e3cf699a0584cc06e0d0af8fc7227428bb10a5", kill_on_drop: false }`
[INFO] [stderr]     Checking portmidi v0.2.6
[INFO] [stderr]     Checking launchpad v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> src/launchpad.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 |     input_port: pm::InputPort,
[INFO] [stdout]    |                     ^^^^^^^^^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] help: consider introducing a named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] 14 ~ pub struct LaunchpadMk2<'a> {
[INFO] [stdout] 15 ~     input_port: pm::InputPort<'a>,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> src/launchpad.rs:16:22
[INFO] [stdout]    |
[INFO] [stdout] 16 |     output_port: pm::OutputPort,
[INFO] [stdout]    |                      ^^^^^^^^^^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] help: consider introducing a named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] 14 ~ pub struct LaunchpadMk2<'a> {
[INFO] [stdout] 15 |     input_port: pm::InputPort,
[INFO] [stdout] 16 ~     output_port: pm::OutputPort<'a>,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> src/launchpad.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 |     input_port: pm::InputPort,
[INFO] [stdout]    |                     ^^^^^^^^^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] help: consider introducing a named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] 14 ~ pub struct LaunchpadMk2<'a> {
[INFO] [stdout] 15 ~     input_port: pm::InputPort<'a>,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> src/launchpad.rs:16:22
[INFO] [stdout]    |
[INFO] [stdout] 16 |     output_port: pm::OutputPort,
[INFO] [stdout]    |                      ^^^^^^^^^^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] help: consider introducing a named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] 14 ~ pub struct LaunchpadMk2<'a> {
[INFO] [stdout] 15 |     input_port: pm::InputPort,
[INFO] [stdout] 16 ~     output_port: pm::OutputPort<'a>,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:245:11
[INFO] [stdout]     |
[INFO] [stdout] 245 |         11...19 => true,
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:246:11
[INFO] [stdout]     |
[INFO] [stdout] 246 |         21...29 => true,
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:247:11
[INFO] [stdout]     |
[INFO] [stdout] 247 |         31...39 => true,
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:248:11
[INFO] [stdout]     |
[INFO] [stdout] 248 |         41...49 => true,
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:249:11
[INFO] [stdout]     |
[INFO] [stdout] 249 |         51...59 => true,
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:250:11
[INFO] [stdout]     |
[INFO] [stdout] 250 |         61...69 => true,
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:251:11
[INFO] [stdout]     |
[INFO] [stdout] 251 |         71...79 => true,
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:252:11
[INFO] [stdout]     |
[INFO] [stdout] 252 |         81...89 => true,
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:253:12
[INFO] [stdout]     |
[INFO] [stdout] 253 |         104...111 => true,
[INFO] [stdout]     |            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:245:11
[INFO] [stdout]     |
[INFO] [stdout] 245 |         11...19 => true,
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:246:11
[INFO] [stdout]     |
[INFO] [stdout] 246 |         21...29 => true,
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:247:11
[INFO] [stdout]     |
[INFO] [stdout] 247 |         31...39 => true,
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:248:11
[INFO] [stdout]     |
[INFO] [stdout] 248 |         41...49 => true,
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:249:11
[INFO] [stdout]     |
[INFO] [stdout] 249 |         51...59 => true,
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:250:11
[INFO] [stdout]     |
[INFO] [stdout] 250 |         61...69 => true,
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:251:11
[INFO] [stdout]     |
[INFO] [stdout] 251 |         71...79 => true,
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:252:11
[INFO] [stdout]     |
[INFO] [stdout] 252 |         81...89 => true,
[INFO] [stdout]     |           ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/launchpad.rs:253:12
[INFO] [stdout]     |
[INFO] [stdout] 253 |         104...111 => true,
[INFO] [stdout]     |            ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `MidiMessage: From<[u8; 3]>` is not satisfied
[INFO] [stdout]    --> src/launchpad.rs:123:40
[INFO] [stdout]     |
[INFO] [stdout] 123 |         self.output_port.write_message([0x91, led.position, led.color]).expect("Fail");
[INFO] [stdout]     |                          ------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `From<[u8; 3]>` is not implemented for `MidiMessage`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               <MidiMessage as From<u32>>
[INFO] [stdout]               <MidiMessage as From<[u8; 4]>>
[INFO] [stdout]     = note: required for `[u8; 3]` to implement `Into<MidiMessage>`
[INFO] [stdout] note: required by a bound in `OutputPort::<'a>::write_message`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/portmidi-0.2.6/src/io.rs:165:29
[INFO] [stdout]     |
[INFO] [stdout] 165 |     pub fn write_message<T: Into<MidiMessage>>(&mut self, midi_message: T) -> Result<()> {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^ required by this bound in `OutputPort::<'a>::write_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `MidiMessage: From<[u8; 3]>` is not satisfied
[INFO] [stdout]    --> src/launchpad.rs:123:40
[INFO] [stdout]     |
[INFO] [stdout] 123 |         self.output_port.write_message([0x91, led.position, led.color]).expect("Fail");
[INFO] [stdout]     |                          ------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `From<[u8; 3]>` is not implemented for `MidiMessage`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               <MidiMessage as From<u32>>
[INFO] [stdout]               <MidiMessage as From<[u8; 4]>>
[INFO] [stdout]     = note: required for `[u8; 3]` to implement `Into<MidiMessage>`
[INFO] [stdout] note: required by a bound in `OutputPort::<'a>::write_message`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/portmidi-0.2.6/src/io.rs:165:29
[INFO] [stdout]     |
[INFO] [stdout] 165 |     pub fn write_message<T: Into<MidiMessage>>(&mut self, midi_message: T) -> Result<()> {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^ required by this bound in `OutputPort::<'a>::write_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `MidiMessage: From<[u8; 3]>` is not satisfied
[INFO] [stdout]    --> src/launchpad.rs:132:40
[INFO] [stdout]     |
[INFO] [stdout] 132 |         self.output_port.write_message([0x92, led.position, led.color]).expect("Fail");
[INFO] [stdout]     |                          ------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `From<[u8; 3]>` is not implemented for `MidiMessage`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               <MidiMessage as From<u32>>
[INFO] [stdout]               <MidiMessage as From<[u8; 4]>>
[INFO] [stdout]     = note: required for `[u8; 3]` to implement `Into<MidiMessage>`
[INFO] [stdout] note: required by a bound in `OutputPort::<'a>::write_message`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/portmidi-0.2.6/src/io.rs:165:29
[INFO] [stdout]     |
[INFO] [stdout] 165 |     pub fn write_message<T: Into<MidiMessage>>(&mut self, midi_message: T) -> Result<()> {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^ required by this bound in `OutputPort::<'a>::write_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `MidiMessage: From<[u8; 3]>` is not satisfied
[INFO] [stdout]    --> src/launchpad.rs:132:40
[INFO] [stdout]     |
[INFO] [stdout] 132 |         self.output_port.write_message([0x92, led.position, led.color]).expect("Fail");
[INFO] [stdout]     |                          ------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `From<[u8; 3]>` is not implemented for `MidiMessage`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               <MidiMessage as From<u32>>
[INFO] [stdout]               <MidiMessage as From<[u8; 4]>>
[INFO] [stdout]     = note: required for `[u8; 3]` to implement `Into<MidiMessage>`
[INFO] [stdout] note: required by a bound in `OutputPort::<'a>::write_message`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/portmidi-0.2.6/src/io.rs:165:29
[INFO] [stdout]     |
[INFO] [stdout] 165 |     pub fn write_message<T: Into<MidiMessage>>(&mut self, midi_message: T) -> Result<()> {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^ required by this bound in `OutputPort::<'a>::write_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors; 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0106, E0277.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0106`.
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors; 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0106, E0277.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0106`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `launchpad` (lib test) due to 5 previous errors; 9 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `launchpad` (lib) due to 5 previous errors; 9 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "acf892ab54b1714c6f6a567495e3cf699a0584cc06e0d0af8fc7227428bb10a5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "acf892ab54b1714c6f6a567495e3cf699a0584cc06e0d0af8fc7227428bb10a5", kill_on_drop: false }`
[INFO] [stdout] acf892ab54b1714c6f6a567495e3cf699a0584cc06e0d0af8fc7227428bb10a5
