[INFO] cloning repository https://github.com/kbernst30/rusty-boy
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kbernst30/rusty-boy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkbernst30%2Frusty-boy", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkbernst30%2Frusty-boy'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ed27ed3e23d594ed6e75f7fe7e975381a8b383d0
[INFO] checking kbernst30/rusty-boy against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkbernst30%2Frusty-boy" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kbernst30/rusty-boy
[INFO] finished tweaking git repo https://github.com/kbernst30/rusty-boy
[INFO] tweaked toml for git repo https://github.com/kbernst30/rusty-boy written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kbernst30/rusty-boy 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/kbernst30/rusty-boy 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]  Downloading crates ...
[INFO] [stderr]   Downloaded version-compare v0.1.0
[INFO] [stderr]   Downloaded sdl2 v0.35.1
[INFO] [stderr]   Downloaded sdl2-sys v0.35.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] c1ca477d2727d9849e42a12bc16adeeb6973c30805986b32287f199587947c60
[INFO] running `Command { std: "docker" "start" "-a" "c1ca477d2727d9849e42a12bc16adeeb6973c30805986b32287f199587947c60", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c1ca477d2727d9849e42a12bc16adeeb6973c30805986b32287f199587947c60", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c1ca477d2727d9849e42a12bc16adeeb6973c30805986b32287f199587947c60", kill_on_drop: false }`
[INFO] [stdout] c1ca477d2727d9849e42a12bc16adeeb6973c30805986b32287f199587947c60
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 619819fadee1c7a5700d3208dd59d23d1547734c2e840e3b4e382303459c1d24
[INFO] running `Command { std: "docker" "start" "-a" "619819fadee1c7a5700d3208dd59d23d1547734c2e840e3b4e382303459c1d24", kill_on_drop: false }`
[INFO] [stderr]    Compiling version-compare v0.1.0
[INFO] [stderr]    Compiling libc v0.2.111
[INFO] [stderr]    Compiling sdl2 v0.35.1
[INFO] [stderr]    Compiling sdl2-sys v0.35.1
[INFO] [stderr]     Checking rusty-boy v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]     --> src/cpu.rs:1009:63
[INFO] [stdout]      |
[INFO] [stdout] 1009 |                     self.hl.val = self.hl.val.wrapping_add(1);;
[INFO] [stdout]      |                                                               ^ help: remove this semicolon
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/cpu.rs:1745:28
[INFO] [stdout]      |
[INFO] [stdout] 1745 |                     res |= (most_significant_bit << 7);
[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] 1745 -                     res |= (most_significant_bit << 7);
[INFO] [stdout] 1745 +                     res |= most_significant_bit << 7 ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ADD_16_BIT` should have an upper camel case name
[INFO] [stdout]   --> src/ops.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     ADD_16_BIT,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `Add16Bit`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `INC_16_BIT` should have an upper camel case name
[INFO] [stdout]   --> src/ops.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     INC_16_BIT,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `Inc16Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DEC_16_BIT` should have an upper camel case name
[INFO] [stdout]   --> src/ops.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     DEC_16_BIT,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `Dec16Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::timer::*`
[INFO] [stdout]  --> src/ppu.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::timer::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/ppu.rs:543:88
[INFO] [stdout]     |
[INFO] [stdout] 543 |             let x_offset = if self.should_draw_window(mmu) && i >= window_position_x { (x / 8) } else { (x / 8) & 0x1F };
[INFO] [stdout]     |                                                                                        ^     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 543 -             let x_offset = if self.should_draw_window(mmu) && i >= window_position_x { (x / 8) } else { (x / 8) & 0x1F };
[INFO] [stdout] 543 +             let x_offset = if self.should_draw_window(mmu) && i >= window_position_x { x / 8  } else { (x / 8) & 0x1F };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/ppu.rs:585:39
[INFO] [stdout]     |
[INFO] [stdout] 585 |                         line_offset = ((7 - line_offset/2) << 1);
[INFO] [stdout]     |                                       ^                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 585 -                         line_offset = ((7 - line_offset/2) << 1);
[INFO] [stdout] 585 +                         line_offset = (7 - line_offset/2) << 1 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `H_BLANK` should have an upper camel case name
[INFO] [stdout]   --> src/utils.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     H_BLANK = 0,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `HBlank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `V_BLANK` should have an upper camel case name
[INFO] [stdout]   --> src/utils.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     V_BLANK = 1,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `VBlank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SPRITE_SEARCH` should have an upper camel case name
[INFO] [stdout]   --> src/utils.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     SPRITE_SEARCH = 2,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SpriteSearch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LCD_TRANSFER` should have an upper camel case name
[INFO] [stdout]   --> src/utils.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     LCD_TRANSFER = 3,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `LcdTransfer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `V_BLANK` should have an upper camel case name
[INFO] [stdout]    --> src/utils.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     V_BLANK,
[INFO] [stdout]     |     ^^^^^^^ help: convert the identifier to upper camel case: `VBlank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LCD_STAT` should have an upper camel case name
[INFO] [stdout]    --> src/utils.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 125 |     LCD_STAT,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `LcdStat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::EventPump`
[INFO] [stdout]   --> src/main.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use sdl2::EventPump;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::pixels::Color`
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use sdl2::pixels::Color;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::render::TextureCreator`
[INFO] [stdout]   --> src/main.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use sdl2::render::TextureCreator;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]     --> src/cpu.rs:1009:63
[INFO] [stdout]      |
[INFO] [stdout] 1009 |                     self.hl.val = self.hl.val.wrapping_add(1);;
[INFO] [stdout]      |                                                               ^ help: remove this semicolon
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]     --> src/cpu.rs:1745:28
[INFO] [stdout]      |
[INFO] [stdout] 1745 |                     res |= (most_significant_bit << 7);
[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] 1745 -                     res |= (most_significant_bit << 7);
[INFO] [stdout] 1745 +                     res |= most_significant_bit << 7 ;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ADD_16_BIT` should have an upper camel case name
[INFO] [stdout]   --> src/ops.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     ADD_16_BIT,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `Add16Bit`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `INC_16_BIT` should have an upper camel case name
[INFO] [stdout]   --> src/ops.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     INC_16_BIT,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `Inc16Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DEC_16_BIT` should have an upper camel case name
[INFO] [stdout]   --> src/ops.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     DEC_16_BIT,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `Dec16Bit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::timer::*`
[INFO] [stdout]  --> src/ppu.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::timer::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/ppu.rs:543:88
[INFO] [stdout]     |
[INFO] [stdout] 543 |             let x_offset = if self.should_draw_window(mmu) && i >= window_position_x { (x / 8) } else { (x / 8) & 0x1F };
[INFO] [stdout]     |                                                                                        ^     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 543 -             let x_offset = if self.should_draw_window(mmu) && i >= window_position_x { (x / 8) } else { (x / 8) & 0x1F };
[INFO] [stdout] 543 +             let x_offset = if self.should_draw_window(mmu) && i >= window_position_x { x / 8  } else { (x / 8) & 0x1F };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/ppu.rs:585:39
[INFO] [stdout]     |
[INFO] [stdout] 585 |                         line_offset = ((7 - line_offset/2) << 1);
[INFO] [stdout]     |                                       ^                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 585 -                         line_offset = ((7 - line_offset/2) << 1);
[INFO] [stdout] 585 +                         line_offset = (7 - line_offset/2) << 1 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `H_BLANK` should have an upper camel case name
[INFO] [stdout]   --> src/utils.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     H_BLANK = 0,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `HBlank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `V_BLANK` should have an upper camel case name
[INFO] [stdout]   --> src/utils.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     V_BLANK = 1,
[INFO] [stdout]    |     ^^^^^^^ help: convert the identifier to upper camel case: `VBlank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SPRITE_SEARCH` should have an upper camel case name
[INFO] [stdout]   --> src/utils.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     SPRITE_SEARCH = 2,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SpriteSearch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LCD_TRANSFER` should have an upper camel case name
[INFO] [stdout]   --> src/utils.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     LCD_TRANSFER = 3,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `LcdTransfer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `V_BLANK` should have an upper camel case name
[INFO] [stdout]    --> src/utils.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     V_BLANK,
[INFO] [stdout]     |     ^^^^^^^ help: convert the identifier to upper camel case: `VBlank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LCD_STAT` should have an upper camel case name
[INFO] [stdout]    --> src/utils.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 125 |     LCD_STAT,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `LcdStat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::EventPump`
[INFO] [stdout]   --> src/main.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use sdl2::EventPump;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::pixels::Color`
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use sdl2::pixels::Color;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::render::TextureCreator`
[INFO] [stdout]   --> src/main.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use sdl2::render::TextureCreator;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/cpu.rs:610:9
[INFO] [stdout]     |
[INFO] [stdout] 610 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1704:21
[INFO] [stdout]      |
[INFO] [stdout] 1704 |                 let mut res = *val << 1;
[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: `lower_nibble`
[INFO] [stdout]     --> src/cpu.rs:1822:17
[INFO] [stdout]      |
[INFO] [stdout] 1822 |             let lower_nibble = (a_reg & 0xF) as Word;
[INFO] [stdout]      |                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lower_nibble`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stat`
[INFO] [stdout]     --> src/cpu.rs:1921:17
[INFO] [stdout]      |
[INFO] [stdout] 1921 |             let stat = self.read_memory(LCD_STATUS_ADDR);
[INFO] [stdout]      |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_stat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ly`
[INFO] [stdout]     --> src/cpu.rs:1922:17
[INFO] [stdout]      |
[INFO] [stdout] 1922 |             let ly = self.read_memory(CURRENT_SCANLINE_ADDR);
[INFO] [stdout]      |                 ^^ help: if this is intentional, prefix it with an underscore: `_ly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `debug`
[INFO] [stdout]    --> src/ppu.rs:129:52
[INFO] [stdout]     |
[INFO] [stdout] 129 |     fn update_lcd_status(&mut self, mmu: &mut Mmu, debug: bool) {
[INFO] [stdout]     |                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_debug`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mmu`
[INFO] [stdout]    --> src/ppu.rs:374:45
[INFO] [stdout]     |
[INFO] [stdout] 374 |     fn get_sprite_tile_data_area(&mut self, mmu: &Mmu) -> Word {
[INFO] [stdout]     |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_mmu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ppu.rs:631:13
[INFO] [stdout]     |
[INFO] [stdout] 631 |         let mut pallette = mmu.read_byte(pallette_addr);
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mmu`
[INFO] [stdout]    --> src/ppu.rs:655:29
[INFO] [stdout]     |
[INFO] [stdout] 655 |     fn get_cgb_color(&self, mmu: &Mmu, color_code: u8, palette_num: u8, palettes: &[Byte]) -> Option<(Byte, Byte, Byte)> {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_mmu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/rusty_boy.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let mut joypad = Joypad::new();
[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/rusty_boy.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let mut timer = Timer::new();
[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/rusty_boy.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let mut ppu = Ppu::new();
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `extension`
[INFO] [stdout]   --> src/main.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let extension = parts.next();
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_extension`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `extension`
[INFO] [stdout]   --> src/main.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let extension = parts.next();
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_extension`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let mut creator = canvas.texture_creator();
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]     --> src/cpu.rs:1026:25
[INFO] [stdout]      |
[INFO] [stdout] 1026 |                 0x40 => self.bc.parts.hi = self.bc.parts.hi,
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]     --> src/cpu.rs:1035:25
[INFO] [stdout]      |
[INFO] [stdout] 1035 |                 0x49 => self.bc.parts.lo = self.bc.parts.lo,
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]     --> src/cpu.rs:1044:25
[INFO] [stdout]      |
[INFO] [stdout] 1044 |                 0x52 => self.de.parts.hi = self.de.parts.hi,
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]     --> src/cpu.rs:1053:25
[INFO] [stdout]      |
[INFO] [stdout] 1053 |                 0x5B => self.de.parts.lo = self.de.parts.lo,
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]     --> src/cpu.rs:1062:25
[INFO] [stdout]      |
[INFO] [stdout] 1062 |                 0x64 => self.hl.parts.hi = self.hl.parts.hi,
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]     --> src/cpu.rs:1071:25
[INFO] [stdout]      |
[INFO] [stdout] 1071 |                 0x6D => self.hl.parts.lo = self.hl.parts.lo,
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]     --> src/cpu.rs:1088:25
[INFO] [stdout]      |
[INFO] [stdout] 1088 |                 0x7F => self.af.parts.hi = self.af.parts.hi,
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `debug_ctr` is never read
[INFO] [stdout]   --> src/cpu.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Cpu {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     debug_ctr: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `debug` is never used
[INFO] [stdout]     --> src/cpu.rs:1897:8
[INFO] [stdout]      |
[INFO] [stdout]   52 | impl Cpu {
[INFO] [stdout]      | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1897 |     fn debug(&mut self) {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `number_of_rom_banks` is never read
[INFO] [stdout]   --> src/mbc.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct Mbc3 {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 70 |     number_of_rom_banks: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `number_of_rom_banks` is never read
[INFO] [stdout]   --> src/mbc.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct Mbc5 {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 86 |     number_of_rom_banks: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `debug` and `printed` are never read
[INFO] [stdout]   --> src/ppu.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Ppu {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  9 |     debug: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 10 |     printed: bool,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 115 |     load(rom_file, &mut rusty_boy);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let _ = load(rom_file, &mut rusty_boy);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:132:21
[INFO] [stdout]     |
[INFO] [stdout] 132 |                     save(rom_file, &rusty_boy);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 132 |                     let _ = save(rom_file, &rusty_boy);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/mbc.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 245 |         if addr >= 0x0000 && addr < 0x4000 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ppu.rs:503:28
[INFO] [stdout]     |
[INFO] [stdout] 503 | ...   if current_scanline < 0 || (current_scanline as u32) >= SCREEN_HEIGHT || pixel_x < 0 || (pixel_x as u32) >= SCREEN_WIDTH {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ppu.rs:503:98
[INFO] [stdout]     |
[INFO] [stdout] 503 | ...   if current_scanline < 0 || (current_scanline as u32) >= SCREEN_HEIGHT || pixel_x < 0 || (pixel_x as u32) >= SCREEN_WIDTH {
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/cpu.rs:610:9
[INFO] [stdout]     |
[INFO] [stdout] 610 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1704:21
[INFO] [stdout]      |
[INFO] [stdout] 1704 |                 let mut res = *val << 1;
[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: `lower_nibble`
[INFO] [stdout]     --> src/cpu.rs:1822:17
[INFO] [stdout]      |
[INFO] [stdout] 1822 |             let lower_nibble = (a_reg & 0xF) as Word;
[INFO] [stdout]      |                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lower_nibble`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stat`
[INFO] [stdout]     --> src/cpu.rs:1921:17
[INFO] [stdout]      |
[INFO] [stdout] 1921 |             let stat = self.read_memory(LCD_STATUS_ADDR);
[INFO] [stdout]      |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_stat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ly`
[INFO] [stdout]     --> src/cpu.rs:1922:17
[INFO] [stdout]      |
[INFO] [stdout] 1922 |             let ly = self.read_memory(CURRENT_SCANLINE_ADDR);
[INFO] [stdout]      |                 ^^ help: if this is intentional, prefix it with an underscore: `_ly`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `debug`
[INFO] [stdout]    --> src/ppu.rs:129:52
[INFO] [stdout]     |
[INFO] [stdout] 129 |     fn update_lcd_status(&mut self, mmu: &mut Mmu, debug: bool) {
[INFO] [stdout]     |                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_debug`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mmu`
[INFO] [stdout]    --> src/ppu.rs:374:45
[INFO] [stdout]     |
[INFO] [stdout] 374 |     fn get_sprite_tile_data_area(&mut self, mmu: &Mmu) -> Word {
[INFO] [stdout]     |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_mmu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ppu.rs:631:13
[INFO] [stdout]     |
[INFO] [stdout] 631 |         let mut pallette = mmu.read_byte(pallette_addr);
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mmu`
[INFO] [stdout]    --> src/ppu.rs:655:29
[INFO] [stdout]     |
[INFO] [stdout] 655 |     fn get_cgb_color(&self, mmu: &Mmu, color_code: u8, palette_num: u8, palettes: &[Byte]) -> Option<(Byte, Byte, Byte)> {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_mmu`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/rusty_boy.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let mut joypad = Joypad::new();
[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/rusty_boy.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let mut timer = Timer::new();
[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/rusty_boy.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let mut ppu = Ppu::new();
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `extension`
[INFO] [stdout]   --> src/main.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let extension = parts.next();
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_extension`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `extension`
[INFO] [stdout]   --> src/main.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let extension = parts.next();
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_extension`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:94:9
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let mut creator = canvas.texture_creator();
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]     --> src/cpu.rs:1026:25
[INFO] [stdout]      |
[INFO] [stdout] 1026 |                 0x40 => self.bc.parts.hi = self.bc.parts.hi,
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]     --> src/cpu.rs:1035:25
[INFO] [stdout]      |
[INFO] [stdout] 1035 |                 0x49 => self.bc.parts.lo = self.bc.parts.lo,
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]     --> src/cpu.rs:1044:25
[INFO] [stdout]      |
[INFO] [stdout] 1044 |                 0x52 => self.de.parts.hi = self.de.parts.hi,
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]     --> src/cpu.rs:1053:25
[INFO] [stdout]      |
[INFO] [stdout] 1053 |                 0x5B => self.de.parts.lo = self.de.parts.lo,
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]     --> src/cpu.rs:1062:25
[INFO] [stdout]      |
[INFO] [stdout] 1062 |                 0x64 => self.hl.parts.hi = self.hl.parts.hi,
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]     --> src/cpu.rs:1071:25
[INFO] [stdout]      |
[INFO] [stdout] 1071 |                 0x6D => self.hl.parts.lo = self.hl.parts.lo,
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless assignment of field of type `u8` to itself
[INFO] [stdout]     --> src/cpu.rs:1088:25
[INFO] [stdout]      |
[INFO] [stdout] 1088 |                 0x7F => self.af.parts.hi = self.af.parts.hi,
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `debug_ctr` is never read
[INFO] [stdout]   --> src/cpu.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Cpu {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     debug_ctr: usize,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `debug` is never used
[INFO] [stdout]     --> src/cpu.rs:1897:8
[INFO] [stdout]      |
[INFO] [stdout]   52 | impl Cpu {
[INFO] [stdout]      | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1897 |     fn debug(&mut self) {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `number_of_rom_banks` is never read
[INFO] [stdout]   --> src/mbc.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct Mbc3 {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 70 |     number_of_rom_banks: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `number_of_rom_banks` is never read
[INFO] [stdout]   --> src/mbc.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct Mbc5 {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 86 |     number_of_rom_banks: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `debug` and `printed` are never read
[INFO] [stdout]   --> src/ppu.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Ppu {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  9 |     debug: bool,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 10 |     printed: bool,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 115 |     load(rom_file, &mut rusty_boy);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let _ = load(rom_file, &mut rusty_boy);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:132:21
[INFO] [stdout]     |
[INFO] [stdout] 132 |                     save(rom_file, &rusty_boy);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 132 |                     let _ = save(rom_file, &rusty_boy);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/mbc.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 245 |         if addr >= 0x0000 && addr < 0x4000 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ppu.rs:503:28
[INFO] [stdout]     |
[INFO] [stdout] 503 | ...   if current_scanline < 0 || (current_scanline as u32) >= SCREEN_HEIGHT || pixel_x < 0 || (pixel_x as u32) >= SCREEN_WIDTH {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/ppu.rs:503:98
[INFO] [stdout]     |
[INFO] [stdout] 503 | ...   if current_scanline < 0 || (current_scanline as u32) >= SCREEN_HEIGHT || pixel_x < 0 || (pixel_x as u32) >= SCREEN_WIDTH {
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.20s
[INFO] running `Command { std: "docker" "inspect" "619819fadee1c7a5700d3208dd59d23d1547734c2e840e3b4e382303459c1d24", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "619819fadee1c7a5700d3208dd59d23d1547734c2e840e3b4e382303459c1d24", kill_on_drop: false }`
[INFO] [stdout] 619819fadee1c7a5700d3208dd59d23d1547734c2e840e3b4e382303459c1d24
