[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#385fa9d845dd326c6bbfd58c22244215e431948a for absurd-question-mark-desugar [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkbernst30%2Frusty-boy" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/kbernst30/rusty-boy on toolchain 385fa9d845dd326c6bbfd58c22244215e431948a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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-6-tc1/source/Cargo.toml [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" "+385fa9d845dd326c6bbfd58c22244215e431948a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded libc v0.2.111 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 427bd03ff1f82f168116a9badd53b0a2c9a6a57d6d016fbbe7fced8fd07a2caf [INFO] running `Command { std: "docker" "start" "-a" "427bd03ff1f82f168116a9badd53b0a2c9a6a57d6d016fbbe7fced8fd07a2caf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "427bd03ff1f82f168116a9badd53b0a2c9a6a57d6d016fbbe7fced8fd07a2caf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "427bd03ff1f82f168116a9badd53b0a2c9a6a57d6d016fbbe7fced8fd07a2caf", kill_on_drop: false }` [INFO] [stdout] 427bd03ff1f82f168116a9badd53b0a2c9a6a57d6d016fbbe7fced8fd07a2caf [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+385fa9d845dd326c6bbfd58c22244215e431948a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2643f79e6b6746defee24c930e6ad498eca783e295b841695485dc0366babba6 [INFO] running `Command { std: "docker" "start" "-a" "2643f79e6b6746defee24c930e6ad498eca783e295b841695485dc0366babba6", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.111 [INFO] [stderr] Checking sdl2-sys v0.35.1 [INFO] [stderr] Checking sdl2 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)]` 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)]` 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)]` 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)]` 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)]` 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)]` 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)]` 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)]` 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)]` 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)]` 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)]` 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: 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] = note: `#[warn(dead_code)]` on by default [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)]` 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)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 43 warnings emitted [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)]` 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)]` 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: 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] = note: `#[warn(dead_code)]` on by default [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)]` 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: 43 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.82s [INFO] running `Command { std: "docker" "inspect" "2643f79e6b6746defee24c930e6ad498eca783e295b841695485dc0366babba6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2643f79e6b6746defee24c930e6ad498eca783e295b841695485dc0366babba6", kill_on_drop: false }` [INFO] [stdout] 2643f79e6b6746defee24c930e6ad498eca783e295b841695485dc0366babba6 [INFO] checking kbernst30/rusty-boy against try#645bb72776a6a56a1a8f52631a44bd082b2ba509 for absurd-question-mark-desugar [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkbernst30%2Frusty-boy" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/kbernst30/rusty-boy on toolchain 645bb72776a6a56a1a8f52631a44bd082b2ba509 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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-6-tc2/source/Cargo.toml [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" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 629aa628f381b4e8aa4d0e77aa89ca758a93242efb5b72505e994cacb75d1665 [INFO] running `Command { std: "docker" "start" "-a" "629aa628f381b4e8aa4d0e77aa89ca758a93242efb5b72505e994cacb75d1665", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "629aa628f381b4e8aa4d0e77aa89ca758a93242efb5b72505e994cacb75d1665", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "629aa628f381b4e8aa4d0e77aa89ca758a93242efb5b72505e994cacb75d1665", kill_on_drop: false }` [INFO] [stdout] 629aa628f381b4e8aa4d0e77aa89ca758a93242efb5b72505e994cacb75d1665 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+645bb72776a6a56a1a8f52631a44bd082b2ba509" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6bbc0ee5ecfefd354e5e1328d850103ea6e527e06ecb78be56100d130611573d [INFO] running `Command { std: "docker" "start" "-a" "6bbc0ee5ecfefd354e5e1328d850103ea6e527e06ecb78be56100d130611573d", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.111 [INFO] [stderr] Checking sdl2-sys v0.35.1 [INFO] [stderr] Checking sdl2 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)]` 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)]` 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)]` 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)]` on by default [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)]` 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: 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)]` 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)]` 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)]` 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: 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)]` 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)]` 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)]` on by default [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)]` 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: 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)]` 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)]` 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: 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] = note: `#[warn(dead_code)]` on by default [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)]` 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: 43 warnings emitted [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: 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] = note: `#[warn(dead_code)]` on by default [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)]` 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: 43 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.51s [INFO] running `Command { std: "docker" "inspect" "6bbc0ee5ecfefd354e5e1328d850103ea6e527e06ecb78be56100d130611573d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6bbc0ee5ecfefd354e5e1328d850103ea6e527e06ecb78be56100d130611573d", kill_on_drop: false }` [INFO] [stdout] 6bbc0ee5ecfefd354e5e1328d850103ea6e527e06ecb78be56100d130611573d