[INFO] cloning repository https://github.com/djmill0326/iBootloader
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/djmill0326/iBootloader" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdjmill0326%2FiBootloader", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdjmill0326%2FiBootloader'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 43412e77b14ca8a8788be66a7fd6be5704bde6b5
[INFO] checking djmill0326/iBootloader against try#0611f7de057c584b8771102fde7aed6c70c71d3b for pr-146440
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdjmill0326%2FiBootloader" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/djmill0326/iBootloader
[INFO] finished tweaking git repo https://github.com/djmill0326/iBootloader
[INFO] tweaked toml for git repo https://github.com/djmill0326/iBootloader written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/djmill0326/iBootloader on toolchain 0611f7de057c584b8771102fde7aed6c70c71d3b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/djmill0326/iBootloader 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" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c6e76d720de29ee565b783d47e8d2810e02214e42ff138d386a722a32e7475e4
[INFO] running `Command { std: "docker" "start" "-a" "c6e76d720de29ee565b783d47e8d2810e02214e42ff138d386a722a32e7475e4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c6e76d720de29ee565b783d47e8d2810e02214e42ff138d386a722a32e7475e4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c6e76d720de29ee565b783d47e8d2810e02214e42ff138d386a722a32e7475e4", kill_on_drop: false }`
[INFO] [stdout] c6e76d720de29ee565b783d47e8d2810e02214e42ff138d386a722a32e7475e4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6f1f4da0e7c6d5b572787b2be1c59fa3d8babb5a52c23febfb33bcb09bf1d40b
[INFO] running `Command { std: "docker" "start" "-a" "6f1f4da0e7c6d5b572787b2be1c59fa3d8babb5a52c23febfb33bcb09bf1d40b", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.76
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.90
[INFO] [stderr]    Compiling log v0.4.20
[INFO] [stderr]    Compiling bumpalo v3.14.0
[INFO] [stderr]    Compiling wasm-bindgen v0.2.90
[INFO] [stderr]     Checking iBootloader v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused macro definition: `map`
[INFO] [stdout]    --> haptloader/bootloader.rs:277:18
[INFO] [stdout]     |
[INFO] [stdout] 277 |     macro_rules! map {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `map`
[INFO] [stdout]    --> haptloader/bootloader.rs:277:18
[INFO] [stdout]     |
[INFO] [stdout] 277 |     macro_rules! map {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling syn v2.0.48
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> haptloader/bootloader.rs:119:67
[INFO] [stdout]     |
[INFO] [stdout] 119 |             META.get(0).map_or_else(|| eprintln!("get failure"), |x| Proxy::send(port));
[INFO] [stdout]     |                                                                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> haptloader/bootloader.rs:147:23
[INFO] [stdout]     |
[INFO] [stdout] 147 |         fn call_super(x: Interner) -> Metaloader {
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> haptloader/bootloader.rs:193:20
[INFO] [stdout]     |
[INFO] [stdout] 193 |         fn send<T>(data: T) {
[INFO] [stdout]     |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> haptloader/bootloader.rs:166:39
[INFO] [stdout]     |
[INFO] [stdout] 166 |             let _ = iters.iter().map(|x| println!("{:?}", global_proxy!(haptloader/v1).0));
[INFO] [stdout]     |                                       ^
[INFO] [stdout] ...
[INFO] [stdout] 230 |             call!([haptloader/Proxy] <= { cleanup(); x } =>)
[INFO] [stdout]     |             ------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> haptloader/bootloader.rs:166:39
[INFO] [stdout]     |
[INFO] [stdout] 166 |             let _ = iters.iter().map(|x| println!("{:?}", global_proxy!(haptloader/v1).0));
[INFO] [stdout]     |                                       ^
[INFO] [stdout] ...
[INFO] [stdout] 230 |             call!([haptloader/Proxy] <= { cleanup(); x } =>)
[INFO] [stdout]     |             ------------------------------------------------ in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `stdcall` which comes from the expansion of the macro `call` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> haptloader/bootloader.rs:235:21
[INFO] [stdout]     |
[INFO] [stdout] 235 |         fn merge<T>(x: T, ext: Proxy) -> isize {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESET_0` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 |     static RESET_0: [I16;2] = xy!(unsafe [LOCAL_STORAGE[0], LOCAL_STORAGE[1]]);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESET_1` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     static RESET_1: [I16;2] = xy!(unsafe [LOCAL_STORAGE[1], LOCAL_STORAGE[2]]);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESET_2` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 |     static RESET_2: [I16;2] = xy!(unsafe [LOCAL_STORAGE[2], LOCAL_STORAGE[3]]);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESET_VECTORS` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 |     static RESET_VECTORS: [I16;3] = [RESET_0[0], RESET_1[0], RESET_2[0]];
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESET_A` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 |     static RESET_A: u8 = RESET_VECTORS[0].0 as u8;
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESET_B` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 |     static RESET_B: u8 = RESET_VECTORS[0].1 as u8;
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESET_C` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 |     static RESET_C: u8 = RESET_VECTORS[0].0 as u8;
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESET_D` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 |     static RESET_D: u8 = RESET_VECTORS[0].1 as u8;
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `JUMPER_A` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 |     static JUMPER_A: [u8; 4] = [RESET_A, RESET_B, RESET_C, RESET_D];
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `JUMPER_B` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 |     static JUMPER_B: [u8; 4] = [RESET_D, RESET_C, RESET_B, RESET_A];
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `INT` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 |     static INT: [u8; 4] = JUMPER_A;
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `LONG` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 |     static LONG: [u8; 8] = [RESET_A, RESET_B, RESET_C, RESET_D, RESET_D, RESET_C, RESET_B, RESET_A];
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `U16` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 |     static U16: I16 = I16 (0, 0);
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `U32` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |     static U32: [I16; 2] = xy!(unsafe INT);
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `U64` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 |     static U64: [u32; 2] = xy!(unsafe LONG);
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn get(key: usize) -> u64 {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_jumper` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 |     fn set_jumper(key: usize, value: I16) -> Output {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_pin` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn set_pin<T>(key: usize, value: I16) -> Output {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_vector` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn set_vector(key: usize, value: I16) -> Output {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `LOADER` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 101 |     static LOADER: Metaloader = global_proxy!(haptloader/v1);
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hapt_storage` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn hapt_storage() -> Interner {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cleanup` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn cleanup() {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Metaloader` is never constructed
[INFO] [stdout]    --> haptloader/bootloader.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 |     struct Metaloader(i128);
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `META` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 |     static META: [Metaloader; 3] = [Metaloader(42), Metaloader(0), Metaloader(1)];
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PROXY` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 |     static PROXY: Metaloader = Metaloader(42);
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `get_hashcode`, `init`, and `get` are never used
[INFO] [stdout]    --> haptloader/bootloader.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 117 |     impl Metaloader {
[INFO] [stdout]     |     --------------- associated functions in this implementation
[INFO] [stdout] 118 |         fn get_hashcode(port: &Proxy) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |         fn init(name: &str, id: i128) -> Metaloader {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |         fn get(hash: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Superclass` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:137:11
[INFO] [stdout]     |
[INFO] [stdout] 137 |     trait Superclass {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Fn` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:153:11
[INFO] [stdout]     |
[INFO] [stdout] 153 |     trait Fn: Superclass + Sized {
[INFO] [stdout]     |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `send` and `recv` are never used
[INFO] [stdout]    --> haptloader/bootloader.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 192 |     impl Proxy {
[INFO] [stdout]     |     ---------- associated functions in this implementation
[INFO] [stdout] 193 |         fn send<T>(data: T) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |         fn recv<T>(hook: &mut Interner) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProxyPass` is never constructed
[INFO] [stdout]    --> haptloader/bootloader.rs:206:12
[INFO] [stdout]     |
[INFO] [stdout] 206 |     struct ProxyPass<T>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ProxyTrait` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:234:11
[INFO] [stdout]     |
[INFO] [stdout] 234 |     trait ProxyTrait: Superclass {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `U16` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:250:10
[INFO] [stdout]     |
[INFO] [stdout] 250 |     type U16 = Proxy;
[INFO] [stdout]     |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `U24` is never constructed
[INFO] [stdout]    --> haptloader/bootloader.rs:252:12
[INFO] [stdout]     |
[INFO] [stdout] 252 |     struct U24(U16, i8);
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `U48` is never constructed
[INFO] [stdout]    --> haptloader/bootloader.rs:253:12
[INFO] [stdout]     |
[INFO] [stdout] 253 |     struct U48(U24, U16, i8);
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Intern` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:258:11
[INFO] [stdout]     |
[INFO] [stdout] 258 |     trait Intern<T>: Send + Unpin {}
[INFO] [stdout]     |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> haptloader/bootloader.rs:262:15
[INFO] [stdout]     |
[INFO] [stdout] 262 |     struct Rc(Gc, I16);
[INFO] [stdout]     |            -- ^^  ^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            fields in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing these fields
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> haptloader/header.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct File(usize);
[INFO] [stdout]   |            ---- ^^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> haptloader/header.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct Version(u8, u8, Semver);
[INFO] [stdout]    |            ------- ^^  ^^  ^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `version` are never read
[INFO] [stdout]   --> haptloader/header.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct HeaderItem {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 38 |     name: Arc<str>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 39 |     version: Version
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `header` and `data` are never read
[INFO] [stdout]   --> haptloader/header.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct HeaderData {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 52 |     header: HeaderItem,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 53 |     data: HeaderItem
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `header` and `function` are never read
[INFO] [stdout]   --> haptloader/header.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct HeaderFunction {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 66 |     header: HeaderItem,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 67 |     function: HeaderData
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> haptloader/header.rs:79:19
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct Header(HeaderItem, HeaderFunction, HeaderData);
[INFO] [stdout]    |            ------ ^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `header`, `intern`, `data`, and `functions` are never read
[INFO] [stdout]   --> haptloader/header.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub struct ParseState {
[INFO] [stdout]    |                ---------- fields in this struct
[INFO] [stdout] 85 |         header: HeaderItem,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 86 |         intern: HeaderData,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 87 |         data: HeaderData,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 88 |         functions: HeaderFunction
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> haptloader/header.rs:102:23
[INFO] [stdout]     |
[INFO] [stdout] 102 |     pub struct Parser(ParseState);
[INFO] [stdout]     |                ------ ^^^^^^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Header` is never constructed
[INFO] [stdout]    --> haptloader/header.rs:112:16
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub struct Header(super::Header, parser::Parser);
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]     = note: `#[deny(unused_unconstructable_pub_struct)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> haptloader/header.rs:112:23
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub struct Header(super::Header, parser::Parser);
[INFO] [stdout]     |                ------ ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                fields in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing these fields
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> haptloader/bootloader.rs:36:67
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub static mut LOCAL_STORAGE: &mut [I16; 16777216] = unsafe { &mut ROOT.1 };
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub static mut LOCAL_STORAGE: &mut [I16; 16777216] = unsafe { &raw mut ROOT.1 };
[INFO] [stdout]    |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> haptloader/bootloader.rs:68:42
[INFO] [stdout]    |
[INFO] [stdout] 68 |         Ok((unsafe { std::mem::transmute(&LOCAL_STORAGE) }, 0xFFFF + key))
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 68 |         Ok((unsafe { std::mem::transmute(&raw const LOCAL_STORAGE) }, 0xFFFF + key))
[INFO] [stdout]    |                                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `iBootloader` (bin "iBootloader" test) due to 1 previous error; 53 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> haptloader/bootloader.rs:119:67
[INFO] [stdout]     |
[INFO] [stdout] 119 |             META.get(0).map_or_else(|| eprintln!("get failure"), |x| Proxy::send(port));
[INFO] [stdout]     |                                                                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> haptloader/bootloader.rs:147:23
[INFO] [stdout]     |
[INFO] [stdout] 147 |         fn call_super(x: Interner) -> Metaloader {
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> haptloader/bootloader.rs:193:20
[INFO] [stdout]     |
[INFO] [stdout] 193 |         fn send<T>(data: T) {
[INFO] [stdout]     |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> haptloader/bootloader.rs:166:39
[INFO] [stdout]     |
[INFO] [stdout] 166 |             let _ = iters.iter().map(|x| println!("{:?}", global_proxy!(haptloader/v1).0));
[INFO] [stdout]     |                                       ^
[INFO] [stdout] ...
[INFO] [stdout] 230 |             call!([haptloader/Proxy] <= { cleanup(); x } =>)
[INFO] [stdout]     |             ------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> haptloader/bootloader.rs:166:39
[INFO] [stdout]     |
[INFO] [stdout] 166 |             let _ = iters.iter().map(|x| println!("{:?}", global_proxy!(haptloader/v1).0));
[INFO] [stdout]     |                                       ^
[INFO] [stdout] ...
[INFO] [stdout] 230 |             call!([haptloader/Proxy] <= { cleanup(); x } =>)
[INFO] [stdout]     |             ------------------------------------------------ in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `stdcall` which comes from the expansion of the macro `call` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> haptloader/bootloader.rs:235:21
[INFO] [stdout]     |
[INFO] [stdout] 235 |         fn merge<T>(x: T, ext: Proxy) -> isize {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESET_0` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 |     static RESET_0: [I16;2] = xy!(unsafe [LOCAL_STORAGE[0], LOCAL_STORAGE[1]]);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESET_1` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |     static RESET_1: [I16;2] = xy!(unsafe [LOCAL_STORAGE[1], LOCAL_STORAGE[2]]);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESET_2` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 |     static RESET_2: [I16;2] = xy!(unsafe [LOCAL_STORAGE[2], LOCAL_STORAGE[3]]);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESET_VECTORS` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 |     static RESET_VECTORS: [I16;3] = [RESET_0[0], RESET_1[0], RESET_2[0]];
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESET_A` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 |     static RESET_A: u8 = RESET_VECTORS[0].0 as u8;
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESET_B` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 |     static RESET_B: u8 = RESET_VECTORS[0].1 as u8;
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESET_C` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 |     static RESET_C: u8 = RESET_VECTORS[0].0 as u8;
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RESET_D` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 |     static RESET_D: u8 = RESET_VECTORS[0].1 as u8;
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `JUMPER_A` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 |     static JUMPER_A: [u8; 4] = [RESET_A, RESET_B, RESET_C, RESET_D];
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `JUMPER_B` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 |     static JUMPER_B: [u8; 4] = [RESET_D, RESET_C, RESET_B, RESET_A];
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `INT` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 |     static INT: [u8; 4] = JUMPER_A;
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `LONG` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 |     static LONG: [u8; 8] = [RESET_A, RESET_B, RESET_C, RESET_D, RESET_D, RESET_C, RESET_B, RESET_A];
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `U16` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 |     static U16: I16 = I16 (0, 0);
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `U32` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |     static U32: [I16; 2] = xy!(unsafe INT);
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `U64` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 |     static U64: [u32; 2] = xy!(unsafe LONG);
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn get(key: usize) -> u64 {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_jumper` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 |     fn set_jumper(key: usize, value: I16) -> Output {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_pin` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn set_pin<T>(key: usize, value: I16) -> Output {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_vector` is never used
[INFO] [stdout]   --> haptloader/bootloader.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn set_vector(key: usize, value: I16) -> Output {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `LOADER` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 101 |     static LOADER: Metaloader = global_proxy!(haptloader/v1);
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hapt_storage` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 |     fn hapt_storage() -> Interner {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cleanup` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn cleanup() {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Metaloader` is never constructed
[INFO] [stdout]    --> haptloader/bootloader.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 |     struct Metaloader(i128);
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `META` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 |     static META: [Metaloader; 3] = [Metaloader(42), Metaloader(0), Metaloader(1)];
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PROXY` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 |     static PROXY: Metaloader = Metaloader(42);
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `get_hashcode`, `init`, and `get` are never used
[INFO] [stdout]    --> haptloader/bootloader.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 117 |     impl Metaloader {
[INFO] [stdout]     |     --------------- associated functions in this implementation
[INFO] [stdout] 118 |         fn get_hashcode(port: &Proxy) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |         fn init(name: &str, id: i128) -> Metaloader {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |         fn get(hash: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Superclass` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:137:11
[INFO] [stdout]     |
[INFO] [stdout] 137 |     trait Superclass {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Fn` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:153:11
[INFO] [stdout]     |
[INFO] [stdout] 153 |     trait Fn: Superclass + Sized {
[INFO] [stdout]     |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `send` and `recv` are never used
[INFO] [stdout]    --> haptloader/bootloader.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 192 |     impl Proxy {
[INFO] [stdout]     |     ---------- associated functions in this implementation
[INFO] [stdout] 193 |         fn send<T>(data: T) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |         fn recv<T>(hook: &mut Interner) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProxyPass` is never constructed
[INFO] [stdout]    --> haptloader/bootloader.rs:206:12
[INFO] [stdout]     |
[INFO] [stdout] 206 |     struct ProxyPass<T>(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ProxyTrait` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:234:11
[INFO] [stdout]     |
[INFO] [stdout] 234 |     trait ProxyTrait: Superclass {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `U16` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:250:10
[INFO] [stdout]     |
[INFO] [stdout] 250 |     type U16 = Proxy;
[INFO] [stdout]     |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `U24` is never constructed
[INFO] [stdout]    --> haptloader/bootloader.rs:252:12
[INFO] [stdout]     |
[INFO] [stdout] 252 |     struct U24(U16, i8);
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `U48` is never constructed
[INFO] [stdout]    --> haptloader/bootloader.rs:253:12
[INFO] [stdout]     |
[INFO] [stdout] 253 |     struct U48(U24, U16, i8);
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Intern` is never used
[INFO] [stdout]    --> haptloader/bootloader.rs:258:11
[INFO] [stdout]     |
[INFO] [stdout] 258 |     trait Intern<T>: Send + Unpin {}
[INFO] [stdout]     |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> haptloader/bootloader.rs:262:15
[INFO] [stdout]     |
[INFO] [stdout] 262 |     struct Rc(Gc, I16);
[INFO] [stdout]     |            -- ^^  ^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            fields in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing these fields
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> haptloader/header.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct File(usize);
[INFO] [stdout]   |            ---- ^^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> haptloader/header.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct Version(u8, u8, Semver);
[INFO] [stdout]    |            ------- ^^  ^^  ^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `version` are never read
[INFO] [stdout]   --> haptloader/header.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct HeaderItem {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 38 |     name: Arc<str>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 39 |     version: Version
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `header` and `data` are never read
[INFO] [stdout]   --> haptloader/header.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct HeaderData {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 52 |     header: HeaderItem,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 53 |     data: HeaderItem
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `header` and `function` are never read
[INFO] [stdout]   --> haptloader/header.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct HeaderFunction {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 66 |     header: HeaderItem,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 67 |     function: HeaderData
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> haptloader/header.rs:79:19
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct Header(HeaderItem, HeaderFunction, HeaderData);
[INFO] [stdout]    |            ------ ^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            fields in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing these fields
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `header`, `intern`, `data`, and `functions` are never read
[INFO] [stdout]   --> haptloader/header.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub struct ParseState {
[INFO] [stdout]    |                ---------- fields in this struct
[INFO] [stdout] 85 |         header: HeaderItem,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 86 |         intern: HeaderData,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 87 |         data: HeaderData,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 88 |         functions: HeaderFunction
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> haptloader/header.rs:102:23
[INFO] [stdout]     |
[INFO] [stdout] 102 |     pub struct Parser(ParseState);
[INFO] [stdout]     |                ------ ^^^^^^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Header` is never constructed
[INFO] [stdout]    --> haptloader/header.rs:112:16
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub struct Header(super::Header, parser::Parser);
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]     = note: `#[deny(unused_unconstructable_pub_struct)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> haptloader/header.rs:112:23
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub struct Header(super::Header, parser::Parser);
[INFO] [stdout]     |                ------ ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                fields in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing these fields
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> haptloader/bootloader.rs:36:67
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub static mut LOCAL_STORAGE: &mut [I16; 16777216] = unsafe { &mut ROOT.1 };
[INFO] [stdout]    |                                                                   ^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub static mut LOCAL_STORAGE: &mut [I16; 16777216] = unsafe { &raw mut ROOT.1 };
[INFO] [stdout]    |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> haptloader/bootloader.rs:68:42
[INFO] [stdout]    |
[INFO] [stdout] 68 |         Ok((unsafe { std::mem::transmute(&LOCAL_STORAGE) }, 0xFFFF + key))
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 68 |         Ok((unsafe { std::mem::transmute(&raw const LOCAL_STORAGE) }, 0xFFFF + key))
[INFO] [stdout]    |                                           +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `iBootloader` (bin "iBootloader") due to 1 previous error; 53 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "6f1f4da0e7c6d5b572787b2be1c59fa3d8babb5a52c23febfb33bcb09bf1d40b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6f1f4da0e7c6d5b572787b2be1c59fa3d8babb5a52c23febfb33bcb09bf1d40b", kill_on_drop: false }`
[INFO] [stdout] 6f1f4da0e7c6d5b572787b2be1c59fa3d8babb5a52c23febfb33bcb09bf1d40b
