[INFO] cloning repository https://github.com/nicolas-siplis/femboy [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nicolas-siplis/femboy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnicolas-siplis%2Ffemboy", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnicolas-siplis%2Ffemboy'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 2e8e298efbb97433b2cf27ea56402ac028d2db99 [INFO] checking nicolas-siplis/femboy against master#c5fbcd35a8217a17f6b63a22217ace06cf8f5f02 for pr-86194 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnicolas-siplis%2Ffemboy" "/workspace/builds/worker-13/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-13/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/nicolas-siplis/femboy on toolchain c5fbcd35a8217a17f6b63a22217ace06cf8f5f02 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+c5fbcd35a8217a17f6b63a22217ace06cf8f5f02" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/nicolas-siplis/femboy [INFO] finished tweaking git repo https://github.com/nicolas-siplis/femboy [INFO] tweaked toml for git repo https://github.com/nicolas-siplis/femboy written to /workspace/builds/worker-13/source/Cargo.toml [INFO] crate git repo https://github.com/nicolas-siplis/femboy already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+c5fbcd35a8217a17f6b63a22217ace06cf8f5f02" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded unidiff v0.3.3 [INFO] [stderr] Downloaded tar v0.4.35 [INFO] [stderr] Downloaded sdl2 v0.34.5 [INFO] [stderr] Downloaded sdl2-sys v0.34.5 [INFO] [stderr] Downloaded orbclient v0.3.31 [INFO] [stderr] Downloaded xkb v0.2.1 [INFO] [stderr] Downloaded xkbcommon-sys v0.7.5 [INFO] [stderr] Downloaded minifb v0.19.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+c5fbcd35a8217a17f6b63a22217ace06cf8f5f02" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 21a98b4ae9905ef9494b3a87c03230caf6cff1942af3b4cca74de5a113c8d2e0 [INFO] running `Command { std: "docker" "start" "-a" "21a98b4ae9905ef9494b3a87c03230caf6cff1942af3b4cca74de5a113c8d2e0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "21a98b4ae9905ef9494b3a87c03230caf6cff1942af3b4cca74de5a113c8d2e0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "21a98b4ae9905ef9494b3a87c03230caf6cff1942af3b4cca74de5a113c8d2e0", kill_on_drop: false }` [INFO] [stdout] 21a98b4ae9905ef9494b3a87c03230caf6cff1942af3b4cca74de5a113c8d2e0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/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" "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:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+c5fbcd35a8217a17f6b63a22217ace06cf8f5f02" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 66ca25419a479b0c718c54ea89ac80f2e194e859967f1d09ecedd0f1b5dd3072 [INFO] running `Command { std: "docker" "start" "-a" "66ca25419a479b0c718c54ea89ac80f2e194e859967f1d09ecedd0f1b5dd3072", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.96 [INFO] [stderr] Compiling memchr v2.4.0 [INFO] [stderr] Compiling pkg-config v0.3.19 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling glob v0.3.0 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling xml-rs v0.8.3 [INFO] [stderr] Compiling regex-syntax v0.6.25 [INFO] [stderr] Compiling unicode-width v0.1.8 [INFO] [stderr] Compiling termcolor v1.1.2 [INFO] [stderr] Compiling strsim v0.8.0 [INFO] [stderr] Compiling bindgen v0.56.0 [INFO] [stderr] Compiling ansi_term v0.11.0 [INFO] [stderr] Compiling humantime v2.1.0 [INFO] [stderr] Compiling vec_map v0.8.2 [INFO] [stderr] Compiling shlex v0.1.1 [INFO] [stderr] Compiling peeking_take_while v0.1.2 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Checking once_cell v1.7.2 [INFO] [stderr] Checking downcast-rs v1.2.0 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Checking ppv-lite86 v0.2.10 [INFO] [stderr] Checking remove_dir_all v0.5.3 [INFO] [stderr] Compiling nom v5.1.2 [INFO] [stderr] Compiling nom v6.1.2 [INFO] [stderr] Compiling minifb v0.19.3 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling libloading v0.7.0 [INFO] [stderr] Compiling textwrap v0.11.0 [INFO] [stderr] Compiling clang-sys v1.2.0 [INFO] [stderr] Compiling wayland-sys v0.28.5 [INFO] [stderr] Compiling x11-dl v2.18.5 [INFO] [stderr] Compiling aho-corasick v0.7.18 [INFO] [stderr] Compiling wayland-scanner v0.28.5 [INFO] [stderr] Compiling wayland-client v0.28.5 [INFO] [stderr] Compiling wayland-protocols v0.28.5 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling which v3.1.1 [INFO] [stderr] Compiling clap v2.33.3 [INFO] [stderr] Checking xcursor v0.3.3 [INFO] [stderr] Checking getrandom v0.2.3 [INFO] [stderr] Checking nix v0.20.0 [INFO] [stderr] Checking raw-window-handle v0.3.3 [INFO] [stderr] Compiling regex v1.5.4 [INFO] [stderr] Checking rand_core v0.6.2 [INFO] [stderr] Compiling cexpr v0.4.0 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.3 [INFO] [stderr] Checking tempfile v3.2.0 [INFO] [stderr] Compiling env_logger v0.8.4 [INFO] [stderr] Checking wayland-commons v0.28.5 [INFO] [stderr] Checking wayland-cursor v0.28.5 [INFO] [stderr] Compiling xkbcommon-sys v0.7.5 [INFO] [stderr] Checking xkb v0.2.1 [INFO] [stderr] Checking femboy v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `fetch_instruction` [INFO] [stdout] --> src/main.rs:3:34 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::instruction_fetcher::{fetch_instruction, Gameboy}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ByteRegister`, `FlagRegister`, `ProgramCounter`, `RegisterId` [INFO] [stdout] --> src/main.rs:4:23 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::register::{FlagRegister, ProgramCounter, RegisterId, ByteRegister}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `thread`, `time` [INFO] [stdout] --> src/main.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | use std::{thread, time, env}; [INFO] [stdout] | ^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::register::WordRegister::StackPointer` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::register::WordRegister::StackPointer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::Command` [INFO] [stdout] --> src/instruction_fetcher.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::Command; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Div` [INFO] [stdout] --> src/instruction_fetcher.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ops::Div; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::memory_map::MemoryMap` [INFO] [stdout] --> src/instruction.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::memory_map::MemoryMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `FlagRegister`, `RegisterId` [INFO] [stdout] --> src/instruction_executor.rs:3:37 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::register::{ByteRegister, FlagRegister, WordRegister, RegisterId}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `min` [INFO] [stdout] --> src/instruction_executor.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | use std::cmp::{min, max}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert::TryInto` [INFO] [stdout] --> src/memory_map.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::convert::TryInto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IndexMut`, `RangeInclusive` [INFO] [stdout] --> src/memory_map.rs:3:23 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::{Index, IndexMut, RangeInclusive, MulAssign}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::slice::Iter` [INFO] [stdout] --> src/memory_map.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::slice::Iter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `InterruptId` [INFO] [stdout] --> src/memory_map.rs:6:42 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::interrupt::{InterruptHandler, InterruptId}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `JoypadInt`, `SerialInt` [INFO] [stdout] --> src/memory_map.rs:7:37 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::interrupt::InterruptId::{JoypadInt, SerialInt, StatInt, TimerInt, VBlankInt}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PpuState` [INFO] [stdout] --> src/memory_map.rs:8:32 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::ppu::{PPU, PpuMode, PpuState}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `OamSearch`, `PixelTransfer` [INFO] [stdout] --> src/memory_map.rs:9:27 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::ppu::PpuMode::{OamSearch, PixelTransfer}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ByteRegister`, `WordRegister` [INFO] [stdout] --> src/memory_map.rs:10:23 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::register::{ByteRegister, WordRegister}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::max` [INFO] [stdout] --> src/ppu.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cmp::max; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fetch_instruction` [INFO] [stdout] --> src/main.rs:3:34 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::instruction_fetcher::{fetch_instruction, Gameboy}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ByteRegister`, `FlagRegister`, `ProgramCounter`, `RegisterId` [INFO] [stdout] --> src/main.rs:4:23 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::register::{FlagRegister, ProgramCounter, RegisterId, ByteRegister}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `thread`, `time` [INFO] [stdout] --> src/main.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | use std::{thread, time, env}; [INFO] [stdout] | ^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::register::WordRegister::StackPointer` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::register::WordRegister::StackPointer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::Command` [INFO] [stdout] --> src/instruction_fetcher.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::Command; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Div` [INFO] [stdout] --> src/instruction_fetcher.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::ops::Div; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::memory_map::MemoryMap` [INFO] [stdout] --> src/instruction.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::memory_map::MemoryMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `FlagRegister`, `RegisterId` [INFO] [stdout] --> src/instruction_executor.rs:3:37 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::register::{ByteRegister, FlagRegister, WordRegister, RegisterId}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `min` [INFO] [stdout] --> src/instruction_executor.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | use std::cmp::{min, max}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert::TryInto` [INFO] [stdout] --> src/memory_map.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::convert::TryInto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IndexMut`, `RangeInclusive` [INFO] [stdout] --> src/memory_map.rs:3:23 [INFO] [stdout] | [INFO] [stdout] 3 | use std::ops::{Index, IndexMut, RangeInclusive, MulAssign}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::slice::Iter` [INFO] [stdout] --> src/memory_map.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::slice::Iter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `InterruptId` [INFO] [stdout] --> src/memory_map.rs:6:42 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::interrupt::{InterruptHandler, InterruptId}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `JoypadInt`, `SerialInt` [INFO] [stdout] --> src/memory_map.rs:7:37 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::interrupt::InterruptId::{JoypadInt, SerialInt, StatInt, TimerInt, VBlankInt}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PpuState` [INFO] [stdout] --> src/memory_map.rs:8:32 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::ppu::{PPU, PpuMode, PpuState}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `OamSearch`, `PixelTransfer` [INFO] [stdout] --> src/memory_map.rs:9:27 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::ppu::PpuMode::{OamSearch, PixelTransfer}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ByteRegister`, `WordRegister` [INFO] [stdout] --> src/memory_map.rs:10:23 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::register::{ByteRegister, WordRegister}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::max` [INFO] [stdout] --> src/ppu.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::cmp::max; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IndexMut`, `Index`, `RangeInclusive`, `Range` [INFO] [stdout] --> src/ppu.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::ops::{Index, IndexMut, Range, RangeInclusive}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MemoryMap` [INFO] [stdout] --> src/ppu.rs:4:25 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::memory_map::{MemoryMap}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `InterruptHandler`, `InterruptId` [INFO] [stdout] --> src/ppu.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::interrupt::{InterruptHandler, InterruptId}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WriteInt` [INFO] [stdout] --> src/ppu.rs:7:55 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::ppu::StatInterrupt::{Low, ModeInt, LycInt, WriteInt}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/ppu.rs:106:23 [INFO] [stdout] | [INFO] [stdout] 106 | self.ticks += (cpu_cycles as usize * 4); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RangeInclusive`, `Range` [INFO] [stdout] --> src/interrupt.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::ops::{Range, RangeInclusive, Index}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IndexMut`, `Index`, `RangeInclusive`, `Range` [INFO] [stdout] --> src/ppu.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::ops::{Index, IndexMut, Range, RangeInclusive}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MemoryMap` [INFO] [stdout] --> src/ppu.rs:4:25 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::memory_map::{MemoryMap}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `InterruptHandler`, `InterruptId` [INFO] [stdout] --> src/ppu.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::interrupt::{InterruptHandler, InterruptId}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WriteInt` [INFO] [stdout] --> src/ppu.rs:7:55 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::ppu::StatInterrupt::{Low, ModeInt, LycInt, WriteInt}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/ppu.rs:106:23 [INFO] [stdout] | [INFO] [stdout] 106 | self.ticks += (cpu_cycles as usize * 4); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RangeInclusive`, `Range` [INFO] [stdout] --> src/interrupt.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::ops::{Range, RangeInclusive, Index}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `gameboy` [INFO] [stdout] --> src/main.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | fn execute(gameboy: Gameboy, instruction: Command) -> Gameboy { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gameboy` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `line` [INFO] [stdout] --> src/instruction_fetcher.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | let line = *gb.mem.ppu.ly(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_line` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/instruction_executor.rs:324:56 [INFO] [stdout] | [INFO] [stdout] 324 | gb.set_word_register(add, if let ADD_SP_I8(n) = command { gb.sp } else { gb.hl() }) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `a` [INFO] [stdout] --> src/instruction_executor.rs:342:43 [INFO] [stdout] | [INFO] [stdout] 342 | WordRegister::AccFlag(mut a, mut f) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/instruction_executor.rs:342:50 [INFO] [stdout] | [INFO] [stdout] 342 | WordRegister::AccFlag(mut a, mut f) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sp` [INFO] [stdout] --> src/instruction_executor.rs:362:29 [INFO] [stdout] | [INFO] [stdout] 362 | let sp = gb.sp.to_address(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_sp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/instruction_fetcher.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | let mut registers = [gb.b, gb.c, gb.d, gb.e, gb.h, gb.l, gb.a]; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `gameboy` [INFO] [stdout] --> src/main.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | fn execute(gameboy: Gameboy, instruction: Command) -> Gameboy { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gameboy` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/instruction_fetcher.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | let mut operand_idx = ((opcode & 0x0F) % 8) as usize; [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/instruction_fetcher.rs:138:9 [INFO] [stdout] | [INFO] [stdout] 138 | let mut register_idx = (max(0x40, opcode) as usize - 0x40) / 8; [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `line` [INFO] [stdout] --> src/instruction_fetcher.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | let line = *gb.mem.ppu.ly(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_line` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> src/instruction_executor.rs:324:56 [INFO] [stdout] | [INFO] [stdout] 324 | gb.set_word_register(add, if let ADD_SP_I8(n) = command { gb.sp } else { gb.hl() }) [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `a` [INFO] [stdout] --> src/instruction_executor.rs:342:43 [INFO] [stdout] | [INFO] [stdout] 342 | WordRegister::AccFlag(mut a, mut f) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/instruction_executor.rs:342:50 [INFO] [stdout] | [INFO] [stdout] 342 | WordRegister::AccFlag(mut a, mut f) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sp` [INFO] [stdout] --> src/instruction_executor.rs:362:29 [INFO] [stdout] | [INFO] [stdout] 362 | let sp = gb.sp.to_address(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_sp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/instruction_fetcher.rs:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | let mut registers = [gb.b, gb.c, gb.d, gb.e, gb.h, gb.l, gb.a]; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/instruction_fetcher.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | let mut operand_idx = ((opcode & 0x0F) % 8) as usize; [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/instruction_fetcher.rs:138:9 [INFO] [stdout] | [INFO] [stdout] 138 | let mut register_idx = (max(0x40, opcode) as usize - 0x40) / 8; [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/instruction_executor.rs:342:39 [INFO] [stdout] | [INFO] [stdout] 342 | WordRegister::AccFlag(mut a, mut f) => { [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/instruction_executor.rs:342:46 [INFO] [stdout] | [INFO] [stdout] 342 | WordRegister::AccFlag(mut a, mut f) => { [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/instruction_executor.rs:342:39 [INFO] [stdout] | [INFO] [stdout] 342 | WordRegister::AccFlag(mut a, mut f) => { [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/instruction_executor.rs:342:46 [INFO] [stdout] | [INFO] [stdout] 342 | WordRegister::AccFlag(mut a, mut f) => { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `LD_HL_N8` [INFO] [stdout] --> src/instruction.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | LD_HL_N8(u8), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `LD_U8_A` [INFO] [stdout] --> src/instruction.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | LD_U8_A(u8), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `ADD_HL_SP` [INFO] [stdout] --> src/instruction.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | ADD_HL_SP, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `invalid` [INFO] [stdout] --> src/memory_map.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | invalid: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `PpuRegisterId` [INFO] [stdout] --> src/ppu.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | enum PpuRegisterId { LcdControl, LcdStatus, LcdInterrupt, ScrollY, ScrollX, ScanLine, Background } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `PpuRegisterAccess` [INFO] [stdout] --> src/ppu.rs:16:6 [INFO] [stdout] | [INFO] [stdout] 16 | enum PpuRegisterAccess { R, W, RW } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `PpuRegisterAddress` [INFO] [stdout] --> src/ppu.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | type PpuRegisterAddress = u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `PpuRegister` [INFO] [stdout] --> src/ppu.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | struct PpuRegister(PpuRegisterAddress, u8, PpuRegisterId, PpuRegisterAccess); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `pixels_processed` [INFO] [stdout] --> src/ppu.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | pixels_processed: u16, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `WriteInt` [INFO] [stdout] --> src/ppu.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | WriteInt, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `scy` [INFO] [stdout] --> src/ppu.rs:210:8 [INFO] [stdout] | [INFO] [stdout] 210 | fn scy(&mut self) -> &mut u8 { &mut self.registers[0x1] } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `scx` [INFO] [stdout] --> src/ppu.rs:212:8 [INFO] [stdout] | [INFO] [stdout] 212 | fn scx(&mut self) -> &mut u8 { &mut self.registers[0x2] } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `bgp` [INFO] [stdout] --> src/ppu.rs:218:8 [INFO] [stdout] | [INFO] [stdout] 218 | fn bgp(&mut self) -> &mut u8 { &mut self.registers[0x6] } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `obp0` [INFO] [stdout] --> src/ppu.rs:220:8 [INFO] [stdout] | [INFO] [stdout] 220 | fn obp0(&mut self) -> &mut u8 { &mut self.registers[0x7] } [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `obp1` [INFO] [stdout] --> src/ppu.rs:222:8 [INFO] [stdout] | [INFO] [stdout] 222 | fn obp1(&mut self) -> &mut u8 { &mut self.registers[0x8] } [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `wy` [INFO] [stdout] --> src/ppu.rs:224:8 [INFO] [stdout] | [INFO] [stdout] 224 | fn wy(&mut self) -> &mut u8 { &mut self.registers[0x9] } [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `wx` [INFO] [stdout] --> src/ppu.rs:226:8 [INFO] [stdout] | [INFO] [stdout] 226 | fn wx(&mut self) -> &mut u8 { &mut self.registers[0xA] } [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `TileMapArea` [INFO] [stdout] --> src/ppu.rs:235:6 [INFO] [stdout] | [INFO] [stdout] 235 | enum TileMapArea { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `AddressingMode` [INFO] [stdout] --> src/ppu.rs:240:6 [INFO] [stdout] | [INFO] [stdout] 240 | enum AddressingMode { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `ObjSize` [INFO] [stdout] --> src/ppu.rs:245:6 [INFO] [stdout] | [INFO] [stdout] 245 | enum ObjSize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `w_tile_map_area` [INFO] [stdout] --> src/ppu.rs:252:8 [INFO] [stdout] | [INFO] [stdout] 252 | fn w_tile_map_area(&self) -> TileMapArea { if self.reg & 0x40 != 0 { H9C00 } else { H9800 } } [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `window_enable` [INFO] [stdout] --> src/ppu.rs:253:8 [INFO] [stdout] | [INFO] [stdout] 253 | fn window_enable(&self) -> bool { self.reg & 0x20 != 0 && self.reg & 0x01 != 0 } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `addressing_mode` [INFO] [stdout] --> src/ppu.rs:254:8 [INFO] [stdout] | [INFO] [stdout] 254 | fn addressing_mode(&self) -> AddressingMode { if self.reg & 0x10 != 0 { H8800 } else {H8000} } [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `bg_tile_map_area` [INFO] [stdout] --> src/ppu.rs:255:8 [INFO] [stdout] | [INFO] [stdout] 255 | fn bg_tile_map_area(&self) -> TileMapArea { if self.reg & 0x08 != 0 { H9C00 } else { H9800 } } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `obj_size` [INFO] [stdout] --> src/ppu.rs:256:8 [INFO] [stdout] | [INFO] [stdout] 256 | fn obj_size(&self) -> ObjSize { if self.reg & 0x04 != 0 { StackedTile } else { SingleTile } } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `obj_enable` [INFO] [stdout] --> src/ppu.rs:257:8 [INFO] [stdout] | [INFO] [stdout] 257 | fn obj_enable(&self) -> bool { self.reg & 0x02 != 0 } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `bg_window_enable` [INFO] [stdout] --> src/ppu.rs:258:8 [INFO] [stdout] | [INFO] [stdout] 258 | fn bg_window_enable(&self) -> bool { self.reg & 0x01 != 0 } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `invalid` [INFO] [stdout] --> src/interrupt.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | invalid: [u8; 1] [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `execute` [INFO] [stdout] --> src/main.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn execute(gameboy: Gameboy, instruction: Command) -> Gameboy { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `render` [INFO] [stdout] --> src/main.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn render() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `LD_HL_N8` [INFO] [stdout] --> src/instruction.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | LD_HL_N8(u8), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `LD_U8_A` [INFO] [stdout] --> src/instruction.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | LD_U8_A(u8), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `ADD_HL_SP` [INFO] [stdout] --> src/instruction.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | ADD_HL_SP, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `invalid` [INFO] [stdout] --> src/memory_map.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | invalid: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `PpuRegisterId` [INFO] [stdout] --> src/ppu.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | enum PpuRegisterId { LcdControl, LcdStatus, LcdInterrupt, ScrollY, ScrollX, ScanLine, Background } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `PpuRegisterAccess` [INFO] [stdout] --> src/ppu.rs:16:6 [INFO] [stdout] | [INFO] [stdout] 16 | enum PpuRegisterAccess { R, W, RW } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `PpuRegisterAddress` [INFO] [stdout] --> src/ppu.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | type PpuRegisterAddress = u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `PpuRegister` [INFO] [stdout] --> src/ppu.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | struct PpuRegister(PpuRegisterAddress, u8, PpuRegisterId, PpuRegisterAccess); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `pixels_processed` [INFO] [stdout] --> src/ppu.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | pixels_processed: u16, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `WriteInt` [INFO] [stdout] --> src/ppu.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | WriteInt, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `scy` [INFO] [stdout] --> src/ppu.rs:210:8 [INFO] [stdout] | [INFO] [stdout] 210 | fn scy(&mut self) -> &mut u8 { &mut self.registers[0x1] } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `scx` [INFO] [stdout] --> src/ppu.rs:212:8 [INFO] [stdout] | [INFO] [stdout] 212 | fn scx(&mut self) -> &mut u8 { &mut self.registers[0x2] } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `bgp` [INFO] [stdout] --> src/ppu.rs:218:8 [INFO] [stdout] | [INFO] [stdout] 218 | fn bgp(&mut self) -> &mut u8 { &mut self.registers[0x6] } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `obp0` [INFO] [stdout] --> src/ppu.rs:220:8 [INFO] [stdout] | [INFO] [stdout] 220 | fn obp0(&mut self) -> &mut u8 { &mut self.registers[0x7] } [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `obp1` [INFO] [stdout] --> src/ppu.rs:222:8 [INFO] [stdout] | [INFO] [stdout] 222 | fn obp1(&mut self) -> &mut u8 { &mut self.registers[0x8] } [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `wy` [INFO] [stdout] --> src/ppu.rs:224:8 [INFO] [stdout] | [INFO] [stdout] 224 | fn wy(&mut self) -> &mut u8 { &mut self.registers[0x9] } [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `wx` [INFO] [stdout] --> src/ppu.rs:226:8 [INFO] [stdout] | [INFO] [stdout] 226 | fn wx(&mut self) -> &mut u8 { &mut self.registers[0xA] } [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `TileMapArea` [INFO] [stdout] --> src/ppu.rs:235:6 [INFO] [stdout] | [INFO] [stdout] 235 | enum TileMapArea { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `AddressingMode` [INFO] [stdout] --> src/ppu.rs:240:6 [INFO] [stdout] | [INFO] [stdout] 240 | enum AddressingMode { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 65 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `ObjSize` [INFO] [stdout] --> src/ppu.rs:245:6 [INFO] [stdout] | [INFO] [stdout] 245 | enum ObjSize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `w_tile_map_area` [INFO] [stdout] --> src/ppu.rs:252:8 [INFO] [stdout] | [INFO] [stdout] 252 | fn w_tile_map_area(&self) -> TileMapArea { if self.reg & 0x40 != 0 { H9C00 } else { H9800 } } [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `window_enable` [INFO] [stdout] --> src/ppu.rs:253:8 [INFO] [stdout] | [INFO] [stdout] 253 | fn window_enable(&self) -> bool { self.reg & 0x20 != 0 && self.reg & 0x01 != 0 } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `addressing_mode` [INFO] [stdout] --> src/ppu.rs:254:8 [INFO] [stdout] | [INFO] [stdout] 254 | fn addressing_mode(&self) -> AddressingMode { if self.reg & 0x10 != 0 { H8800 } else {H8000} } [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `bg_tile_map_area` [INFO] [stdout] --> src/ppu.rs:255:8 [INFO] [stdout] | [INFO] [stdout] 255 | fn bg_tile_map_area(&self) -> TileMapArea { if self.reg & 0x08 != 0 { H9C00 } else { H9800 } } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `obj_size` [INFO] [stdout] --> src/ppu.rs:256:8 [INFO] [stdout] | [INFO] [stdout] 256 | fn obj_size(&self) -> ObjSize { if self.reg & 0x04 != 0 { StackedTile } else { SingleTile } } [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `obj_enable` [INFO] [stdout] --> src/ppu.rs:257:8 [INFO] [stdout] | [INFO] [stdout] 257 | fn obj_enable(&self) -> bool { self.reg & 0x02 != 0 } [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `bg_window_enable` [INFO] [stdout] --> src/ppu.rs:258:8 [INFO] [stdout] | [INFO] [stdout] 258 | fn bg_window_enable(&self) -> bool { self.reg & 0x01 != 0 } [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `invalid` [INFO] [stdout] --> src/interrupt.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | invalid: [u8; 1] [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `execute` [INFO] [stdout] --> src/main.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn execute(gameboy: Gameboy, instruction: Command) -> Gameboy { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `render` [INFO] [stdout] --> src/main.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn render() { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 65 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 52.14s [INFO] running `Command { std: "docker" "inspect" "66ca25419a479b0c718c54ea89ac80f2e194e859967f1d09ecedd0f1b5dd3072", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "66ca25419a479b0c718c54ea89ac80f2e194e859967f1d09ecedd0f1b5dd3072", kill_on_drop: false }` [INFO] [stdout] 66ca25419a479b0c718c54ea89ac80f2e194e859967f1d09ecedd0f1b5dd3072