[INFO] fetching crate lr35902 0.1.1... [INFO] testing lr35902-0.1.1 against beta-2025-09-21 for beta-1.91-3 [INFO] extracting crate lr35902 0.1.1 into /workspace/builds/worker-2-tc2/source [INFO] started tweaking crates.io crate lr35902 0.1.1 [INFO] finished tweaking crates.io crate lr35902 0.1.1 [INFO] tweaked toml for crates.io crate lr35902 0.1.1 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate lr35902 0.1.1 on toolchain beta-2025-09-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Locking 128 packages to latest compatible versions [INFO] [stderr] Adding glutin v0.28.0 (available: v0.32.3) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7e5911ea98b728cce38a761a1e0ce115daac7548a55ff1726091e0b5d7b55293 [INFO] running `Command { std: "docker" "start" "-a" "7e5911ea98b728cce38a761a1e0ce115daac7548a55ff1726091e0b5d7b55293", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7e5911ea98b728cce38a761a1e0ce115daac7548a55ff1726091e0b5d7b55293", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7e5911ea98b728cce38a761a1e0ce115daac7548a55ff1726091e0b5d7b55293", kill_on_drop: false }` [INFO] [stdout] 7e5911ea98b728cce38a761a1e0ce115daac7548a55ff1726091e0b5d7b55293 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9aab5e010fde151360a3061e37ca93c4f980671146d39307dfaf7d76dfd36f32 [INFO] running `Command { std: "docker" "start" "-a" "9aab5e010fde151360a3061e37ca93c4f980671146d39307dfaf7d76dfd36f32", kill_on_drop: false }` [INFO] [stderr] Compiling wasm-bindgen-shared v0.2.104 [INFO] [stderr] Compiling log v0.4.28 [INFO] [stderr] Compiling bumpalo v3.19.0 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling proc-macro2 v1.0.101 [INFO] [stderr] Compiling wasm-bindgen v0.2.104 [INFO] [stderr] Compiling quote v1.0.41 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling wasm-bindgen-backend v0.2.104 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.104 [INFO] [stderr] Compiling wasm-bindgen-macro v0.2.104 [INFO] [stderr] Compiling js-sys v0.3.81 [INFO] [stderr] Compiling console_error_panic_hook v0.1.7 [INFO] [stderr] Compiling web-sys v0.3.81 [INFO] [stderr] Compiling wasm-bindgen-futures v0.4.54 [INFO] [stderr] Compiling lr35902 v0.1.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Ref` [INFO] [stdout] --> src/screen/web.rs:6:18 [INFO] [stdout] | [INFO] [stdout] 6 | use core::cell::{Ref, RefCell, RefMut}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 25 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 26 | cpu.registers.a += cpu.registers.d; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 44 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 45 | cpu.registers.a += cpu.registers.h; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 53 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 54 | cpu.registers.a += cpu.registers.l; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 62 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 63 | cpu.registers.a += cpu.registers.a; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 72 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 73 | cpu.registers.a += cpu.memory.rb(addr); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 113 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 114 | let mut hl: u16 = ((cpu.registers.h as u16) << 8) + cpu.registers.l as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 126 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 127 | let mut hl = ((cpu.registers.h as u16) << 8) + cpu.registers.l as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:24:15 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn addr_d(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:43:15 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn addr_h(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn addr_l(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:61:15 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn addr_a(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/cpu/data.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | let addr = ((cpu.registers.h as u16) << 8) + cpu.registers.l as u16; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:112:16 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn addhlhl(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:125:16 [INFO] [stdout] | [INFO] [stdout] 125 | pub fn addhlsp(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:467:5 [INFO] [stdout] | [INFO] [stdout] 467 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:476:5 [INFO] [stdout] | [INFO] [stdout] 476 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:485:5 [INFO] [stdout] | [INFO] [stdout] 485 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:494:5 [INFO] [stdout] | [INFO] [stdout] 494 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:503:5 [INFO] [stdout] | [INFO] [stdout] 503 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:512:5 [INFO] [stdout] | [INFO] [stdout] 512 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:521:5 [INFO] [stdout] | [INFO] [stdout] 521 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:531:5 [INFO] [stdout] | [INFO] [stdout] 531 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless assignment of field of type `u8` to itself [INFO] [stdout] --> src/cpu/ld.rs:255:5 [INFO] [stdout] | [INFO] [stdout] 255 | cpu.registers.h = cpu.registers.h; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `is_sgb` is never read [INFO] [stdout] --> src/mmu/mmu.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Mmu { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 51 | is_sgb: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Mmu` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_event_listener` is never used [INFO] [stdout] --> src/screen/web.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn add_event_listener(listener: &str, f: &Closure) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:117:8 [INFO] [stdout] | [INFO] [stdout] 117 | if hl > 65535 { [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/cpu/data.rs:129:8 [INFO] [stdout] | [INFO] [stdout] 129 | if hl > 65535 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:286:8 [INFO] [stdout] | [INFO] [stdout] 286 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:294:8 [INFO] [stdout] | [INFO] [stdout] 294 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:302:8 [INFO] [stdout] | [INFO] [stdout] 302 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:310:8 [INFO] [stdout] | [INFO] [stdout] 310 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:329:8 [INFO] [stdout] | [INFO] [stdout] 329 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:352:8 [INFO] [stdout] | [INFO] [stdout] 352 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:365:8 [INFO] [stdout] | [INFO] [stdout] 365 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:378:8 [INFO] [stdout] | [INFO] [stdout] 378 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:391:8 [INFO] [stdout] | [INFO] [stdout] 391 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:404:8 [INFO] [stdout] | [INFO] [stdout] 404 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:417:8 [INFO] [stdout] | [INFO] [stdout] 417 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:430:8 [INFO] [stdout] | [INFO] [stdout] 430 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:444:8 [INFO] [stdout] | [INFO] [stdout] 444 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:464:8 [INFO] [stdout] | [INFO] [stdout] 464 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:473:8 [INFO] [stdout] | [INFO] [stdout] 473 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:482:8 [INFO] [stdout] | [INFO] [stdout] 482 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:491:8 [INFO] [stdout] | [INFO] [stdout] 491 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:500:8 [INFO] [stdout] | [INFO] [stdout] 500 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:509:8 [INFO] [stdout] | [INFO] [stdout] 509 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:518:8 [INFO] [stdout] | [INFO] [stdout] 518 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:528:8 [INFO] [stdout] | [INFO] [stdout] 528 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.11s [INFO] running `Command { std: "docker" "inspect" "9aab5e010fde151360a3061e37ca93c4f980671146d39307dfaf7d76dfd36f32", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9aab5e010fde151360a3061e37ca93c4f980671146d39307dfaf7d76dfd36f32", kill_on_drop: false }` [INFO] [stdout] 9aab5e010fde151360a3061e37ca93c4f980671146d39307dfaf7d76dfd36f32 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4ac727ec17ea826182b1d5a31e6f388ae1e419af0241fa34e41959a72c50d822 [INFO] running `Command { std: "docker" "start" "-a" "4ac727ec17ea826182b1d5a31e6f388ae1e419af0241fa34e41959a72c50d822", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `Ref` [INFO] [stdout] --> src/screen/web.rs:6:18 [INFO] [stdout] | [INFO] [stdout] 6 | use core::cell::{Ref, RefCell, RefMut}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 25 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 26 | cpu.registers.a += cpu.registers.d; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 44 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 45 | cpu.registers.a += cpu.registers.h; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 53 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 54 | cpu.registers.a += cpu.registers.l; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 62 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 63 | cpu.registers.a += cpu.registers.a; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 72 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 73 | cpu.registers.a += cpu.memory.rb(addr); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 113 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 114 | let mut hl: u16 = ((cpu.registers.h as u16) << 8) + cpu.registers.l as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 126 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 127 | let mut hl = ((cpu.registers.h as u16) << 8) + cpu.registers.l as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:24:15 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn addr_d(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:43:15 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn addr_h(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn addr_l(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:61:15 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn addr_a(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/cpu/data.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | let addr = ((cpu.registers.h as u16) << 8) + cpu.registers.l as u16; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:112:16 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn addhlhl(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:125:16 [INFO] [stdout] | [INFO] [stdout] 125 | pub fn addhlsp(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:467:5 [INFO] [stdout] | [INFO] [stdout] 467 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:476:5 [INFO] [stdout] | [INFO] [stdout] 476 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:485:5 [INFO] [stdout] | [INFO] [stdout] 485 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:494:5 [INFO] [stdout] | [INFO] [stdout] 494 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:503:5 [INFO] [stdout] | [INFO] [stdout] 503 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:512:5 [INFO] [stdout] | [INFO] [stdout] 512 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:521:5 [INFO] [stdout] | [INFO] [stdout] 521 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:531:5 [INFO] [stdout] | [INFO] [stdout] 531 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless assignment of field of type `u8` to itself [INFO] [stdout] --> src/cpu/ld.rs:255:5 [INFO] [stdout] | [INFO] [stdout] 255 | cpu.registers.h = cpu.registers.h; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `is_sgb` is never read [INFO] [stdout] --> src/mmu/mmu.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Mmu { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 51 | is_sgb: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Mmu` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_event_listener` is never used [INFO] [stdout] --> src/screen/web.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn add_event_listener(listener: &str, f: &Closure) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:117:8 [INFO] [stdout] | [INFO] [stdout] 117 | if hl > 65535 { [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/cpu/data.rs:129:8 [INFO] [stdout] | [INFO] [stdout] 129 | if hl > 65535 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:286:8 [INFO] [stdout] | [INFO] [stdout] 286 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:294:8 [INFO] [stdout] | [INFO] [stdout] 294 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:302:8 [INFO] [stdout] | [INFO] [stdout] 302 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:310:8 [INFO] [stdout] | [INFO] [stdout] 310 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:329:8 [INFO] [stdout] | [INFO] [stdout] 329 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling lr35902 v0.1.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:352:8 [INFO] [stdout] | [INFO] [stdout] 352 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:365:8 [INFO] [stdout] | [INFO] [stdout] 365 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:378:8 [INFO] [stdout] | [INFO] [stdout] 378 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:391:8 [INFO] [stdout] | [INFO] [stdout] 391 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:404:8 [INFO] [stdout] | [INFO] [stdout] 404 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:417:8 [INFO] [stdout] | [INFO] [stdout] 417 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:430:8 [INFO] [stdout] | [INFO] [stdout] 430 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:444:8 [INFO] [stdout] | [INFO] [stdout] 444 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:464:8 [INFO] [stdout] | [INFO] [stdout] 464 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:473:8 [INFO] [stdout] | [INFO] [stdout] 473 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:482:8 [INFO] [stdout] | [INFO] [stdout] 482 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:491:8 [INFO] [stdout] | [INFO] [stdout] 491 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:500:8 [INFO] [stdout] | [INFO] [stdout] 500 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:509:8 [INFO] [stdout] | [INFO] [stdout] 509 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:518:8 [INFO] [stdout] | [INFO] [stdout] 518 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:528:8 [INFO] [stdout] | [INFO] [stdout] 528 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ref` [INFO] [stdout] --> src/screen/web.rs:6:18 [INFO] [stdout] | [INFO] [stdout] 6 | use core::cell::{Ref, RefCell, RefMut}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 25 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 26 | cpu.registers.a += cpu.registers.d; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 44 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 45 | cpu.registers.a += cpu.registers.h; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 53 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 54 | cpu.registers.a += cpu.registers.l; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 62 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 63 | cpu.registers.a += cpu.registers.a; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 72 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 73 | cpu.registers.a += cpu.memory.rb(addr); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 113 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 114 | let mut hl: u16 = ((cpu.registers.h as u16) << 8) + cpu.registers.l as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/cpu/data.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 126 | panic!("fix f attribution"); [INFO] [stdout] | --------------------------- any code following this expression is unreachable [INFO] [stdout] 127 | let mut hl = ((cpu.registers.h as u16) << 8) + cpu.registers.l as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:24:15 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn addr_d(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:43:15 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn addr_h(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn addr_l(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:61:15 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn addr_a(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/cpu/data.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | let addr = ((cpu.registers.h as u16) << 8) + cpu.registers.l as u16; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:112:16 [INFO] [stdout] | [INFO] [stdout] 112 | pub fn addhlhl(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cpu` [INFO] [stdout] --> src/cpu/data.rs:125:16 [INFO] [stdout] | [INFO] [stdout] 125 | pub fn addhlsp(cpu: &mut Cpu) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:467:5 [INFO] [stdout] | [INFO] [stdout] 467 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:476:5 [INFO] [stdout] | [INFO] [stdout] 476 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:485:5 [INFO] [stdout] | [INFO] [stdout] 485 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:494:5 [INFO] [stdout] | [INFO] [stdout] 494 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:503:5 [INFO] [stdout] | [INFO] [stdout] 503 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:512:5 [INFO] [stdout] | [INFO] [stdout] 512 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:521:5 [INFO] [stdout] | [INFO] [stdout] 521 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `i` is never read [INFO] [stdout] --> src/cpu/data.rs:531:5 [INFO] [stdout] | [INFO] [stdout] 531 | i &= 255; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless assignment of field of type `u8` to itself [INFO] [stdout] --> src/cpu/ld.rs:255:5 [INFO] [stdout] | [INFO] [stdout] 255 | cpu.registers.h = cpu.registers.h; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `is_sgb` is never read [INFO] [stdout] --> src/mmu/mmu.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Mmu { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 51 | is_sgb: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Mmu` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_event_listener` is never used [INFO] [stdout] --> src/screen/web.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn add_event_listener(listener: &str, f: &Closure) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:117:8 [INFO] [stdout] | [INFO] [stdout] 117 | if hl > 65535 { [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/cpu/data.rs:129:8 [INFO] [stdout] | [INFO] [stdout] 129 | if hl > 65535 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:286:8 [INFO] [stdout] | [INFO] [stdout] 286 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:294:8 [INFO] [stdout] | [INFO] [stdout] 294 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:302:8 [INFO] [stdout] | [INFO] [stdout] 302 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:310:8 [INFO] [stdout] | [INFO] [stdout] 310 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:329:8 [INFO] [stdout] | [INFO] [stdout] 329 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:352:8 [INFO] [stdout] | [INFO] [stdout] 352 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:365:8 [INFO] [stdout] | [INFO] [stdout] 365 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:378:8 [INFO] [stdout] | [INFO] [stdout] 378 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:391:8 [INFO] [stdout] | [INFO] [stdout] 391 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:404:8 [INFO] [stdout] | [INFO] [stdout] 404 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:417:8 [INFO] [stdout] | [INFO] [stdout] 417 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:430:8 [INFO] [stdout] | [INFO] [stdout] 430 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:444:8 [INFO] [stdout] | [INFO] [stdout] 444 | if cpu.registers.a < 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:464:8 [INFO] [stdout] | [INFO] [stdout] 464 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:473:8 [INFO] [stdout] | [INFO] [stdout] 473 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:482:8 [INFO] [stdout] | [INFO] [stdout] 482 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:491:8 [INFO] [stdout] | [INFO] [stdout] 491 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:500:8 [INFO] [stdout] | [INFO] [stdout] 500 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:509:8 [INFO] [stdout] | [INFO] [stdout] 509 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:518:8 [INFO] [stdout] | [INFO] [stdout] 518 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison is useless due to type limits [INFO] [stdout] --> src/cpu/data.rs:528:8 [INFO] [stdout] | [INFO] [stdout] 528 | if i < 0 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.61s [INFO] running `Command { std: "docker" "inspect" "4ac727ec17ea826182b1d5a31e6f388ae1e419af0241fa34e41959a72c50d822", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4ac727ec17ea826182b1d5a31e6f388ae1e419af0241fa34e41959a72c50d822", kill_on_drop: false }` [INFO] [stdout] 4ac727ec17ea826182b1d5a31e6f388ae1e419af0241fa34e41959a72c50d822 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=warn" "-e" "RUSTDOCFLAGS=--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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 1f67137408427fec25b0e9e42e9442a39e6342ea66db6b3e83e3f7f5e90afb0e [INFO] running `Command { std: "docker" "start" "-a" "1f67137408427fec25b0e9e42e9442a39e6342ea66db6b3e83e3f7f5e90afb0e", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `Ref` [INFO] [stderr] --> src/screen/web.rs:6:18 [INFO] [stderr] | [INFO] [stderr] 6 | use core::cell::{Ref, RefCell, RefMut}; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/cpu/data.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 25 | panic!("fix f attribution"); [INFO] [stderr] | --------------------------- any code following this expression is unreachable [INFO] [stderr] 26 | cpu.registers.a += cpu.registers.d; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/cpu/data.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 44 | panic!("fix f attribution"); [INFO] [stderr] | --------------------------- any code following this expression is unreachable [INFO] [stderr] 45 | cpu.registers.a += cpu.registers.h; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/cpu/data.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 53 | panic!("fix f attribution"); [INFO] [stderr] | --------------------------- any code following this expression is unreachable [INFO] [stderr] 54 | cpu.registers.a += cpu.registers.l; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/cpu/data.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 62 | panic!("fix f attribution"); [INFO] [stderr] | --------------------------- any code following this expression is unreachable [INFO] [stderr] 63 | cpu.registers.a += cpu.registers.a; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/cpu/data.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 72 | panic!("fix f attribution"); [INFO] [stderr] | --------------------------- any code following this expression is unreachable [INFO] [stderr] 73 | cpu.registers.a += cpu.memory.rb(addr); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/cpu/data.rs:114:5 [INFO] [stderr] | [INFO] [stderr] 113 | panic!("fix f attribution"); [INFO] [stderr] | --------------------------- any code following this expression is unreachable [INFO] [stderr] 114 | let mut hl: u16 = ((cpu.registers.h as u16) << 8) + cpu.registers.l as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/cpu/data.rs:127:5 [INFO] [stderr] | [INFO] [stderr] 126 | panic!("fix f attribution"); [INFO] [stderr] | --------------------------- any code following this expression is unreachable [INFO] [stderr] 127 | let mut hl = ((cpu.registers.h as u16) << 8) + cpu.registers.l as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cpu` [INFO] [stderr] --> src/cpu/data.rs:24:15 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn addr_d(cpu: &mut Cpu) { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cpu` [INFO] [stderr] --> src/cpu/data.rs:43:15 [INFO] [stderr] | [INFO] [stderr] 43 | pub fn addr_h(cpu: &mut Cpu) { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cpu` [INFO] [stderr] --> src/cpu/data.rs:52:15 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn addr_l(cpu: &mut Cpu) { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cpu` [INFO] [stderr] --> src/cpu/data.rs:61:15 [INFO] [stderr] | [INFO] [stderr] 61 | pub fn addr_a(cpu: &mut Cpu) { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `addr` [INFO] [stderr] --> src/cpu/data.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | let addr = ((cpu.registers.h as u16) << 8) + cpu.registers.l as u16; [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cpu` [INFO] [stderr] --> src/cpu/data.rs:112:16 [INFO] [stderr] | [INFO] [stderr] 112 | pub fn addhlhl(cpu: &mut Cpu) { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cpu` [INFO] [stderr] --> src/cpu/data.rs:125:16 [INFO] [stderr] | [INFO] [stderr] 125 | pub fn addhlsp(cpu: &mut Cpu) { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_cpu` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `i` is never read [INFO] [stderr] --> src/cpu/data.rs:467:5 [INFO] [stderr] | [INFO] [stderr] 467 | i &= 255; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `i` is never read [INFO] [stderr] --> src/cpu/data.rs:476:5 [INFO] [stderr] | [INFO] [stderr] 476 | i &= 255; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `i` is never read [INFO] [stderr] --> src/cpu/data.rs:485:5 [INFO] [stderr] | [INFO] [stderr] 485 | i &= 255; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `i` is never read [INFO] [stderr] --> src/cpu/data.rs:494:5 [INFO] [stderr] | [INFO] [stderr] 494 | i &= 255; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `i` is never read [INFO] [stderr] --> src/cpu/data.rs:503:5 [INFO] [stderr] | [INFO] [stderr] 503 | i &= 255; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `i` is never read [INFO] [stderr] --> src/cpu/data.rs:512:5 [INFO] [stderr] | [INFO] [stderr] 512 | i &= 255; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `i` is never read [INFO] [stderr] --> src/cpu/data.rs:521:5 [INFO] [stderr] | [INFO] [stderr] 521 | i &= 255; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: value assigned to `i` is never read [INFO] [stderr] --> src/cpu/data.rs:531:5 [INFO] [stderr] | [INFO] [stderr] 531 | i &= 255; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: useless assignment of field of type `u8` to itself [INFO] [stderr] --> src/cpu/ld.rs:255:5 [INFO] [stderr] | [INFO] [stderr] 255 | cpu.registers.h = cpu.registers.h; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: field `is_sgb` is never read [INFO] [stderr] --> src/mmu/mmu.rs:51:5 [INFO] [stderr] | [INFO] [stderr] 20 | pub struct Mmu { [INFO] [stderr] | --- field in this struct [INFO] [stderr] ... [INFO] [stderr] 51 | is_sgb: bool, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Mmu` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `add_event_listener` is never used [INFO] [stderr] --> src/screen/web.rs:27:4 [INFO] [stderr] | [INFO] [stderr] 27 | fn add_event_listener(listener: &str, f: &Closure) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:117:8 [INFO] [stderr] | [INFO] [stderr] 117 | if hl > 65535 { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_comparisons)]` on by default [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:129:8 [INFO] [stderr] | [INFO] [stderr] 129 | if hl > 65535 { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:286:8 [INFO] [stderr] | [INFO] [stderr] 286 | if cpu.registers.a < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:294:8 [INFO] [stderr] | [INFO] [stderr] 294 | if cpu.registers.a < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:302:8 [INFO] [stderr] | [INFO] [stderr] 302 | if cpu.registers.a < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:310:8 [INFO] [stderr] | [INFO] [stderr] 310 | if cpu.registers.a < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:329:8 [INFO] [stderr] | [INFO] [stderr] 329 | if cpu.registers.a < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:352:8 [INFO] [stderr] | [INFO] [stderr] 352 | if cpu.registers.a < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:365:8 [INFO] [stderr] | [INFO] [stderr] 365 | if cpu.registers.a < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:378:8 [INFO] [stderr] | [INFO] [stderr] 378 | if cpu.registers.a < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:391:8 [INFO] [stderr] | [INFO] [stderr] 391 | if cpu.registers.a < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:404:8 [INFO] [stderr] | [INFO] [stderr] 404 | if cpu.registers.a < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:417:8 [INFO] [stderr] | [INFO] [stderr] 417 | if cpu.registers.a < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:430:8 [INFO] [stderr] | [INFO] [stderr] 430 | if cpu.registers.a < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:444:8 [INFO] [stderr] | [INFO] [stderr] 444 | if cpu.registers.a < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:464:8 [INFO] [stderr] | [INFO] [stderr] 464 | if i < 0 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:473:8 [INFO] [stderr] | [INFO] [stderr] 473 | if i < 0 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:482:8 [INFO] [stderr] | [INFO] [stderr] 482 | if i < 0 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:491:8 [INFO] [stderr] | [INFO] [stderr] 491 | if i < 0 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:500:8 [INFO] [stderr] | [INFO] [stderr] 500 | if i < 0 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:509:8 [INFO] [stderr] | [INFO] [stderr] 509 | if i < 0 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:518:8 [INFO] [stderr] | [INFO] [stderr] 518 | if i < 0 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/cpu/data.rs:528:8 [INFO] [stderr] | [INFO] [stderr] 528 | if i < 0 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `lr35902` (lib) generated 49 warnings (run `cargo fix --lib -p lr35902` to apply 1 suggestion) [INFO] [stderr] warning: `lr35902` (lib test) generated 49 warnings (49 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/lr35902-fad62a3f652af6a2) [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] Doc-tests lr35902 [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" "1f67137408427fec25b0e9e42e9442a39e6342ea66db6b3e83e3f7f5e90afb0e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1f67137408427fec25b0e9e42e9442a39e6342ea66db6b3e83e3f7f5e90afb0e", kill_on_drop: false }` [INFO] [stdout] 1f67137408427fec25b0e9e42e9442a39e6342ea66db6b3e83e3f7f5e90afb0e