[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 { [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 { [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 { [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 { [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