[INFO] fetching crate matrix_rhal 0.0.6...
[INFO] checking matrix_rhal-0.0.6 against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] extracting crate matrix_rhal 0.0.6 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate matrix_rhal 0.0.6
[INFO] finished tweaking crates.io crate matrix_rhal 0.0.6
[INFO] tweaked toml for crates.io crate matrix_rhal 0.0.6 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate matrix_rhal 0.0.6 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 crates.io crate matrix_rhal 0.0.6 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] warning: explicit `package.readme` can be inferred
[INFO] [stderr]   --> Cargo.toml:13:1
[INFO] [stderr]    |
[INFO] [stderr] 13 | readme = "README.md"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: binary `matrix_rhal` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /workspace/builds/worker-2-tc1/source/target/.../matrix_rhal
[INFO] [stderr]    |                                                  ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `matrix-rhal`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:12:8
[INFO] [stderr]    |
[INFO] [stderr] 12 - name = "matrix_rhal"
[INFO] [stderr] 12 + name = "matrix-rhal"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `matrix-rhal`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:15:19
[INFO] [stderr]    |
[INFO] [stderr] 15 ~ version = "0.0.6"
[INFO] [stderr] 16 + [[bin]]
[INFO] [stderr] 17 + name = "matrix-rhal"
[INFO] [stderr] 18 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `matrix_rhal` (manifest) generated 2 warnings
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cc v1.0.50
[INFO] [stderr]   Downloaded nix v0.16.1
[INFO] [stderr]   Downloaded libc v0.2.67
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 9629bd14aceb4bc709bcf12f03ed79221456c8a2367c037b68f914252f5f05f0
[INFO] running `Command { std: "docker" "start" "9629bd14aceb4bc709bcf12f03ed79221456c8a2367c037b68f914252f5f05f0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9629bd14aceb4bc709bcf12f03ed79221456c8a2367c037b68f914252f5f05f0", 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" "9629bd14aceb4bc709bcf12f03ed79221456c8a2367c037b68f914252f5f05f0" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9629bd14aceb4bc709bcf12f03ed79221456c8a2367c037b68f914252f5f05f0", 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" "9629bd14aceb4bc709bcf12f03ed79221456c8a2367c037b68f914252f5f05f0" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: explicit `package.readme` can be inferred
[INFO] [stderr]   --> Cargo.toml:13:1
[INFO] [stderr]    |
[INFO] [stderr] 13 | readme = "README.md"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: binary `matrix_rhal` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /opt/rustwide/target/.../matrix_rhal
[INFO] [stderr]    |                          ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `matrix-rhal`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:12:8
[INFO] [stderr]    |
[INFO] [stderr] 12 - name = "matrix_rhal"
[INFO] [stderr] 12 + name = "matrix-rhal"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `matrix-rhal`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:15:19
[INFO] [stderr]    |
[INFO] [stderr] 15 ~ version = "0.0.6"
[INFO] [stderr] 16 + [[bin]]
[INFO] [stderr] 17 + name = "matrix-rhal"
[INFO] [stderr] 18 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `matrix_rhal` (manifest) generated 2 warnings
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]    Compiling libc v0.2.67
[INFO] [stderr]    Compiling nix v0.16.1
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking matrix_rhal v0.0.6 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]   --> src/error.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn from(error: nix::Error) -> Self {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/gpio/bank.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         for mut bank in &mut banks {
[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: constant `UART` is never used
[INFO] [stdout]  --> src/bus/memory_map.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub const UART: u16 = 0x1000;
[INFO] [stdout]   |               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MICROPHONE_ARRAY` is never used
[INFO] [stdout]  --> src/bus/memory_map.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub const MICROPHONE_ARRAY: u16 = 0x2000;
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AUDIO_OUTPUT` is never used
[INFO] [stdout]  --> src/bus/memory_map.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub const AUDIO_OUTPUT: u16 = 0x6000;
[INFO] [stdout]   |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ZWAVE_GPIO` is never used
[INFO] [stdout]   --> src/bus/memory_map.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub const ZWAVE_GPIO: u16 = 0x7000;
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MCU` is never used
[INFO] [stdout]   --> src/bus/memory_map.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const MCU: u16 = 0x90;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/everloop/mod.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn new(bus: &Bus) -> Everloop {
[INFO] [stdout]    |                     ^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn new(bus: &Bus) -> Everloop<'_> {
[INFO] [stdout]    |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/everloop/mod.rs:41:32
[INFO] [stdout]    |
[INFO] [stdout] 41 |                 .push(unsafe { std::mem::transmute::<[u8; 4], i32>([led.r, led.g, led.b, led.w]) });
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 41 -                 .push(unsafe { std::mem::transmute::<[u8; 4], i32>([led.r, led.g, led.b, led.w]) });
[INFO] [stdout] 41 +                 .push(unsafe { i32::from_ne_bytes([led.r, led.g, led.b, led.w]) });
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/everloop/mod.rs:46:35
[INFO] [stdout]    |
[INFO] [stdout] 46 |             request.push(unsafe { std::mem::transmute::<[u8; 4], i32>([0, 0, 0, 0]) })
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 46 -             request.push(unsafe { std::mem::transmute::<[u8; 4], i32>([0, 0, 0, 0]) })
[INFO] [stdout] 46 +             request.push(unsafe { i32::from_ne_bytes([0, 0, 0, 0]) })
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/gpio/mod.rs:28:33
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn new(bus: &'a Bus) -> Gpio {
[INFO] [stdout]    |                      --         ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn new(bus: &'a Bus) -> Gpio<'a> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/gpio/bank.rs:24:21
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(bus: &Bus) -> Bank {
[INFO] [stdout]    |                     ^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(bus: &Bus) -> Bank<'_> {
[INFO] [stdout]    |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/gpio/bank.rs:33:25
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new_set(bus: &Bus) -> Vec<Bank> {
[INFO] [stdout]    |                         ^^^^         ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new_set(bus: &Bus) -> Vec<Bank<'_>> {
[INFO] [stdout]    |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/sensors/mod.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(bus: &Bus) -> Sensors {
[INFO] [stdout]    |                     ^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(bus: &Bus) -> Sensors<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/sensors/mod.rs:110:27
[INFO] [stdout]     |
[INFO] [stdout] 110 |             yaw: unsafe { std::mem::transmute::<i32, f32>(data[14]) },
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 110 -             yaw: unsafe { std::mem::transmute::<i32, f32>(data[14]) },
[INFO] [stdout] 110 +             yaw: unsafe { f32::from_bits(i32::cast_unsigned(data[14])) },
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/sensors/mod.rs:111:29
[INFO] [stdout]     |
[INFO] [stdout] 111 |             pitch: unsafe { std::mem::transmute::<i32, f32>(data[15]) },
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 111 -             pitch: unsafe { std::mem::transmute::<i32, f32>(data[15]) },
[INFO] [stdout] 111 +             pitch: unsafe { f32::from_bits(i32::cast_unsigned(data[15])) },
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/sensors/mod.rs:112:28
[INFO] [stdout]     |
[INFO] [stdout] 112 |             roll: unsafe { std::mem::transmute::<i32, f32>(data[16]) },
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 112 -             roll: unsafe { std::mem::transmute::<i32, f32>(data[16]) },
[INFO] [stdout] 112 +             roll: unsafe { f32::from_bits(i32::cast_unsigned(data[16])) },
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]   --> src/error.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn from(error: nix::Error) -> Self {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/gpio/bank.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         for mut bank in &mut banks {
[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: constant `UART` is never used
[INFO] [stdout]  --> src/bus/memory_map.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub const UART: u16 = 0x1000;
[INFO] [stdout]   |               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MICROPHONE_ARRAY` is never used
[INFO] [stdout]  --> src/bus/memory_map.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub const MICROPHONE_ARRAY: u16 = 0x2000;
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AUDIO_OUTPUT` is never used
[INFO] [stdout]  --> src/bus/memory_map.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub const AUDIO_OUTPUT: u16 = 0x6000;
[INFO] [stdout]   |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ZWAVE_GPIO` is never used
[INFO] [stdout]   --> src/bus/memory_map.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub const ZWAVE_GPIO: u16 = 0x7000;
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MCU` is never used
[INFO] [stdout]   --> src/bus/memory_map.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const MCU: u16 = 0x90;
[INFO] [stdout]    |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/everloop/mod.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn new(bus: &Bus) -> Everloop {
[INFO] [stdout]    |                     ^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn new(bus: &Bus) -> Everloop<'_> {
[INFO] [stdout]    |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/everloop/mod.rs:41:32
[INFO] [stdout]    |
[INFO] [stdout] 41 |                 .push(unsafe { std::mem::transmute::<[u8; 4], i32>([led.r, led.g, led.b, led.w]) });
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 41 -                 .push(unsafe { std::mem::transmute::<[u8; 4], i32>([led.r, led.g, led.b, led.w]) });
[INFO] [stdout] 41 +                 .push(unsafe { i32::from_ne_bytes([led.r, led.g, led.b, led.w]) });
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/everloop/mod.rs:46:35
[INFO] [stdout]    |
[INFO] [stdout] 46 |             request.push(unsafe { std::mem::transmute::<[u8; 4], i32>([0, 0, 0, 0]) })
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 46 -             request.push(unsafe { std::mem::transmute::<[u8; 4], i32>([0, 0, 0, 0]) })
[INFO] [stdout] 46 +             request.push(unsafe { i32::from_ne_bytes([0, 0, 0, 0]) })
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/gpio/mod.rs:28:33
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn new(bus: &'a Bus) -> Gpio {
[INFO] [stdout]    |                      --         ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn new(bus: &'a Bus) -> Gpio<'a> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/gpio/bank.rs:24:21
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(bus: &Bus) -> Bank {
[INFO] [stdout]    |                     ^^^^     ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(bus: &Bus) -> Bank<'_> {
[INFO] [stdout]    |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/gpio/bank.rs:33:25
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new_set(bus: &Bus) -> Vec<Bank> {
[INFO] [stdout]    |                         ^^^^         ^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new_set(bus: &Bus) -> Vec<Bank<'_>> {
[INFO] [stdout]    |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/sensors/mod.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(bus: &Bus) -> Sensors {
[INFO] [stdout]    |                     ^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(bus: &Bus) -> Sensors<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/sensors/mod.rs:110:27
[INFO] [stdout]     |
[INFO] [stdout] 110 |             yaw: unsafe { std::mem::transmute::<i32, f32>(data[14]) },
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 110 -             yaw: unsafe { std::mem::transmute::<i32, f32>(data[14]) },
[INFO] [stdout] 110 +             yaw: unsafe { f32::from_bits(i32::cast_unsigned(data[14])) },
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/sensors/mod.rs:111:29
[INFO] [stdout]     |
[INFO] [stdout] 111 |             pitch: unsafe { std::mem::transmute::<i32, f32>(data[15]) },
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 111 -             pitch: unsafe { std::mem::transmute::<i32, f32>(data[15]) },
[INFO] [stdout] 111 +             pitch: unsafe { f32::from_bits(i32::cast_unsigned(data[15])) },
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/sensors/mod.rs:112:28
[INFO] [stdout]     |
[INFO] [stdout] 112 |             roll: unsafe { std::mem::transmute::<i32, f32>(data[16]) },
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 112 -             roll: unsafe { std::mem::transmute::<i32, f32>(data[16]) },
[INFO] [stdout] 112 +             roll: unsafe { f32::from_bits(i32::cast_unsigned(data[16])) },
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sensors`
[INFO] [stdout]  --> src/main.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let sensors = hal::Sensors::new(&bus);
[INFO] [stdout]   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sensors`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gpio`
[INFO] [stdout]   --> src/main.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let gpio = hal::Gpio::new(&bus);
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_gpio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_gpio_set_value` is never used
[INFO] [stdout]   --> src/main.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn test_gpio_set_value(gpio: &hal::Gpio) {
[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 `test_gpio_pwm` is never used
[INFO] [stdout]   --> src/main.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn test_gpio_pwm(gpio: &hal::Gpio) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_gpio_set_servo` is never used
[INFO] [stdout]   --> src/main.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn test_gpio_set_servo(gpio: &hal::Gpio) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_sensors` is never used
[INFO] [stdout]   --> src/main.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn test_sensors(sensors: &hal::Sensors) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delay` is never used
[INFO] [stdout]   --> src/main.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn delay(ms: u64) {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sensors`
[INFO] [stdout]  --> src/main.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let sensors = hal::Sensors::new(&bus);
[INFO] [stdout]   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sensors`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gpio`
[INFO] [stdout]   --> src/main.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let gpio = hal::Gpio::new(&bus);
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_gpio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_gpio_set_value` is never used
[INFO] [stdout]   --> src/main.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn test_gpio_set_value(gpio: &hal::Gpio) {
[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 `test_gpio_pwm` is never used
[INFO] [stdout]   --> src/main.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn test_gpio_pwm(gpio: &hal::Gpio) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_gpio_set_servo` is never used
[INFO] [stdout]   --> src/main.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn test_gpio_set_servo(gpio: &hal::Gpio) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_sensors` is never used
[INFO] [stdout]   --> src/main.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn test_sensors(sensors: &hal::Sensors) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delay` is never used
[INFO] [stdout]   --> src/main.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn delay(ms: u64) {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.55s
[INFO] running `Command { std: "docker" "inspect" "9629bd14aceb4bc709bcf12f03ed79221456c8a2367c037b68f914252f5f05f0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9629bd14aceb4bc709bcf12f03ed79221456c8a2367c037b68f914252f5f05f0", kill_on_drop: false }`
[INFO] [stdout] 9629bd14aceb4bc709bcf12f03ed79221456c8a2367c037b68f914252f5f05f0
