[INFO] cloning repository https://github.com/Rootlou/CHIP-8
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Rootlou/CHIP-8" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRootlou%2FCHIP-8", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRootlou%2FCHIP-8'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 28435f4d6240926e24c1550a1d062443df695d72
[INFO] checking Rootlou/CHIP-8 against e977a0b5ab976a591981e7263bd67a71a4f79308 for pr-158914
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRootlou%2FCHIP-8" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Rootlou/CHIP-8
[INFO] finished tweaking git repo https://github.com/Rootlou/CHIP-8
[INFO] tweaked toml for git repo https://github.com/Rootlou/CHIP-8 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Rootlou/CHIP-8 on toolchain e977a0b5ab976a591981e7263bd67a71a4f79308
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e977a0b5ab976a591981e7263bd67a71a4f79308" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Rootlou/CHIP-8 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" "+e977a0b5ab976a591981e7263bd67a71a4f79308" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serde_derive v1.0.124
[INFO] [stderr]   Downloaded piston-graphics_api_version v1.0.0
[INFO] [stderr]   Downloaded pistoncore-input v1.0.0
[INFO] [stderr]   Downloaded pistoncore-glutin_window v0.68.2
[INFO] [stderr]   Downloaded wayland-cursor v0.28.5
[INFO] [stderr]   Downloaded gif v0.11.1
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.3
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.3
[INFO] [stderr]   Downloaded xcursor v0.3.3
[INFO] [stderr]   Downloaded ab_glyph_rasterizer v0.1.4
[INFO] [stderr]   Downloaded piston2d-graphics v0.39.0
[INFO] [stderr]   Downloaded pistoncore-event_loop v0.52.0
[INFO] [stderr]   Downloaded rayon-core v1.9.0
[INFO] [stderr]   Downloaded memoffset v0.6.1
[INFO] [stderr]   Downloaded piston-float v1.0.0
[INFO] [stderr]   Downloaded piston-viewport v1.0.0
[INFO] [stderr]   Downloaded wayland-sys v0.28.5
[INFO] [stderr]   Downloaded wayland-egl v0.28.5
[INFO] [stderr]   Downloaded wayland-scanner v0.28.5
[INFO] [stderr]   Downloaded wayland-commons v0.28.5
[INFO] [stderr]   Downloaded piston-texture v0.8.0
[INFO] [stderr]   Downloaded libloading v0.7.0
[INFO] [stderr]   Downloaded once_cell v1.7.2
[INFO] [stderr]   Downloaded wayland-protocols v0.28.5
[INFO] [stderr]   Downloaded core-graphics v0.22.2
[INFO] [stderr]   Downloaded serde v1.0.124
[INFO] [stderr]   Downloaded wayland-client v0.28.5
[INFO] [stderr]   Downloaded nom v6.1.2
[INFO] [stderr]   Downloaded rayon v1.5.0
[INFO] [stderr]   Downloaded syn v1.0.64
[INFO] [stderr]   Downloaded ndk-sys v0.2.1
[INFO] [stderr]   Downloaded libc v0.2.88
[INFO] [stderr]   Downloaded pistoncore-window v0.47.0
[INFO] [stderr]   Downloaded piston2d-opengl_graphics v0.77.0
[INFO] [stderr]   Downloaded piston v0.52.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 673fb71fe34c77e0a6e75522332876da0aed3f33593731ec43a1ae4179f1b6de
[INFO] running `Command { std: "docker" "start" "673fb71fe34c77e0a6e75522332876da0aed3f33593731ec43a1ae4179f1b6de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "673fb71fe34c77e0a6e75522332876da0aed3f33593731ec43a1ae4179f1b6de", 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" "673fb71fe34c77e0a6e75522332876da0aed3f33593731ec43a1ae4179f1b6de" "/opt/rustwide/cargo-home/bin/cargo" "+e977a0b5ab976a591981e7263bd67a71a4f79308" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "673fb71fe34c77e0a6e75522332876da0aed3f33593731ec43a1ae4179f1b6de", 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" "673fb71fe34c77e0a6e75522332876da0aed3f33593731ec43a1ae4179f1b6de" "/opt/rustwide/cargo-home/bin/cargo" "+e977a0b5ab976a591981e7263bd67a71a4f79308" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.88
[INFO] [stderr]    Compiling autocfg v1.0.1
[INFO] [stderr]    Compiling xml-rs v0.8.3
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling proc-macro2 v1.0.24
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]    Compiling pkg-config v0.3.19
[INFO] [stderr]     Checking libloading v0.7.0
[INFO] [stderr]     Checking smallvec v1.6.1
[INFO] [stderr]    Compiling memchr v2.3.4
[INFO] [stderr]     Checking piston-float v1.0.0
[INFO] [stderr]     Checking ttf-parser v0.6.2
[INFO] [stderr]     Checking once_cell v1.7.2
[INFO] [stderr]    Compiling nom v6.1.2
[INFO] [stderr]    Compiling rayon-core v1.9.0
[INFO] [stderr]    Compiling syn v1.0.64
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.4
[INFO] [stderr]     Checking dlib v0.5.0
[INFO] [stderr]     Checking piston-viewport v1.0.0
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]    Compiling serde v1.0.124
[INFO] [stderr]    Compiling serde_derive v1.0.124
[INFO] [stderr]     Checking piston-graphics_api_version v1.0.0
[INFO] [stderr]     Checking walkdir v2.3.1
[INFO] [stderr]     Checking instant v0.1.9
[INFO] [stderr]     Checking libloading v0.6.7
[INFO] [stderr]    Compiling crossbeam-utils v0.8.3
[INFO] [stderr]    Compiling memoffset v0.6.1
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling rayon v1.5.0
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]     Checking xdg v2.2.0
[INFO] [stderr]    Compiling wayland-sys v0.28.5
[INFO] [stderr]    Compiling x11-dl v2.18.5
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]    Compiling crc32fast v1.2.1
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling gl_generator v0.13.1
[INFO] [stderr]     Checking dlib v0.4.2
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]     Checking lock_api v0.4.2
[INFO] [stderr]     Checking lazycell v1.3.0
[INFO] [stderr]     Checking weezl v0.1.4
[INFO] [stderr]     Checking owned_ttf_parser v0.6.0
[INFO] [stderr]     Checking deflate v0.8.6
[INFO] [stderr]     Checking rusttype v0.9.2
[INFO] [stderr]    Compiling wayland-scanner v0.28.5
[INFO] [stderr]     Checking crossbeam-epoch v0.9.3
[INFO] [stderr]     Checking crossbeam-channel v0.5.0
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]     Checking gif v0.11.1
[INFO] [stderr]     Checking andrew v0.3.1
[INFO] [stderr]     Checking nix v0.20.0
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking net2 v0.2.37
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking crossbeam-deque v0.8.0
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.5
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.7
[INFO] [stderr]    Compiling gl v0.13.0
[INFO] [stderr]     Checking parking_lot_core v0.8.3
[INFO] [stderr]     Checking memmap2 v0.1.0
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking raw-window-handle v0.3.3
[INFO] [stderr]     Checking parking_lot v0.11.1
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]     Checking png v0.16.8
[INFO] [stderr]     Checking shader_version v0.7.0
[INFO] [stderr]     Checking xcursor v0.3.3
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]     Checking vecmath v1.0.0
[INFO] [stderr]     Checking read_color v1.0.0
[INFO] [stderr]     Checking bytemuck v1.5.1
[INFO] [stderr]     Checking piston-texture v0.8.0
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]     Checking interpolation v0.2.0
[INFO] [stderr]     Checking piston-shaders_graphics2d v0.4.0
[INFO] [stderr]    Compiling wayland-client v0.28.5
[INFO] [stderr]    Compiling wayland-protocols v0.28.5
[INFO] [stderr]     Checking piston2d-graphics v0.39.0
[INFO] [stderr]     Checking wayland-commons v0.28.5
[INFO] [stderr]     Checking calloop v0.6.5
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking wayland-cursor v0.28.5
[INFO] [stderr]     Checking wayland-egl v0.28.5
[INFO] [stderr]     Checking tiff v0.6.1
[INFO] [stderr]     Checking image v0.23.14
[INFO] [stderr]     Checking piston2d-opengl_graphics v0.77.0
[INFO] [stderr]     Checking pistoncore-input v1.0.0
[INFO] [stderr]     Checking pistoncore-window v0.47.0
[INFO] [stderr]     Checking pistoncore-event_loop v0.52.0
[INFO] [stderr]     Checking piston v0.52.1
[INFO] [stderr]     Checking smithay-client-toolkit v0.12.3
[INFO] [stderr]     Checking winit v0.24.0
[INFO] [stderr]     Checking glutin v0.26.0
[INFO] [stderr]     Checking pistoncore-glutin_window v0.68.2
[INFO] [stderr]     Checking CHIP8 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `UpdateArgs`
[INFO] [stdout]  --> src/Drivers/display.rs:9:46
[INFO] [stdout]   |
[INFO] [stdout] 9 | use piston::input::{RenderArgs, RenderEvent, UpdateArgs, UpdateEvent};
[INFO] [stdout]   |                                              ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UpdateArgs`
[INFO] [stdout]  --> src/Drivers/display.rs:9:46
[INFO] [stdout]   |
[INFO] [stdout] 9 | use piston::input::{RenderArgs, RenderEvent, UpdateArgs, UpdateEvent};
[INFO] [stdout]   |                                              ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UpdateArgs`
[INFO] [stdout]  --> src/Interpreter/../Drivers/display.rs:9:46
[INFO] [stdout]   |
[INFO] [stdout] 9 | use piston::input::{RenderArgs, RenderEvent, UpdateArgs, UpdateEvent};
[INFO] [stdout]   |                                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UpdateArgs`
[INFO] [stdout]  --> src/Interpreter/../Drivers/display.rs:9:46
[INFO] [stdout]   |
[INFO] [stdout] 9 | use piston::input::{RenderArgs, RenderEvent, UpdateArgs, UpdateEvent};
[INFO] [stdout]   |                                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0015]: cannot call non-const associated function `Box::<[[u8; 64]; 32]>::new` in statics
[INFO] [stdout]   --> src/Drivers/display.rs:30:44
[INFO] [stdout]    |
[INFO] [stdout] 30 |   pub static mut framebuffer: Box<FBuffer> = Box::new([
[INFO] [stdout]    |  ____________________________________________^
[INFO] [stdout] 31 | |     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
[INFO] [stdout] 32 | |     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
[INFO] [stdout] 33 | |     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
[INFO] [stdout] ...  |
[INFO] [stdout] 62 | |     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
[INFO] [stdout] 63 | | ]);
[INFO] [stdout]    | |__^
[INFO] [stdout]    |
[INFO] [stdout]    = note: calls in statics are limited to constant functions, tuple structs and tuple variants
[INFO] [stdout]    = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0015]: cannot call non-const associated function `Box::<[[u8; 64]; 32]>::new` in statics
[INFO] [stdout]   --> src/Drivers/display.rs:30:44
[INFO] [stdout]    |
[INFO] [stdout] 30 |   pub static mut framebuffer: Box<FBuffer> = Box::new([
[INFO] [stdout]    |  ____________________________________________^
[INFO] [stdout] 31 | |     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
[INFO] [stdout] 32 | |     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
[INFO] [stdout] 33 | |     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
[INFO] [stdout] ...  |
[INFO] [stdout] 62 | |     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
[INFO] [stdout] 63 | | ]);
[INFO] [stdout]    | |__^
[INFO] [stdout]    |
[INFO] [stdout]    = note: calls in statics are limited to constant functions, tuple structs and tuple variants
[INFO] [stdout]    = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/Drivers/display.rs:92:30
[INFO] [stdout]    |
[INFO] [stdout] 92 |             current_fbuffer: framebuffer
[INFO] [stdout]    |                              ^^^^^^^^^^^ expected `[[u8; 64]; 32]`, found `Box<[[u8; 64]; 32]>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected array `[[u8; 64]; 32]`
[INFO] [stdout]              found struct `Box<[[u8; 64]; 32]>`
[INFO] [stdout] help: consider unboxing the value
[INFO] [stdout]    |
[INFO] [stdout] 92 |             current_fbuffer: *framebuffer
[INFO] [stdout]    |                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/Drivers/display.rs:92:30
[INFO] [stdout]    |
[INFO] [stdout] 92 |             current_fbuffer: framebuffer
[INFO] [stdout]    |                              ^^^^^^^^^^^ expected `[[u8; 64]; 32]`, found `Box<[[u8; 64]; 32]>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected array `[[u8; 64]; 32]`
[INFO] [stdout]              found struct `Box<[[u8; 64]; 32]>`
[INFO] [stdout] help: consider unboxing the value
[INFO] [stdout]    |
[INFO] [stdout] 92 |             current_fbuffer: *framebuffer
[INFO] [stdout]    |                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/Drivers/display.rs:155:32
[INFO] [stdout]     |
[INFO] [stdout] 155 |         self.current_fbuffer = framebuffer;
[INFO] [stdout]     |         --------------------   ^^^^^^^^^^^ expected `[[u8; 64]; 32]`, found `Box<[[u8; 64]; 32]>`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         expected due to the type of this binding
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected array `[[u8; 64]; 32]`
[INFO] [stdout]               found struct `Box<[[u8; 64]; 32]>`
[INFO] [stdout] help: consider unboxing the value
[INFO] [stdout]     |
[INFO] [stdout] 155 |         self.current_fbuffer = *framebuffer;
[INFO] [stdout]     |                                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/Drivers/display.rs:155:32
[INFO] [stdout]     |
[INFO] [stdout] 155 |         self.current_fbuffer = framebuffer;
[INFO] [stdout]     |         --------------------   ^^^^^^^^^^^ expected `[[u8; 64]; 32]`, found `Box<[[u8; 64]; 32]>`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         expected due to the type of this binding
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected array `[[u8; 64]; 32]`
[INFO] [stdout]               found struct `Box<[[u8; 64]; 32]>`
[INFO] [stdout] help: consider unboxing the value
[INFO] [stdout]     |
[INFO] [stdout] 155 |         self.current_fbuffer = *framebuffer;
[INFO] [stdout]     |                                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0015]: cannot call non-const associated function `Box::<[[u8; 64]; 32]>::new` in statics
[INFO] [stdout]   --> src/Interpreter/../Drivers/display.rs:30:44
[INFO] [stdout]    |
[INFO] [stdout] 30 |   pub static mut framebuffer: Box<FBuffer> = Box::new([
[INFO] [stdout]    |  ____________________________________________^
[INFO] [stdout] 31 | |     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
[INFO] [stdout] 32 | |     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
[INFO] [stdout] 33 | |     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
[INFO] [stdout] ...  |
[INFO] [stdout] 62 | |     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
[INFO] [stdout] 63 | | ]);
[INFO] [stdout]    | |__^
[INFO] [stdout]    |
[INFO] [stdout]    = note: calls in statics are limited to constant functions, tuple structs and tuple variants
[INFO] [stdout]    = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0015]: cannot call non-const associated function `Box::<[[u8; 64]; 32]>::new` in statics
[INFO] [stdout]   --> src/Interpreter/../Drivers/display.rs:30:44
[INFO] [stdout]    |
[INFO] [stdout] 30 |   pub static mut framebuffer: Box<FBuffer> = Box::new([
[INFO] [stdout]    |  ____________________________________________^
[INFO] [stdout] 31 | |     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
[INFO] [stdout] 32 | |     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
[INFO] [stdout] 33 | |     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...
[INFO] [stdout] ...  |
[INFO] [stdout] 62 | |     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
[INFO] [stdout] 63 | | ]);
[INFO] [stdout]    | |__^
[INFO] [stdout]    |
[INFO] [stdout]    = note: calls in statics are limited to constant functions, tuple structs and tuple variants
[INFO] [stdout]    = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/Interpreter/../Drivers/display.rs:92:30
[INFO] [stdout]    |
[INFO] [stdout] 92 |             current_fbuffer: framebuffer
[INFO] [stdout]    |                              ^^^^^^^^^^^ expected `[[u8; 64]; 32]`, found `Box<[[u8; 64]; 32]>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected array `[[u8; 64]; 32]`
[INFO] [stdout]              found struct `Box<[[u8; 64]; 32]>`
[INFO] [stdout] help: consider unboxing the value
[INFO] [stdout]    |
[INFO] [stdout] 92 |             current_fbuffer: *framebuffer
[INFO] [stdout]    |                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/Interpreter/../Drivers/display.rs:92:30
[INFO] [stdout]    |
[INFO] [stdout] 92 |             current_fbuffer: framebuffer
[INFO] [stdout]    |                              ^^^^^^^^^^^ expected `[[u8; 64]; 32]`, found `Box<[[u8; 64]; 32]>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected array `[[u8; 64]; 32]`
[INFO] [stdout]              found struct `Box<[[u8; 64]; 32]>`
[INFO] [stdout] help: consider unboxing the value
[INFO] [stdout]    |
[INFO] [stdout] 92 |             current_fbuffer: *framebuffer
[INFO] [stdout]    |                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/Interpreter/../Drivers/display.rs:155:32
[INFO] [stdout]     |
[INFO] [stdout] 155 |         self.current_fbuffer = framebuffer;
[INFO] [stdout]     |         --------------------   ^^^^^^^^^^^ expected `[[u8; 64]; 32]`, found `Box<[[u8; 64]; 32]>`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         expected due to the type of this binding
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected array `[[u8; 64]; 32]`
[INFO] [stdout]               found struct `Box<[[u8; 64]; 32]>`
[INFO] [stdout] help: consider unboxing the value
[INFO] [stdout]     |
[INFO] [stdout] 155 |         self.current_fbuffer = *framebuffer;
[INFO] [stdout]     |                                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/Interpreter/../Drivers/display.rs:155:32
[INFO] [stdout]     |
[INFO] [stdout] 155 |         self.current_fbuffer = framebuffer;
[INFO] [stdout]     |         --------------------   ^^^^^^^^^^^ expected `[[u8; 64]; 32]`, found `Box<[[u8; 64]; 32]>`
[INFO] [stdout]     |         |
[INFO] [stdout]     |         expected due to the type of this binding
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected array `[[u8; 64]; 32]`
[INFO] [stdout]               found struct `Box<[[u8; 64]; 32]>`
[INFO] [stdout] help: consider unboxing the value
[INFO] [stdout]     |
[INFO] [stdout] 155 |         self.current_fbuffer = *framebuffer;
[INFO] [stdout]     |                                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]   --> src/Drivers/timer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn run(&self, f: fn()) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] ...
[INFO] [stdout] 16 |         self.run(f);
[INFO] [stdout]    |         ----------- recursive call site
[INFO] [stdout]    |
[INFO] [stdout]    = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]    = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]   --> src/Drivers/timer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     pub fn run(&self, f: fn()) {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] ...
[INFO] [stdout] 16 |         self.run(f);
[INFO] [stdout]    |         ----------- recursive call site
[INFO] [stdout]    |
[INFO] [stdout]    = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]    = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `*self` which is behind a mutable reference
[INFO] [stdout]    --> src/Drivers/display.rs:145:30
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn render(&mut self, args: &RenderArgs) {
[INFO] [stdout]     |               --------- move occurs because `*self` has type `Drivers::display::Display`, which does not implement the `Copy` trait
[INFO] [stdout] ...
[INFO] [stdout] 145 |             for pixel_loc in self.translate_framebuffer(self.current_fbuffer, 10) {
[INFO] [stdout]     |                              ^^^^ ----------------------------------------------- `*self` moved due to this method call
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              `*self` is moved here
[INFO] [stdout]     |
[INFO] [stdout] note: `Drivers::display::Display::translate_framebuffer` takes ownership of the receiver `self`, which moves `*self`
[INFO] [stdout]    --> src/Drivers/display.rs:114:30
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn translate_framebuffer(self, fbuffer: FBuffer, length: u16) -> Vec<Pixel> {
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout] note: if `Drivers::display::Display` implemented `Clone`, you could clone the value
[INFO] [stdout]    --> src/Drivers/display.rs:70:1
[INFO] [stdout]     |
[INFO] [stdout]  70 | pub struct Display {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 145 |             for pixel_loc in self.translate_framebuffer(self.current_fbuffer, 10) {
[INFO] [stdout]     |                              ---- you could clone this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `*self` which is behind a mutable reference
[INFO] [stdout]    --> src/Drivers/display.rs:145:30
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn render(&mut self, args: &RenderArgs) {
[INFO] [stdout]     |               --------- move occurs because `*self` has type `Drivers::display::Display`, which does not implement the `Copy` trait
[INFO] [stdout] ...
[INFO] [stdout] 145 |             for pixel_loc in self.translate_framebuffer(self.current_fbuffer, 10) {
[INFO] [stdout]     |                              ^^^^ ----------------------------------------------- `*self` moved due to this method call
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              `*self` is moved here
[INFO] [stdout]     |
[INFO] [stdout] note: `Drivers::display::Display::translate_framebuffer` takes ownership of the receiver `self`, which moves `*self`
[INFO] [stdout]    --> src/Drivers/display.rs:114:30
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn translate_framebuffer(self, fbuffer: FBuffer, length: u16) -> Vec<Pixel> {
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout] note: if `Drivers::display::Display` implemented `Clone`, you could clone the value
[INFO] [stdout]    --> src/Drivers/display.rs:70:1
[INFO] [stdout]     |
[INFO] [stdout]  70 | pub struct Display {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 145 |             for pixel_loc in self.translate_framebuffer(self.current_fbuffer, 10) {
[INFO] [stdout]     |                              ---- you could clone this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `self` because it is borrowed
[INFO] [stdout]    --> src/Drivers/display.rs:140:39
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn render(&mut self, args: &RenderArgs) {
[INFO] [stdout]     |               --------- binding `self` declared here
[INFO] [stdout] ...
[INFO] [stdout] 140 |         self.gl.draw(args.viewport(), |c, gl| {
[INFO] [stdout]     |         ------- ----                  ^^^^^^^ move out of `self` occurs here
[INFO] [stdout]     |         |       |
[INFO] [stdout]     |         |       borrow later used by call
[INFO] [stdout]     |         borrow of `self.gl` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 145 |             for pixel_loc in self.translate_framebuffer(self.current_fbuffer, 10) {
[INFO] [stdout]     |                              ---- move occurs due to use in closure
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `self` because it is borrowed
[INFO] [stdout]    --> src/Drivers/display.rs:140:39
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn render(&mut self, args: &RenderArgs) {
[INFO] [stdout]     |               --------- binding `self` declared here
[INFO] [stdout] ...
[INFO] [stdout] 140 |         self.gl.draw(args.viewport(), |c, gl| {
[INFO] [stdout]     |         ------- ----                  ^^^^^^^ move out of `self` occurs here
[INFO] [stdout]     |         |       |
[INFO] [stdout]     |         |       borrow later used by call
[INFO] [stdout]     |         borrow of `self.gl` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 145 |             for pixel_loc in self.translate_framebuffer(self.current_fbuffer, 10) {
[INFO] [stdout]     |                              ---- move occurs due to use in closure
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `*self` which is behind a mutable reference
[INFO] [stdout]    --> src/Interpreter/../Drivers/display.rs:145:30
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn render(&mut self, args: &RenderArgs) {
[INFO] [stdout]     |               --------- move occurs because `*self` has type `opcode::display::Display`, which does not implement the `Copy` trait
[INFO] [stdout] ...
[INFO] [stdout] 145 |             for pixel_loc in self.translate_framebuffer(self.current_fbuffer, 10) {
[INFO] [stdout]     |                              ^^^^ ----------------------------------------------- `*self` moved due to this method call
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              `*self` is moved here
[INFO] [stdout]     |
[INFO] [stdout] note: `opcode::display::Display::translate_framebuffer` takes ownership of the receiver `self`, which moves `*self`
[INFO] [stdout]    --> src/Interpreter/../Drivers/display.rs:114:30
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn translate_framebuffer(self, fbuffer: FBuffer, length: u16) -> Vec<Pixel> {
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout] note: if `opcode::display::Display` implemented `Clone`, you could clone the value
[INFO] [stdout]    --> src/Interpreter/../Drivers/display.rs:70:1
[INFO] [stdout]     |
[INFO] [stdout]  70 | pub struct Display {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 145 |             for pixel_loc in self.translate_framebuffer(self.current_fbuffer, 10) {
[INFO] [stdout]     |                              ---- you could clone this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `self` because it is borrowed
[INFO] [stdout]    --> src/Interpreter/../Drivers/display.rs:140:39
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn render(&mut self, args: &RenderArgs) {
[INFO] [stdout]     |               --------- binding `self` declared here
[INFO] [stdout] ...
[INFO] [stdout] 140 |         self.gl.draw(args.viewport(), |c, gl| {
[INFO] [stdout]     |         ------- ----                  ^^^^^^^ move out of `self` occurs here
[INFO] [stdout]     |         |       |
[INFO] [stdout]     |         |       borrow later used by call
[INFO] [stdout]     |         borrow of `self.gl` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 145 |             for pixel_loc in self.translate_framebuffer(self.current_fbuffer, 10) {
[INFO] [stdout]     |                              ---- move occurs due to use in closure
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]   --> src/Interpreter/opcode.rs:29:35
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn call_machine_code(self,opc: u16) {
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `*self` which is behind a mutable reference
[INFO] [stdout]    --> src/Interpreter/../Drivers/display.rs:145:30
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn render(&mut self, args: &RenderArgs) {
[INFO] [stdout]     |               --------- move occurs because `*self` has type `opcode::display::Display`, which does not implement the `Copy` trait
[INFO] [stdout] ...
[INFO] [stdout] 145 |             for pixel_loc in self.translate_framebuffer(self.current_fbuffer, 10) {
[INFO] [stdout]     |                              ^^^^ ----------------------------------------------- `*self` moved due to this method call
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              `*self` is moved here
[INFO] [stdout]     |
[INFO] [stdout] note: `opcode::display::Display::translate_framebuffer` takes ownership of the receiver `self`, which moves `*self`
[INFO] [stdout]    --> src/Interpreter/../Drivers/display.rs:114:30
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn translate_framebuffer(self, fbuffer: FBuffer, length: u16) -> Vec<Pixel> {
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout] note: if `opcode::display::Display` implemented `Clone`, you could clone the value
[INFO] [stdout]    --> src/Interpreter/../Drivers/display.rs:70:1
[INFO] [stdout]     |
[INFO] [stdout]  70 | pub struct Display {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 145 |             for pixel_loc in self.translate_framebuffer(self.current_fbuffer, 10) {
[INFO] [stdout]     |                              ---- you could clone this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0505]: cannot move out of `self` because it is borrowed
[INFO] [stdout]    --> src/Interpreter/../Drivers/display.rs:140:39
[INFO] [stdout]     |
[INFO] [stdout] 132 |     fn render(&mut self, args: &RenderArgs) {
[INFO] [stdout]     |               --------- binding `self` declared here
[INFO] [stdout] ...
[INFO] [stdout] 140 |         self.gl.draw(args.viewport(), |c, gl| {
[INFO] [stdout]     |         ------- ----                  ^^^^^^^ move out of `self` occurs here
[INFO] [stdout]     |         |       |
[INFO] [stdout]     |         |       borrow later used by call
[INFO] [stdout]     |         borrow of `self.gl` occurs here
[INFO] [stdout] ...
[INFO] [stdout] 145 |             for pixel_loc in self.translate_framebuffer(self.current_fbuffer, 10) {
[INFO] [stdout]     |                              ---- move occurs due to use in closure
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `preg` is assigned to, but never used
[INFO] [stdout]   --> src/Interpreter/opcode.rs:43:53
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn return_from_call(self, mut pmem: Memory, mut preg: Registers) {
[INFO] [stdout]    |                                                     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_preg` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `preg` is never read
[INFO] [stdout]   --> src/Interpreter/opcode.rs:47:28
[INFO] [stdout]    |
[INFO] [stdout] 47 | ...   Some(addr)  => preg.eip = addr-0x02,    // for jump and such subtract 0x2 as the interpreter loop will increment eip after exe...
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `preg` is assigned to, but never used
[INFO] [stdout]   --> src/Interpreter/opcode.rs:55:40
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn jmp_address(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_preg` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]   --> src/Interpreter/opcode.rs:29:35
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn call_machine_code(self,opc: u16) {
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `preg` is never read
[INFO] [stdout]   --> src/Interpreter/opcode.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |         preg.eip = addr-0x2;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `preg` is never read
[INFO] [stdout]   --> src/Interpreter/opcode.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |         preg.eip = addr-0x2;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `preg` is assigned to, but never used
[INFO] [stdout]   --> src/Interpreter/opcode.rs:43:53
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn return_from_call(self, mut pmem: Memory, mut preg: Registers) {
[INFO] [stdout]    |                                                     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_preg` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `preg` is never read
[INFO] [stdout]   --> src/Interpreter/opcode.rs:47:28
[INFO] [stdout]    |
[INFO] [stdout] 47 | ...   Some(addr)  => preg.eip = addr-0x02,    // for jump and such subtract 0x2 as the interpreter loop will increment eip after exe...
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `preg` is never read
[INFO] [stdout]   --> src/Interpreter/opcode.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |             preg.eip += 0x2;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `preg` is assigned to, but never used
[INFO] [stdout]   --> src/Interpreter/opcode.rs:55:40
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn jmp_address(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_preg` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `preg` is never read
[INFO] [stdout]   --> src/Interpreter/opcode.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |         preg.eip = addr-0x2;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `preg` is never read
[INFO] [stdout]   --> src/Interpreter/opcode.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |             preg.eip += 0x2; 
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `preg` is never read
[INFO] [stdout]   --> src/Interpreter/opcode.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 |         preg.eip = addr-0x2;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `preg` is never read
[INFO] [stdout]    --> src/Interpreter/opcode.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |             preg.eip  += 0x2;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `preg` is never read
[INFO] [stdout]   --> src/Interpreter/opcode.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |             preg.eip += 0x2;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `preg` is never read
[INFO] [stdout]   --> src/Interpreter/opcode.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |             preg.eip += 0x2; 
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `preg` is never read
[INFO] [stdout]    --> src/Interpreter/opcode.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |             preg.eip  += 0x2;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reg_y`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:211:17
[INFO] [stdout]     |
[INFO] [stdout] 211 |             let reg_y = preg.rw_register(((0xF0 & opc) >> 4) as usize, MODE::READ).unwrap();
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_reg_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reg_x`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:220:13
[INFO] [stdout]     |
[INFO] [stdout] 220 |         let reg_x = preg.rw_register(((0xF00 & opc) >> 8) as usize, MODE::READ).unwrap();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_reg_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reg_y`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:221:13
[INFO] [stdout]     |
[INFO] [stdout] 221 |         let reg_y = preg.rw_register(((0xF0 & opc) >> 4) as usize, MODE::READ).unwrap();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_reg_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:223:13
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let result = 0;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/Interpreter/opcode.rs:229:43
[INFO] [stdout]     |
[INFO] [stdout] 229 |     pub fn lsb_shift_left(self, opc: u16, mut preg: Registers) {
[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: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:229:33
[INFO] [stdout]     |
[INFO] [stdout] 229 |     pub fn lsb_shift_left(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preg`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:229:43
[INFO] [stdout]     |
[INFO] [stdout] 229 |     pub fn lsb_shift_left(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/Interpreter/opcode.rs:236:43
[INFO] [stdout]     |
[INFO] [stdout] 236 |     pub fn reg_noncompare(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                           ----^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:236:33
[INFO] [stdout]     |
[INFO] [stdout] 236 |     pub fn reg_noncompare(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preg`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:236:43
[INFO] [stdout]     |
[INFO] [stdout] 236 |     pub fn reg_noncompare(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/Interpreter/opcode.rs:243:34
[INFO] [stdout]     |
[INFO] [stdout] 243 |     pub fn jmp_I(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                  ----^^^^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:243:24
[INFO] [stdout]     |
[INFO] [stdout] 243 |     pub fn jmp_I(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preg`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:243:34
[INFO] [stdout]     |
[INFO] [stdout] 243 |     pub fn jmp_I(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reg_y`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:211:17
[INFO] [stdout]     |
[INFO] [stdout] 211 |             let reg_y = preg.rw_register(((0xF0 & opc) >> 4) as usize, MODE::READ).unwrap();
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_reg_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/Interpreter/opcode.rs:250:39
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn jmp_offset(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                       ----^^^^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:250:29
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn jmp_offset(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preg`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:250:39
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn jmp_offset(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reg_x`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:220:13
[INFO] [stdout]     |
[INFO] [stdout] 220 |         let reg_x = preg.rw_register(((0xF00 & opc) >> 8) as usize, MODE::READ).unwrap();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_reg_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/Interpreter/opcode.rs:257:37
[INFO] [stdout]     |
[INFO] [stdout] 257 |     pub fn rand_reg(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                     ----^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reg_y`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:221:13
[INFO] [stdout]     |
[INFO] [stdout] 221 |         let reg_y = preg.rw_register(((0xF0 & opc) >> 4) as usize, MODE::READ).unwrap();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_reg_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:257:27
[INFO] [stdout]     |
[INFO] [stdout] 257 |     pub fn rand_reg(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:223:13
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let result = 0;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preg`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:257:37
[INFO] [stdout]     |
[INFO] [stdout] 257 |     pub fn rand_reg(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/Interpreter/opcode.rs:229:43
[INFO] [stdout]     |
[INFO] [stdout] 229 |     pub fn lsb_shift_left(self, opc: u16, mut preg: Registers) {
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/Interpreter/opcode.rs:264:40
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn draw_sprite(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                        ----^^^^
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:229:33
[INFO] [stdout]     |
[INFO] [stdout] 229 |     pub fn lsb_shift_left(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:264:30
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn draw_sprite(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preg`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:229:43
[INFO] [stdout]     |
[INFO] [stdout] 229 |     pub fn lsb_shift_left(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/Interpreter/opcode.rs:236:43
[INFO] [stdout]     |
[INFO] [stdout] 236 |     pub fn reg_noncompare(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                           ----^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preg`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:264:40
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn draw_sprite(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:236:33
[INFO] [stdout]     |
[INFO] [stdout] 236 |     pub fn reg_noncompare(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/Interpreter/opcode.rs:271:47
[INFO] [stdout]     |
[INFO] [stdout] 271 |     pub fn stored_key_pressed(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                               ----^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preg`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:236:43
[INFO] [stdout]     |
[INFO] [stdout] 236 |     pub fn reg_noncompare(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:271:37
[INFO] [stdout]     |
[INFO] [stdout] 271 |     pub fn stored_key_pressed(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preg`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:271:47
[INFO] [stdout]     |
[INFO] [stdout] 271 |     pub fn stored_key_pressed(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/Interpreter/opcode.rs:243:34
[INFO] [stdout]     |
[INFO] [stdout] 243 |     pub fn jmp_I(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                  ----^^^^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:278:40
[INFO] [stdout]     |
[INFO] [stdout] 278 |     pub fn stored_key_notpressed(self, opc: u16) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:285:28
[INFO] [stdout]     |
[INFO] [stdout] 285 |     pub fn get_delay(self, opc: u16) {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:243:24
[INFO] [stdout]     |
[INFO] [stdout] 243 |     pub fn jmp_I(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preg`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:243:34
[INFO] [stdout]     |
[INFO] [stdout] 243 |     pub fn jmp_I(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:292:24
[INFO] [stdout]     |
[INFO] [stdout] 292 |     pub fn await_press(opc: u16) {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/Interpreter/opcode.rs:250:39
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn jmp_offset(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                       ----^^^^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:250:29
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn jmp_offset(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preg`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:250:39
[INFO] [stdout]     |
[INFO] [stdout] 250 |     pub fn jmp_offset(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:299:28
[INFO] [stdout]     |
[INFO] [stdout] 299 |     pub fn set_delay_timer(opc: u16) {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/Interpreter/opcode.rs:257:37
[INFO] [stdout]     |
[INFO] [stdout] 257 |     pub fn rand_reg(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                     ----^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:306:28
[INFO] [stdout]     |
[INFO] [stdout] 306 |     pub fn set_sound_timer(opc: u16) {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:257:27
[INFO] [stdout]     |
[INFO] [stdout] 257 |     pub fn rand_reg(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:313:22
[INFO] [stdout]     |
[INFO] [stdout] 313 |     pub fn reg_add_I(opc: u16) {
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preg`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:257:37
[INFO] [stdout]     |
[INFO] [stdout] 257 |     pub fn rand_reg(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:320:29
[INFO] [stdout]     |
[INFO] [stdout] 320 |     pub fn set_I_sprite_reg(opc: u16, sprite_address: u16) {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/Interpreter/opcode.rs:264:40
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn draw_sprite(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                        ----^^^^
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:264:30
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn draw_sprite(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sprite_address`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:320:39
[INFO] [stdout]     |
[INFO] [stdout] 320 |     pub fn set_I_sprite_reg(opc: u16, sprite_address: u16) {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sprite_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preg`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:264:40
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn draw_sprite(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:327:27
[INFO] [stdout]     |
[INFO] [stdout] 327 |     pub fn store_bcd_at_I(opc: u16) {
[INFO] [stdout]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/Interpreter/opcode.rs:271:47
[INFO] [stdout]     |
[INFO] [stdout] 271 |     pub fn stored_key_pressed(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                               ----^^^^
[INFO] [stdout]     |                                               |
[INFO] [stdout]     |                                               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:271:37
[INFO] [stdout]     |
[INFO] [stdout] 271 |     pub fn stored_key_pressed(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:334:26
[INFO] [stdout]     |
[INFO] [stdout] 334 |     pub fn write_reg_mem(opc: u16) {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preg`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:271:47
[INFO] [stdout]     |
[INFO] [stdout] 271 |     pub fn stored_key_pressed(self, opc: u16, mut preg: Registers) {
[INFO] [stdout]     |                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:278:40
[INFO] [stdout]     |
[INFO] [stdout] 278 |     pub fn stored_key_notpressed(self, opc: u16) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:341:25
[INFO] [stdout]     |
[INFO] [stdout] 341 |     pub fn read_reg_mem(opc: u16) {
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:285:28
[INFO] [stdout]     |
[INFO] [stdout] 285 |     pub fn get_delay(self, opc: u16) {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:292:24
[INFO] [stdout]     |
[INFO] [stdout] 292 |     pub fn await_press(opc: u16) {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:299:28
[INFO] [stdout]     |
[INFO] [stdout] 299 |     pub fn set_delay_timer(opc: u16) {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:306:28
[INFO] [stdout]     |
[INFO] [stdout] 306 |     pub fn set_sound_timer(opc: u16) {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:313:22
[INFO] [stdout]     |
[INFO] [stdout] 313 |     pub fn reg_add_I(opc: u16) {
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:320:29
[INFO] [stdout]     |
[INFO] [stdout] 320 |     pub fn set_I_sprite_reg(opc: u16, sprite_address: u16) {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sprite_address`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:320:39
[INFO] [stdout]     |
[INFO] [stdout] 320 |     pub fn set_I_sprite_reg(opc: u16, sprite_address: u16) {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sprite_address`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:327:27
[INFO] [stdout]     |
[INFO] [stdout] 327 |     pub fn store_bcd_at_I(opc: u16) {
[INFO] [stdout]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let mut reg: Registers = states.1;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:334:26
[INFO] [stdout]     |
[INFO] [stdout] 334 |     pub fn write_reg_mem(opc: u16) {
[INFO] [stdout]     |                          ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opc`
[INFO] [stdout]    --> src/Interpreter/opcode.rs:341:25
[INFO] [stdout]     |
[INFO] [stdout] 341 |     pub fn read_reg_mem(opc: u16) {
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_opc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let mut reg: Registers = states.1;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0015, E0308, E0505, E0507.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0015`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0015, E0308, E0505, E0507.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0015`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `CHIP8` (bin "CHIP8" test) due to 10 previous errors; 49 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `CHIP8` (bin "CHIP8") due to 10 previous errors; 49 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "673fb71fe34c77e0a6e75522332876da0aed3f33593731ec43a1ae4179f1b6de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "673fb71fe34c77e0a6e75522332876da0aed3f33593731ec43a1ae4179f1b6de", kill_on_drop: false }`
[INFO] [stdout] 673fb71fe34c77e0a6e75522332876da0aed3f33593731ec43a1ae4179f1b6de
