[INFO] cloning repository https://github.com/Lisible/oca [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Lisible/oca" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLisible%2Foca", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLisible%2Foca'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 6e5797167ce1928e5a01101a7646e400be9a693e [INFO] testing Lisible/oca against beta-2022-04-10 for beta-1.61-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLisible%2Foca" "/workspace/builds/worker-14/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-14/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Lisible/oca on toolchain beta-2022-04-10 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Lisible/oca [INFO] finished tweaking git repo https://github.com/Lisible/oca [INFO] tweaked toml for git repo https://github.com/Lisible/oca written to /workspace/builds/worker-14/source/Cargo.toml [INFO] crate git repo https://github.com/Lisible/oca already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c055c372d70899ccb7a32047d41c02f3eb308fa5748d7c8db293073c4eb7d91b [INFO] running `Command { std: "docker" "start" "-a" "c055c372d70899ccb7a32047d41c02f3eb308fa5748d7c8db293073c4eb7d91b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c055c372d70899ccb7a32047d41c02f3eb308fa5748d7c8db293073c4eb7d91b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c055c372d70899ccb7a32047d41c02f3eb308fa5748d7c8db293073c4eb7d91b", kill_on_drop: false }` [INFO] [stdout] c055c372d70899ccb7a32047d41c02f3eb308fa5748d7c8db293073c4eb7d91b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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=warn" "-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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7d43844bd5c79dab764e83dc9af9f8ea533203ac958690eee35dff523b397aa8 [INFO] running `Command { std: "docker" "start" "-a" "7d43844bd5c79dab764e83dc9af9f8ea533203ac958690eee35dff523b397aa8", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.6 [INFO] [stderr] Compiling num-integer v0.1.39 [INFO] [stderr] Compiling num-iter v0.1.37 [INFO] [stderr] Compiling cfg-if v0.1.6 [INFO] [stderr] Compiling rand_core v0.3.0 [INFO] [stderr] Compiling libc v0.2.43 [INFO] [stderr] Compiling bitflags v0.7.0 [INFO] [stderr] Compiling lazy_static v1.2.0 [INFO] [stderr] Compiling sdl2-sys v0.32.4 [INFO] [stderr] Compiling rand_core v0.2.2 [INFO] [stderr] Compiling rand v0.5.5 [INFO] [stderr] Compiling num v0.1.42 [INFO] [stderr] Compiling sdl2 v0.32.0 [INFO] [stderr] Compiling oca v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/gb/gpu/gpu.rs:183:21 [INFO] [stdout] | [INFO] [stdout] 183 | (tile_identifier as u16 * 16) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 183 - (tile_identifier as u16 * 16) [INFO] [stdout] 183 + tile_identifier as u16 * 16 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/gb/gpu/gpu.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | ((tile_identifier as u16 + 128) * 16) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 185 - ((tile_identifier as u16 + 128) * 16) [INFO] [stdout] 185 + (tile_identifier as u16 + 128) * 16 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/gb/gpu/gpu.rs:59:18 [INFO] [stdout] | [INFO] [stdout] 59 | display: Box, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 59 - display: Box, [INFO] [stdout] 59 + display: Box, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/gb/emulator.rs:48:29 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn new(display: Box) -> Emulator { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 48 - pub fn new(display: Box) -> Emulator { [INFO] [stdout] 48 + pub fn new(display: Box) -> Emulator { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/gb/gpu/gpu.rs:64:65 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn new(memory_bus: Rc>, display: Box) -> GPU { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 64 - pub fn new(memory_bus: Rc>, display: Box) -> GPU { [INFO] [stdout] 64 + pub fn new(memory_bus: Rc>, display: Box) -> GPU { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `core::str::::trim_left_matches`: superseded by `trim_start_matches` [INFO] [stdout] --> src/gb/debugger/debugger.rs:90:25 [INFO] [stdout] | [INFO] [stdout] 90 | let line = line.trim_left_matches("0x"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_start_matches` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `core::str::::trim_left_matches`: superseded by `trim_start_matches` [INFO] [stdout] --> src/gb/debugger/debugger.rs:136:23 [INFO] [stdout] | [INFO] [stdout] 136 | let arg = arg.trim_left_matches("0x"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_start_matches` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/gb/cpu/cpu.rs:862:13 [INFO] [stdout] | [INFO] [stdout] 862 | _ => panic!("Unimplemented CB instruction") [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `mode` is never read [INFO] [stdout] --> src/gb/gpu/gpu.rs:294:17 [INFO] [stdout] | [INFO] [stdout] 294 | let mut mode = 0; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/gb/cpu/cpu.rs:274:13 [INFO] [stdout] | [INFO] [stdout] 274 | let mut cycles = match opcode { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/gb/gpu/gpu.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | let mut tile_data_address: u16; [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/gb/gpu/gpu.rs:138:13 [INFO] [stdout] | [INFO] [stdout] 138 | let mut background_memory_address: u16; [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/gb/gpu/gpu.rs:153:13 [INFO] [stdout] | [INFO] [stdout] 153 | let mut y_pos = [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `ADDRESS_WINDOW_TILE_MAP_2` [INFO] [stdout] --> src/gb/gpu/gpu.rs:49:1 [INFO] [stdout] | [INFO] [stdout] 49 | const ADDRESS_WINDOW_TILE_MAP_2: u16 = 0x9800; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `ADDRESS_WINDOW_TILE_MAP_1` [INFO] [stdout] --> src/gb/gpu/gpu.rs:50:1 [INFO] [stdout] | [INFO] [stdout] 50 | const ADDRESS_WINDOW_TILE_MAP_1: u16 = 0x9C00; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gb/platform/sdl2/sdl2_display.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | canvas.set_scale(800f32/160f32, 600f32/144f32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gb/platform/sdl2/sdl2_display.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | self.canvas.draw_point(Point::new(x as i32, y as i32)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gb/platform/sdl2/sdl2_display.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 62 | self.canvas.fill_rect(Rect::new(0, 0, 800, 600)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 18 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/main_sdl.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | let mut display = SDL2Display::new(window); [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: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 9.36s [INFO] running `Command { std: "docker" "inspect" "7d43844bd5c79dab764e83dc9af9f8ea533203ac958690eee35dff523b397aa8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7d43844bd5c79dab764e83dc9af9f8ea533203ac958690eee35dff523b397aa8", kill_on_drop: false }` [INFO] [stdout] 7d43844bd5c79dab764e83dc9af9f8ea533203ac958690eee35dff523b397aa8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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=warn" "-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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a433a35734470c4ddb341156e3d8d1e7576b141494d8eee1b5e31f2e704654e4 [INFO] running `Command { std: "docker" "start" "-a" "a433a35734470c4ddb341156e3d8d1e7576b141494d8eee1b5e31f2e704654e4", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/gb/gpu/gpu.rs:183:21 [INFO] [stdout] | [INFO] [stdout] 183 | (tile_identifier as u16 * 16) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 183 - (tile_identifier as u16 * 16) [INFO] [stdout] 183 + tile_identifier as u16 * 16 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/gb/gpu/gpu.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | ((tile_identifier as u16 + 128) * 16) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 185 - ((tile_identifier as u16 + 128) * 16) [INFO] [stdout] 185 + (tile_identifier as u16 + 128) * 16 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/gb/gpu/gpu.rs:59:18 [INFO] [stdout] | [INFO] [stdout] 59 | display: Box, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 59 - display: Box, [INFO] [stdout] 59 + display: Box, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/gb/emulator.rs:48:29 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn new(display: Box) -> Emulator { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 48 - pub fn new(display: Box) -> Emulator { [INFO] [stdout] 48 + pub fn new(display: Box) -> Emulator { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/gb/gpu/gpu.rs:64:65 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn new(memory_bus: Rc>, display: Box) -> GPU { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 64 - pub fn new(memory_bus: Rc>, display: Box) -> GPU { [INFO] [stdout] 64 + pub fn new(memory_bus: Rc>, display: Box) -> GPU { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `core::str::::trim_left_matches`: superseded by `trim_start_matches` [INFO] [stdout] --> src/gb/debugger/debugger.rs:90:25 [INFO] [stdout] | [INFO] [stdout] 90 | let line = line.trim_left_matches("0x"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_start_matches` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `core::str::::trim_left_matches`: superseded by `trim_start_matches` [INFO] [stdout] --> src/gb/debugger/debugger.rs:136:23 [INFO] [stdout] | [INFO] [stdout] 136 | let arg = arg.trim_left_matches("0x"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_start_matches` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/gb/cpu/cpu.rs:862:13 [INFO] [stdout] | [INFO] [stdout] 862 | _ => panic!("Unimplemented CB instruction") [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `mode` is never read [INFO] [stdout] --> src/gb/gpu/gpu.rs:294:17 [INFO] [stdout] | [INFO] [stdout] 294 | let mut mode = 0; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/gb/cpu/cpu.rs:274:13 [INFO] [stdout] | [INFO] [stdout] 274 | let mut cycles = match opcode { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/gb/gpu/gpu.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | let mut tile_data_address: u16; [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/gb/gpu/gpu.rs:138:13 [INFO] [stdout] | [INFO] [stdout] 138 | let mut background_memory_address: u16; [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/gb/gpu/gpu.rs:153:13 [INFO] [stdout] | [INFO] [stdout] 153 | let mut y_pos = [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `ADDRESS_WINDOW_TILE_MAP_2` [INFO] [stdout] --> src/gb/gpu/gpu.rs:49:1 [INFO] [stdout] | [INFO] [stdout] 49 | const ADDRESS_WINDOW_TILE_MAP_2: u16 = 0x9800; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `ADDRESS_WINDOW_TILE_MAP_1` [INFO] [stdout] --> src/gb/gpu/gpu.rs:50:1 [INFO] [stdout] | [INFO] [stdout] 50 | const ADDRESS_WINDOW_TILE_MAP_1: u16 = 0x9C00; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gb/platform/sdl2/sdl2_display.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | canvas.set_scale(800f32/160f32, 600f32/144f32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gb/platform/sdl2/sdl2_display.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | self.canvas.draw_point(Point::new(x as i32, y as i32)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling oca v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gb/platform/sdl2/sdl2_display.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 62 | self.canvas.fill_rect(Rect::new(0, 0, 800, 600)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 18 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/main_sdl.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | let mut display = SDL2Display::new(window); [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: unnecessary parentheses around block return value [INFO] [stdout] --> src/gb/gpu/gpu.rs:183:21 [INFO] [stdout] | [INFO] [stdout] 183 | (tile_identifier as u16 * 16) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 183 - (tile_identifier as u16 * 16) [INFO] [stdout] 183 + tile_identifier as u16 * 16 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/gb/gpu/gpu.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | ((tile_identifier as u16 + 128) * 16) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 185 - ((tile_identifier as u16 + 128) * 16) [INFO] [stdout] 185 + (tile_identifier as u16 + 128) * 16 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/gb/gpu/gpu.rs:59:18 [INFO] [stdout] | [INFO] [stdout] 59 | display: Box, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 59 - display: Box, [INFO] [stdout] 59 + display: Box, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/gb/emulator.rs:48:29 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn new(display: Box) -> Emulator { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 48 - pub fn new(display: Box) -> Emulator { [INFO] [stdout] 48 + pub fn new(display: Box) -> Emulator { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/gb/gpu/gpu.rs:64:65 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn new(memory_bus: Rc>, display: Box) -> GPU { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 64 - pub fn new(memory_bus: Rc>, display: Box) -> GPU { [INFO] [stdout] 64 + pub fn new(memory_bus: Rc>, display: Box) -> GPU { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `core::str::::trim_left_matches`: superseded by `trim_start_matches` [INFO] [stdout] --> src/gb/debugger/debugger.rs:90:25 [INFO] [stdout] | [INFO] [stdout] 90 | let line = line.trim_left_matches("0x"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_start_matches` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `core::str::::trim_left_matches`: superseded by `trim_start_matches` [INFO] [stdout] --> src/gb/debugger/debugger.rs:136:23 [INFO] [stdout] | [INFO] [stdout] 136 | let arg = arg.trim_left_matches("0x"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_start_matches` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/gb/cpu/cpu.rs:862:13 [INFO] [stdout] | [INFO] [stdout] 862 | _ => panic!("Unimplemented CB instruction") [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `mode` is never read [INFO] [stdout] --> src/gb/gpu/gpu.rs:294:17 [INFO] [stdout] | [INFO] [stdout] 294 | let mut mode = 0; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/gb/cpu/cpu.rs:274:13 [INFO] [stdout] | [INFO] [stdout] 274 | let mut cycles = match opcode { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/gb/gpu/gpu.rs:129:13 [INFO] [stdout] | [INFO] [stdout] 129 | let mut tile_data_address: u16; [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/gb/gpu/gpu.rs:138:13 [INFO] [stdout] | [INFO] [stdout] 138 | let mut background_memory_address: u16; [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/gb/gpu/gpu.rs:153:13 [INFO] [stdout] | [INFO] [stdout] 153 | let mut y_pos = [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `ADDRESS_WINDOW_TILE_MAP_2` [INFO] [stdout] --> src/gb/gpu/gpu.rs:49:1 [INFO] [stdout] | [INFO] [stdout] 49 | const ADDRESS_WINDOW_TILE_MAP_2: u16 = 0x9800; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `ADDRESS_WINDOW_TILE_MAP_1` [INFO] [stdout] --> src/gb/gpu/gpu.rs:50:1 [INFO] [stdout] | [INFO] [stdout] 50 | const ADDRESS_WINDOW_TILE_MAP_1: u16 = 0x9C00; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gb/platform/sdl2/sdl2_display.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | canvas.set_scale(800f32/160f32, 600f32/144f32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gb/platform/sdl2/sdl2_display.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | self.canvas.draw_point(Point::new(x as i32, y as i32)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gb/platform/sdl2/sdl2_display.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 62 | self.canvas.fill_rect(Rect::new(0, 0, 800, 600)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 18 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 3.83s [INFO] [stderr] Executable unittests src/lib.rs (/opt/rustwide/target/debug/deps/oca-2f04e47f410839d2) [INFO] [stderr] Executable unittests src/bin/main_sdl.rs (/opt/rustwide/target/debug/deps/main_sdl-5fac9e53800e28c3) [INFO] [stderr] Executable unittests src/bin/test_sdl2_display.rs (/opt/rustwide/target/debug/deps/test_sdl2_display-e5983f335b86f740) [INFO] running `Command { std: "docker" "inspect" "a433a35734470c4ddb341156e3d8d1e7576b141494d8eee1b5e31f2e704654e4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a433a35734470c4ddb341156e3d8d1e7576b141494d8eee1b5e31f2e704654e4", kill_on_drop: false }` [INFO] [stdout] a433a35734470c4ddb341156e3d8d1e7576b141494d8eee1b5e31f2e704654e4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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=warn" "-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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 53e1c354c5bb0bd59ab0635271aec52f0ab37b4293b095bf97f9a41e879c0fe2 [INFO] running `Command { std: "docker" "start" "-a" "53e1c354c5bb0bd59ab0635271aec52f0ab37b4293b095bf97f9a41e879c0fe2", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> src/gb/gpu/gpu.rs:183:21 [INFO] [stderr] | [INFO] [stderr] 183 | (tile_identifier as u16 * 16) [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 183 - (tile_identifier as u16 * 16) [INFO] [stderr] 183 + tile_identifier as u16 * 16 [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> src/gb/gpu/gpu.rs:185:21 [INFO] [stderr] | [INFO] [stderr] 185 | ((tile_identifier as u16 + 128) * 16) [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 185 - ((tile_identifier as u16 + 128) * 16) [INFO] [stderr] 185 + (tile_identifier as u16 + 128) * 16 [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/gb/gpu/gpu.rs:59:18 [INFO] [stderr] | [INFO] [stderr] 59 | display: Box, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 59 - display: Box, [INFO] [stderr] 59 + display: Box, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/gb/emulator.rs:48:29 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn new(display: Box) -> Emulator { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 48 - pub fn new(display: Box) -> Emulator { [INFO] [stderr] 48 + pub fn new(display: Box) -> Emulator { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/gb/gpu/gpu.rs:64:65 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn new(memory_bus: Rc>, display: Box) -> GPU { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 64 - pub fn new(memory_bus: Rc>, display: Box) -> GPU { [INFO] [stderr] 64 + pub fn new(memory_bus: Rc>, display: Box) -> GPU { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `core::str::::trim_left_matches`: superseded by `trim_start_matches` [INFO] [stderr] --> src/gb/debugger/debugger.rs:90:25 [INFO] [stderr] | [INFO] [stderr] 90 | let line = line.trim_left_matches("0x"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_start_matches` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `core::str::::trim_left_matches`: superseded by `trim_start_matches` [INFO] [stderr] --> src/gb/debugger/debugger.rs:136:23 [INFO] [stderr] | [INFO] [stderr] 136 | let arg = arg.trim_left_matches("0x"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_start_matches` [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/gb/cpu/cpu.rs:862:13 [INFO] [stderr] | [INFO] [stderr] 862 | _ => panic!("Unimplemented CB instruction") [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `mode` is never read [INFO] [stderr] --> src/gb/gpu/gpu.rs:294:17 [INFO] [stderr] | [INFO] [stderr] 294 | let mut mode = 0; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/gb/cpu/cpu.rs:274:13 [INFO] [stderr] | [INFO] [stderr] 274 | let mut cycles = match opcode { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/gb/gpu/gpu.rs:129:13 [INFO] [stderr] | [INFO] [stderr] 129 | let mut tile_data_address: u16; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/gb/gpu/gpu.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | let mut background_memory_address: u16; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/gb/gpu/gpu.rs:153:13 [INFO] [stderr] | [INFO] [stderr] 153 | let mut y_pos = [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `ADDRESS_WINDOW_TILE_MAP_2` [INFO] [stderr] --> src/gb/gpu/gpu.rs:49:1 [INFO] [stderr] | [INFO] [stderr] 49 | const ADDRESS_WINDOW_TILE_MAP_2: u16 = 0x9800; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `ADDRESS_WINDOW_TILE_MAP_1` [INFO] [stderr] --> src/gb/gpu/gpu.rs:50:1 [INFO] [stderr] | [INFO] [stderr] 50 | const ADDRESS_WINDOW_TILE_MAP_1: u16 = 0x9C00; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/gb/platform/sdl2/sdl2_display.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | canvas.set_scale(800f32/160f32, 600f32/144f32); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/gb/platform/sdl2/sdl2_display.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | self.canvas.draw_point(Point::new(x as i32, y as i32)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/gb/platform/sdl2/sdl2_display.rs:62:9 [INFO] [stderr] | [INFO] [stderr] 62 | self.canvas.fill_rect(Rect::new(0, 0, 800, 600)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: `oca` (lib) generated 18 warnings [INFO] [stderr] warning: `oca` (lib test) generated 18 warnings (18 duplicates) [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/bin/main_sdl.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | let mut display = SDL2Display::new(window); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `oca` (bin "main_sdl" test) generated 1 warning [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.30s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oca-2f04e47f410839d2) [INFO] [stdout] [INFO] [stdout] running 120 tests [INFO] [stdout] test gb::cpu::bi_register_8bit::test::can_read_from_bi_register ... ok [INFO] [stdout] test gb::cpu::bi_register_8bit::test::can_write_to_bi_register ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_read_16bit_value_from_direct ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_read_8bit_value_from_direct ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_read_16bit_value_from_bi_register ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_get_flag ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_read_16bit_value_from_indirect_address ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_read_8bit_value_from_indirect_bi_register_increment ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_write_8bit_value_to_indirect_bi_register_decrement ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_read_8bit_value_from_indirect_register_io ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_read_16bit_value_from_sp_relative ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_read_8bit_value_from_direct_address ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_read_8bit_value_from_direct_io_address ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_read_16bit_value_from_sp ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_read_8bit_value_from_indirect_bi_register_decrement ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_read_8bit_value_from_indirect_bi_register ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_set_flag ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_read_from_register ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_read_8bit_value_from_register ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_read_from_bi_register ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_write_8bit_value_to_indirect_bi_register ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_write_16bit_value_to_bi_register ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_write_8bit_value_to_register ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_write_16bit_value_to_sp ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_write_to_register ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_add16 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_adc_0 ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_write_to_bi_register ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_adc_hc ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_ccf_1 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_add16_hc ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_adc ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_add16_c ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_write_8bit_value_to_indirect_register_io ... ok [INFO] [stdout] test gb::cpu::cpu::test::can_write_8bit_value_to_indirect_bi_register_increment ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_add ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_add16_sp_hc ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_di ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_dec8_hc ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_cpl ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_and ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_dec8_0 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_add_hc ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_cp ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_add16_sp_c ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_dec8 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_call_flag_a16 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_halt ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_add16_sp ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_ccf_2 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_call_a16 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_daa_2 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_call_flag_a16_2 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_cp_0 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_add_0 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_inc8 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_cp_hc ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_dec16 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_daa ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_inc8_hc ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_jp_flag_a16_2 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_ret_flag_3 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_reti ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_ei ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_ret_flag_2 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_ld8 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_jp_a16 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_jr_flag_r8 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_jp_flag_a16 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_pop16 ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_read_16bit_from_high_ram ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_jp_bi_register_ptr ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_ret ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_inc8_0 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_inc16 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_jr_r8 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_rla_carry0 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_push16 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_or ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_ret_flag ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_ld16 ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_read_8bit_signed_from_ram ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_read_8bit_from_io ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_read_16bit_from_io ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_rla_carry1 ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_read_16bit_from_ram ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_read_8bit_signed_from_io ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_read_8bit_from_high_ram ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_read_8bit_signed_from_high_ram ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_rlca_2 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_rrca ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_write_8bit_signed_to_ram ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_stop_0 ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_read_8bit_from_ram ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_xor ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_rra_carry1 ... ok [INFO] [stdout] test gb::utils::bit_manipulation::tests::get_bit ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_scf ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_write_16bit_to_ram ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_rlca ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_sub ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_rra_carry0 ... ok [INFO] [stdout] test gb::utils::bit_manipulation::tests::reset_bit ... ok [INFO] [stdout] test gb::utils::bit_manipulation::tests::is_bit_set ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_rrca_2 ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_sbc ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_write_16bit_to_io ... ok [INFO] [stdout] test gb::utils::bit_manipulation::tests::set_bit ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_sub_hc ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_rst ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_sbc_hc ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_sub_0 ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_write_8bit_to_io ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_write_8bit_signed_to_io ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_write_16bit_to_high_ram ... ok [INFO] [stdout] test gb::cpu::cpu::test::instruction_sbc_0 ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_write_8bit_to_ram ... ok [INFO] [stdout] test gb::cpu::cpu::test::run_interrupts ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_write_8bit_to_high_ram ... ok [INFO] [stdout] test gb::memory::memory_bus::test::can_write_8bit_signed_to_high_ram ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 120 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/main_sdl.rs (/opt/rustwide/target/debug/deps/main_sdl-5fac9e53800e28c3) [INFO] [stderr] Running unittests src/bin/test_sdl2_display.rs (/opt/rustwide/target/debug/deps/test_sdl2_display-e5983f335b86f740) [INFO] [stdout] [INFO] [stderr] Doc-tests oca [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> /opt/rustwide/workdir/src/gb/gpu/gpu.rs:183:21 [INFO] [stderr] | [INFO] [stderr] 183 | (tile_identifier as u16 * 16) [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 183 - (tile_identifier as u16 * 16) [INFO] [stderr] 183 + tile_identifier as u16 * 16 [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> /opt/rustwide/workdir/src/gb/gpu/gpu.rs:185:21 [INFO] [stderr] | [INFO] [stderr] 185 | ((tile_identifier as u16 + 128) * 16) [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] 185 - ((tile_identifier as u16 + 128) * 16) [INFO] [stderr] 185 + (tile_identifier as u16 + 128) * 16 [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "53e1c354c5bb0bd59ab0635271aec52f0ab37b4293b095bf97f9a41e879c0fe2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "53e1c354c5bb0bd59ab0635271aec52f0ab37b4293b095bf97f9a41e879c0fe2", kill_on_drop: false }` [INFO] [stdout] 53e1c354c5bb0bd59ab0635271aec52f0ab37b4293b095bf97f9a41e879c0fe2