[INFO] fetching crate launchpad 0.1.1...
[INFO] checking launchpad-0.1.1 against master#c2f2db79ca3024f68d22b45aa22b570775c2c4ad for pr-124157
[INFO] extracting crate launchpad 0.1.1 into /workspace/builds/worker-5-tc1/source
[INFO] validating manifest of crates.io crate launchpad 0.1.1 on toolchain c2f2db79ca3024f68d22b45aa22b570775c2c4ad
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "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-5-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 2 packages to latest compatible versions
[INFO] [stderr]       Adding portmidi v0.2.6 (latest: v0.3.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "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-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2dc3167d73ffa423d1865a1ea74f4c33116527e4cd8baec5dce156722bed8bba
[INFO] running `Command { std: "docker" "start" "-a" "2dc3167d73ffa423d1865a1ea74f4c33116527e4cd8baec5dce156722bed8bba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2dc3167d73ffa423d1865a1ea74f4c33116527e4cd8baec5dce156722bed8bba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2dc3167d73ffa423d1865a1ea74f4c33116527e4cd8baec5dce156722bed8bba", kill_on_drop: false }`
[INFO] [stdout] 2dc3167d73ffa423d1865a1ea74f4c33116527e4cd8baec5dce156722bed8bba
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f8363d06c874a740cd70c74a7dd436ff6dc769aed9649c0411df072fab443245
[INFO] running `Command { std: "docker" "start" "-a" "f8363d06c874a740cd70c74a7dd436ff6dc769aed9649c0411df072fab443245", 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`, which is required by `[u8; 3]: Into<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<[u8; 4]>>
[INFO] [stdout]               <MidiMessage as From<u32>>
[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`, which is required by `[u8; 3]: Into<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<[u8; 4]>>
[INFO] [stdout]               <MidiMessage as From<u32>>
[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`, which is required by `[u8; 3]: Into<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<[u8; 4]>>
[INFO] [stdout]               <MidiMessage as From<u32>>
[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`, which is required by `[u8; 3]: Into<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<[u8; 4]>>
[INFO] [stdout]               <MidiMessage as From<u32>>
[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[E0521]: borrowed data escapes outside of associated function
[INFO] [stdout]   --> src/launchpad.rs:94:21
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn guess_from(midi: &pm::PortMidi) -> LaunchpadMk2 {
[INFO] [stdout]    |                       ----  - let's call the lifetime of this reference `'1`
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       `midi` is a reference that is only valid in the associated function body
[INFO] [stdout] ...
[INFO] [stdout] 94 |         let input = midi.input_port(input_device, 1024)
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `midi` escapes the associated function body here
[INFO] [stdout]    |                     argument requires that `'1` must outlive `'static`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0521]: borrowed data escapes outside of associated function
[INFO] [stdout]   --> src/launchpad.rs:94:21
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn guess_from(midi: &pm::PortMidi) -> LaunchpadMk2 {
[INFO] [stdout]    |                       ----  - let's call the lifetime of this reference `'1`
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       `midi` is a reference that is only valid in the associated function body
[INFO] [stdout] ...
[INFO] [stdout] 94 |         let input = midi.input_port(input_device, 1024)
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `midi` escapes the associated function body here
[INFO] [stdout]    |                     argument requires that `'1` must outlive `'static`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors; 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0106, E0277, E0521.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0106`.
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors; 9 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0106, E0277, E0521.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0106`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `launchpad` (lib) due to 6 previous errors; 9 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `launchpad` (lib test) due to 6 previous errors; 9 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f8363d06c874a740cd70c74a7dd436ff6dc769aed9649c0411df072fab443245", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f8363d06c874a740cd70c74a7dd436ff6dc769aed9649c0411df072fab443245", kill_on_drop: false }`
[INFO] [stdout] f8363d06c874a740cd70c74a7dd436ff6dc769aed9649c0411df072fab443245
