[INFO] cloning repository https://github.com/andrewimm/gb-dynarec
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/andrewimm/gb-dynarec" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandrewimm%2Fgb-dynarec", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandrewimm%2Fgb-dynarec'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 59153298e461ae89bde86c9f00bbf135c4d4dab0
[INFO] checking andrewimm/gb-dynarec against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandrewimm%2Fgb-dynarec" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/andrewimm/gb-dynarec
[INFO] finished tweaking git repo https://github.com/andrewimm/gb-dynarec
[INFO] tweaked toml for git repo https://github.com/andrewimm/gb-dynarec written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/andrewimm/gb-dynarec on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/andrewimm/gb-dynarec 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" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wayland-cursor v0.29.4
[INFO] [stderr]   Downloaded wayland-sys v0.29.4
[INFO] [stderr]   Downloaded wayland-scanner v0.29.4
[INFO] [stderr]   Downloaded foreign-types-macros v0.2.2
[INFO] [stderr]   Downloaded windows_macros v0.13.0
[INFO] [stderr]   Downloaded proc-macro-crate v1.0.0
[INFO] [stderr]   Downloaded const-sha1 v0.2.0
[INFO] [stderr]   Downloaded wayland-commons v0.29.4
[INFO] [stderr]   Downloaded ndk-glue v0.7.0
[INFO] [stderr]   Downloaded raw-window-handle v0.5.0
[INFO] [stderr]   Downloaded crossfont v0.5.0
[INFO] [stderr]   Downloaded windows v0.13.0
[INFO] [stderr]   Downloaded calloop v0.10.1
[INFO] [stderr]   Downloaded wayland-client v0.29.4
[INFO] [stderr]   Downloaded serde v1.0.128
[INFO] [stderr]   Downloaded freetype-rs v0.26.0
[INFO] [stderr]   Downloaded wayland-protocols v0.29.4
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.16.0
[INFO] [stderr]   Downloaded bytemuck v1.12.1
[INFO] [stderr]   Downloaded tiny-skia-path v0.7.0
[INFO] [stderr]   Downloaded tiny-skia v0.7.0
[INFO] [stderr]   Downloaded ndk-sys v0.4.0
[INFO] [stderr]   Downloaded nix v0.24.2
[INFO] [stderr]   Downloaded sctk-adwaita v0.4.2
[INFO] [stderr]   Downloaded memmap2 v0.5.7
[INFO] [stderr]   Downloaded winit v0.27.2
[INFO] [stderr]   Downloaded windows_gen v0.13.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fb2bc5332595f678a469efc0e48c32c1d3e4e22acfd74c3c81a3e25f085e4293
[INFO] running `Command { std: "docker" "start" "-a" "fb2bc5332595f678a469efc0e48c32c1d3e4e22acfd74c3c81a3e25f085e4293", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fb2bc5332595f678a469efc0e48c32c1d3e4e22acfd74c3c81a3e25f085e4293", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb2bc5332595f678a469efc0e48c32c1d3e4e22acfd74c3c81a3e25f085e4293", kill_on_drop: false }`
[INFO] [stdout] fb2bc5332595f678a469efc0e48c32c1d3e4e22acfd74c3c81a3e25f085e4293
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f465923c4e2019d71fc5420a69ae0b51460223c356032d0b1b385ff08f02400b
[INFO] running `Command { std: "docker" "start" "-a" "f465923c4e2019d71fc5420a69ae0b51460223c356032d0b1b385ff08f02400b", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.125
[INFO] [stderr]    Compiling gb-dynarec v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling x11-dl v2.20.0
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/devices/video/mod.rs:370:52
[INFO] [stdout]     |
[INFO] [stdout] 370 |                     self.object_line_cache[offset] = (
[INFO] [stdout]     |  ____________________________________________________^
[INFO] [stdout] 371 | |                     0x80 | // present
[INFO] [stdout]     | |____________________^
[INFO] [stdout] ...
[INFO] [stdout] 374 |                       color_index
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 375 | |                   );
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 370 ~                   self.object_line_cache[offset] = 0x80 | // present
[INFO] [stdout] 371 |                     priority |
[INFO] [stdout] 372 |                     palette |
[INFO] [stdout] 373 ~                     color_index ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `can_dynarec`
[INFO] [stdout]  --> src/emulator.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::mem::{MemoryAreas, can_dynarec, memory_write_byte, memory_write_word};
[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: `self`
[INFO] [stdout]  --> src/shell/headless.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::emulator::{self, Core};
[INFO] [stdout]   |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/devices/video/mod.rs:370:52
[INFO] [stdout]     |
[INFO] [stdout] 370 |                     self.object_line_cache[offset] = (
[INFO] [stdout]     |  ____________________________________________________^
[INFO] [stdout] 371 | |                     0x80 | // present
[INFO] [stdout]     | |____________________^
[INFO] [stdout] ...
[INFO] [stdout] 374 |                       color_index
[INFO] [stdout]     |  ________________________________^
[INFO] [stdout] 375 | |                   );
[INFO] [stdout]     | |___________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 370 ~                   self.object_line_cache[offset] = 0x80 | // present
[INFO] [stdout] 371 |                     priority |
[INFO] [stdout] 372 |                     palette |
[INFO] [stdout] 373 ~                     color_index ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `can_dynarec`
[INFO] [stdout]  --> src/emulator.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::mem::{MemoryAreas, can_dynarec, memory_write_byte, memory_write_word};
[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: `self`
[INFO] [stdout]  --> src/shell/headless.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::emulator::{self, Core};
[INFO] [stdout]   |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]   --> src/cache/mod.rs:99:42
[INFO] [stdout]    |
[INFO] [stdout] 99 |   pub fn translate_code_block(&mut self, code: &Box<[u8]>, ip: usize, mem: *const MemoryAreas) -> usize {
[INFO] [stdout]    |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cache/mod.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |         let mut entry = dirty_flags[index];
[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: `addr`
[INFO] [stdout]    --> src/cart.rs:147:27
[INFO] [stdout]     |
[INFO] [stdout] 147 |   fn write_rom(&mut self, addr: u16, value: u8) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/cart.rs:147:38
[INFO] [stdout]     |
[INFO] [stdout] 147 |   fn write_rom(&mut self, addr: u16, value: u8) {
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/cart.rs:158:30
[INFO] [stdout]     |
[INFO] [stdout] 158 |   fn get_ram_override(&self, addr: u16) -> Option<u8> {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/cart.rs:228:30
[INFO] [stdout]     |
[INFO] [stdout] 228 |   fn get_ram_override(&self, addr: u16) -> Option<u8> {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_ip`
[INFO] [stdout]   --> src/emulator.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let old_ip = self.registers.ip as u16;
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_ip`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 |   let mut core = match get_file_arg().and_then(load_rom) {
[INFO] [stdout]    |       ----^^^^
[INFO] [stdout]    |       |
[INFO] [stdout]    |       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_usage` is never used
[INFO] [stdout]   --> src/main.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn print_usage() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `packet_type` and `body` are never read
[INFO] [stdout]  --> src/debug/protocol.rs:4:3
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Packet {
[INFO] [stdout]   |            ------ fields in this struct
[INFO] [stdout] 4 |   packet_type: PacketType,
[INFO] [stdout]   |   ^^^^^^^^^^^
[INFO] [stdout] 5 |   body: Box<[u8]>,
[INFO] [stdout]   |   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `AL` is never constructed
[INFO] [stdout]     --> src/emitter/x86_64.rs:2459:3
[INFO] [stdout]      |
[INFO] [stdout] 2457 | enum X86Reg8 {
[INFO] [stdout]      |      ------- variant in this enum
[INFO] [stdout] 2458 |   AH,
[INFO] [stdout] 2459 |   AL,
[INFO] [stdout]      |   ^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `X86Reg8` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `RAX`, `RBX`, and `RCX` are never constructed
[INFO] [stdout]     --> src/emitter/x86_64.rs:2479:3
[INFO] [stdout]      |
[INFO] [stdout] 2478 | enum X86Reg64 {
[INFO] [stdout]      |      -------- variants in this enum
[INFO] [stdout] 2479 |   RAX,
[INFO] [stdout]      |   ^^^
[INFO] [stdout] 2480 |   RBX,
[INFO] [stdout]      |   ^^^
[INFO] [stdout] 2481 |   RCX,
[INFO] [stdout]      |   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:1787:66
[INFO] [stdout]      |
[INFO] [stdout] 1787 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as u64);
[INFO] [stdout]      |                                                                  ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 1787 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as *const () as u64);
[INFO] [stdout]      |                                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:1846:67
[INFO] [stdout]      |
[INFO] [stdout] 1846 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as u64);
[INFO] [stdout]      |                                                                   ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 1846 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as *const () as u64);
[INFO] [stdout]      |                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:1891:67
[INFO] [stdout]      |
[INFO] [stdout] 1891 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as u64);
[INFO] [stdout]      |                                                                   ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 1891 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as *const () as u64);
[INFO] [stdout]      |                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:1936:67
[INFO] [stdout]      |
[INFO] [stdout] 1936 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_word as u64);
[INFO] [stdout]      |                                                                   ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 1936 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_word as *const () as u64);
[INFO] [stdout]      |                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:1974:67
[INFO] [stdout]      |
[INFO] [stdout] 1974 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as u64);
[INFO] [stdout]      |                                                                   ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 1974 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as *const () as u64);
[INFO] [stdout]      |                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:2012:66
[INFO] [stdout]      |
[INFO] [stdout] 2012 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as u64);
[INFO] [stdout]      |                                                                  ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 2012 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as *const () as u64);
[INFO] [stdout]      |                                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:2050:67
[INFO] [stdout]      |
[INFO] [stdout] 2050 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as u64);
[INFO] [stdout]      |                                                                   ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 2050 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as *const () as u64);
[INFO] [stdout]      |                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:2089:66
[INFO] [stdout]      |
[INFO] [stdout] 2089 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as u64);
[INFO] [stdout]      |                                                                  ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 2089 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as *const () as u64);
[INFO] [stdout]      |                                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:2128:67
[INFO] [stdout]      |
[INFO] [stdout] 2128 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_word as u64);
[INFO] [stdout]      |                                                                   ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 2128 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_word as *const () as u64);
[INFO] [stdout]      |                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:2177:66
[INFO] [stdout]      |
[INFO] [stdout] 2177 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_word as u64);
[INFO] [stdout]      |                                                                  ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 2177 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_word as *const () as u64);
[INFO] [stdout]      |                                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:2237:66
[INFO] [stdout]      |
[INFO] [stdout] 2237 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as u64);
[INFO] [stdout]      |                                                                  ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 2237 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as *const () as u64);
[INFO] [stdout]      |                                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:2273:67
[INFO] [stdout]      |
[INFO] [stdout] 2273 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as u64);
[INFO] [stdout]      |                                                                   ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 2273 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as *const () as u64);
[INFO] [stdout]      |                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:2310:66
[INFO] [stdout]      |
[INFO] [stdout] 2310 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as u64);
[INFO] [stdout]      |                                                                  ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 2310 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as *const () as u64);
[INFO] [stdout]      |                                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]   --> src/cache/mod.rs:99:42
[INFO] [stdout]    |
[INFO] [stdout] 99 |   pub fn translate_code_block(&mut self, code: &Box<[u8]>, ip: usize, mem: *const MemoryAreas) -> usize {
[INFO] [stdout]    |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cache/mod.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |         let mut entry = dirty_flags[index];
[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: `addr`
[INFO] [stdout]    --> src/cart.rs:147:27
[INFO] [stdout]     |
[INFO] [stdout] 147 |   fn write_rom(&mut self, addr: u16, value: u8) {
[INFO] [stdout]     |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/cart.rs:147:38
[INFO] [stdout]     |
[INFO] [stdout] 147 |   fn write_rom(&mut self, addr: u16, value: u8) {
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/cart.rs:158:30
[INFO] [stdout]     |
[INFO] [stdout] 158 |   fn get_ram_override(&self, addr: u16) -> Option<u8> {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/cart.rs:228:30
[INFO] [stdout]     |
[INFO] [stdout] 228 |   fn get_ram_override(&self, addr: u16) -> Option<u8> {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/devices/video/mod.rs:655:9
[INFO] [stdout]     |
[INFO] [stdout] 655 |     let mut oam = oam_vec.into_boxed_slice();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/devices/video/mod.rs:689:9
[INFO] [stdout]     |
[INFO] [stdout] 689 |     let mut oam = oam_vec.into_boxed_slice();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_ip`
[INFO] [stdout]   --> src/emulator.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let old_ip = self.registers.ip as u16;
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_ip`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 |   let mut core = match get_file_arg().and_then(load_rom) {
[INFO] [stdout]    |       ----^^^^
[INFO] [stdout]    |       |
[INFO] [stdout]    |       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_usage` is never used
[INFO] [stdout]   --> src/main.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn print_usage() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `packet_type` and `body` are never read
[INFO] [stdout]  --> src/debug/protocol.rs:4:3
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Packet {
[INFO] [stdout]   |            ------ fields in this struct
[INFO] [stdout] 4 |   packet_type: PacketType,
[INFO] [stdout]   |   ^^^^^^^^^^^
[INFO] [stdout] 5 |   body: Box<[u8]>,
[INFO] [stdout]   |   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `AL` is never constructed
[INFO] [stdout]     --> src/emitter/x86_64.rs:2459:3
[INFO] [stdout]      |
[INFO] [stdout] 2457 | enum X86Reg8 {
[INFO] [stdout]      |      ------- variant in this enum
[INFO] [stdout] 2458 |   AH,
[INFO] [stdout] 2459 |   AL,
[INFO] [stdout]      |   ^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `X86Reg8` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `RAX`, `RBX`, and `RCX` are never constructed
[INFO] [stdout]     --> src/emitter/x86_64.rs:2479:3
[INFO] [stdout]      |
[INFO] [stdout] 2478 | enum X86Reg64 {
[INFO] [stdout]      |      -------- variants in this enum
[INFO] [stdout] 2479 |   RAX,
[INFO] [stdout]      |   ^^^
[INFO] [stdout] 2480 |   RBX,
[INFO] [stdout]      |   ^^^
[INFO] [stdout] 2481 |   RCX,
[INFO] [stdout]      |   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:1787:66
[INFO] [stdout]      |
[INFO] [stdout] 1787 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as u64);
[INFO] [stdout]      |                                                                  ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 1787 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as *const () as u64);
[INFO] [stdout]      |                                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:1846:67
[INFO] [stdout]      |
[INFO] [stdout] 1846 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as u64);
[INFO] [stdout]      |                                                                   ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 1846 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as *const () as u64);
[INFO] [stdout]      |                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:1891:67
[INFO] [stdout]      |
[INFO] [stdout] 1891 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as u64);
[INFO] [stdout]      |                                                                   ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 1891 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as *const () as u64);
[INFO] [stdout]      |                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:1936:67
[INFO] [stdout]      |
[INFO] [stdout] 1936 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_word as u64);
[INFO] [stdout]      |                                                                   ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 1936 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_word as *const () as u64);
[INFO] [stdout]      |                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:1974:67
[INFO] [stdout]      |
[INFO] [stdout] 1974 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as u64);
[INFO] [stdout]      |                                                                   ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 1974 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as *const () as u64);
[INFO] [stdout]      |                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:2012:66
[INFO] [stdout]      |
[INFO] [stdout] 2012 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as u64);
[INFO] [stdout]      |                                                                  ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 2012 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as *const () as u64);
[INFO] [stdout]      |                                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:2050:67
[INFO] [stdout]      |
[INFO] [stdout] 2050 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as u64);
[INFO] [stdout]      |                                                                   ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 2050 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as *const () as u64);
[INFO] [stdout]      |                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:2089:66
[INFO] [stdout]      |
[INFO] [stdout] 2089 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as u64);
[INFO] [stdout]      |                                                                  ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 2089 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as *const () as u64);
[INFO] [stdout]      |                                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:2128:67
[INFO] [stdout]      |
[INFO] [stdout] 2128 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_word as u64);
[INFO] [stdout]      |                                                                   ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 2128 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_word as *const () as u64);
[INFO] [stdout]      |                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:2177:66
[INFO] [stdout]      |
[INFO] [stdout] 2177 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_word as u64);
[INFO] [stdout]      |                                                                  ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 2177 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_word as *const () as u64);
[INFO] [stdout]      |                                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:2237:66
[INFO] [stdout]      |
[INFO] [stdout] 2237 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as u64);
[INFO] [stdout]      |                                                                  ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 2237 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as *const () as u64);
[INFO] [stdout]      |                                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:2273:67
[INFO] [stdout]      |
[INFO] [stdout] 2273 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as u64);
[INFO] [stdout]      |                                                                   ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 2273 |   let fn_pointer = address_as_bytes(crate::mem::memory_write_byte as *const () as u64);
[INFO] [stdout]      |                                                                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]     --> src/emitter/x86_64.rs:2310:66
[INFO] [stdout]      |
[INFO] [stdout] 2310 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as u64);
[INFO] [stdout]      |                                                                  ^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]      |
[INFO] [stdout] 2310 |   let fn_pointer = address_as_bytes(crate::mem::memory_read_byte as *const () as u64);
[INFO] [stdout]      |                                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.86s
[INFO] running `Command { std: "docker" "inspect" "f465923c4e2019d71fc5420a69ae0b51460223c356032d0b1b385ff08f02400b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f465923c4e2019d71fc5420a69ae0b51460223c356032d0b1b385ff08f02400b", kill_on_drop: false }`
[INFO] [stdout] f465923c4e2019d71fc5420a69ae0b51460223c356032d0b1b385ff08f02400b
