[INFO] cloning repository https://github.com/VictorFordham/rust_gb_emulator [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/VictorFordham/rust_gb_emulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVictorFordham%2Frust_gb_emulator", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVictorFordham%2Frust_gb_emulator'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 2b945bee2d4a7b84ca9b42837c156ded611935d0 [INFO] checking VictorFordham/rust_gb_emulator against master#f82664191d0e8764b7435b9d72eb0e366b8b1464 for pr-83354 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVictorFordham%2Frust_gb_emulator" "/workspace/builds/worker-6/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/VictorFordham/rust_gb_emulator on toolchain f82664191d0e8764b7435b9d72eb0e366b8b1464 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+f82664191d0e8764b7435b9d72eb0e366b8b1464" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/VictorFordham/rust_gb_emulator [INFO] finished tweaking git repo https://github.com/VictorFordham/rust_gb_emulator [INFO] tweaked toml for git repo https://github.com/VictorFordham/rust_gb_emulator written to /workspace/builds/worker-6/source/Cargo.toml [INFO] crate git repo https://github.com/VictorFordham/rust_gb_emulator already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+f82664191d0e8764b7435b9d72eb0e366b8b1464" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "rustops/crates-build-env@sha256:4f92631de1aa59f8320307485d3b3c869a5c90ab1d76ce2cffab9807b8c9a1fb" "/opt/rustwide/cargo-home/bin/cargo" "+f82664191d0e8764b7435b9d72eb0e366b8b1464" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a77ce92a0f72c4ee28fcad351f5d187325aef9935c1b09684f93a2700f60eadb [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "a77ce92a0f72c4ee28fcad351f5d187325aef9935c1b09684f93a2700f60eadb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a77ce92a0f72c4ee28fcad351f5d187325aef9935c1b09684f93a2700f60eadb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a77ce92a0f72c4ee28fcad351f5d187325aef9935c1b09684f93a2700f60eadb", kill_on_drop: false }` [INFO] [stdout] a77ce92a0f72c4ee28fcad351f5d187325aef9935c1b09684f93a2700f60eadb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:4f92631de1aa59f8320307485d3b3c869a5c90ab1d76ce2cffab9807b8c9a1fb" "/opt/rustwide/cargo-home/bin/cargo" "+f82664191d0e8764b7435b9d72eb0e366b8b1464" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 10ce47053a8644a3714b3505097b9a50f80f86a3981664c76decbe67d144f52f [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "10ce47053a8644a3714b3505097b9a50f80f86a3981664c76decbe67d144f52f", kill_on_drop: false }` [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling proc-macro2 v1.0.24 [INFO] [stderr] Compiling libc v0.2.88 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling syn v1.0.62 [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling proc-macro-hack v0.5.19 [INFO] [stderr] Compiling pkg-config v0.3.19 [INFO] [stderr] Checking pin-project-lite v0.2.6 [INFO] [stderr] Checking slab v0.4.2 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Checking futures-task v0.3.13 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Checking bit-vec v0.6.3 [INFO] [stderr] Checking inplace_it v0.3.3 [INFO] [stderr] Compiling wide v0.4.6 [INFO] [stderr] Checking copyless v0.1.5 [INFO] [stderr] Checking typed-arena v2.0.1 [INFO] [stderr] Checking pollster v0.2.1 [INFO] [stderr] Checking instant v0.1.9 [INFO] [stderr] Checking libloading v0.6.7 [INFO] [stderr] Checking tracing-core v0.1.17 [INFO] [stderr] Checking log v0.4.14 [INFO] [stderr] Checking bit-set v0.5.2 [INFO] [stderr] Checking ash v0.31.0 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Checking wgpu-types v0.6.1 [INFO] [stderr] Checking tracing v0.1.25 [INFO] [stderr] Compiling x11 v2.18.2 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Checking ultraviolet v0.4.6 [INFO] [stderr] Checking raw-window-handle v0.3.3 [INFO] [stderr] Checking parking_lot_core v0.8.3 [INFO] [stderr] Checking gfx-hal v0.6.0 [INFO] [stderr] Checking parking_lot v0.11.1 [INFO] [stderr] Checking spirv_headers v1.5.0 [INFO] [stderr] Checking gfx-memory v0.2.2 [INFO] [stderr] Checking gfx-descriptor v0.2.0 [INFO] [stderr] Checking gfx-backend-empty v0.6.0 [INFO] [stderr] Compiling futures-macro v0.3.13 [INFO] [stderr] Compiling thiserror-impl v1.0.24 [INFO] [stderr] Checking futures-util v0.3.13 [INFO] [stderr] Checking thiserror v1.0.24 [INFO] [stderr] Checking naga v0.2.0 [INFO] [stderr] Checking gfx-backend-vulkan v0.6.5 [INFO] [stderr] Checking wgpu-core v0.6.5 [INFO] [stderr] Checking futures-executor v0.3.13 [INFO] [stderr] Checking futures v0.3.13 [INFO] [stderr] Checking wgpu v0.6.2 [INFO] [stderr] Checking pixels v0.2.0 [INFO] [stderr] Checking gb_emulator v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error: mismatched closing delimiter: `}` [INFO] [stdout] --> src/cpu.rs:651:9 [INFO] [stdout] | [INFO] [stdout] 646 | if cpu.f & ZERO_FLAG == ZERO_FLAG { [INFO] [stdout] | - closing delimiter possibly meant for this [INFO] [stdout] 647 | cpu.sp = cpu.sp.wrapping_sub(2); [INFO] [stdout] 648 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.wrapping_add(2); [INFO] [stdout] | - unclosed delimiter [INFO] [stdout] ... [INFO] [stdout] 651 | } else { cpu.pc += 2; } [INFO] [stdout] | ^ mismatched closing delimiter [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:251:40 [INFO] [stdout] | [INFO] [stdout] 251 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:260:40 [INFO] [stdout] | [INFO] [stdout] 260 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:297:40 [INFO] [stdout] | [INFO] [stdout] 297 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:310:40 [INFO] [stdout] | [INFO] [stdout] 310 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:325:40 [INFO] [stdout] | [INFO] [stdout] 325 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:338:40 [INFO] [stdout] | [INFO] [stdout] 338 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:353:40 [INFO] [stdout] | [INFO] [stdout] 353 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:366:40 [INFO] [stdout] | [INFO] [stdout] 366 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:375:40 [INFO] [stdout] | [INFO] [stdout] 375 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:381:40 [INFO] [stdout] | [INFO] [stdout] 381 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:387:40 [INFO] [stdout] | [INFO] [stdout] 387 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:393:40 [INFO] [stdout] | [INFO] [stdout] 393 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:399:40 [INFO] [stdout] | [INFO] [stdout] 399 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:405:40 [INFO] [stdout] | [INFO] [stdout] 405 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:412:40 [INFO] [stdout] | [INFO] [stdout] 412 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:424:40 [INFO] [stdout] | [INFO] [stdout] 424 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:613:35 [INFO] [stdout] | [INFO] [stdout] 613 | let value = (cpu.b as u16 << 8) + (cpu.c as u16); [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.b as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:701:35 [INFO] [stdout] | [INFO] [stdout] 701 | let value = (cpu.d as u16 << 8) + (cpu.e as u16); [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.d as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:766:35 [INFO] [stdout] | [INFO] [stdout] 766 | let value = (cpu.h as u16 << 8) + (cpu.l as u16); [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:805:35 [INFO] [stdout] | [INFO] [stdout] 805 | let value = (cpu.a as u16 << 8) + (cpu.f as u16); [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.a as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: mismatched closing delimiter: `}` [INFO] [stdout] --> src/cpu.rs:651:9 [INFO] [stdout] | [INFO] [stdout] 646 | if cpu.f & ZERO_FLAG == ZERO_FLAG { [INFO] [stdout] | - closing delimiter possibly meant for this [INFO] [stdout] 647 | cpu.sp = cpu.sp.wrapping_sub(2); [INFO] [stdout] 648 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.wrapping_add(2); [INFO] [stdout] | - unclosed delimiter [INFO] [stdout] ... [INFO] [stdout] 651 | } else { cpu.pc += 2; } [INFO] [stdout] | ^ mismatched closing delimiter [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:251:40 [INFO] [stdout] | [INFO] [stdout] 251 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:260:40 [INFO] [stdout] | [INFO] [stdout] 260 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:297:40 [INFO] [stdout] | [INFO] [stdout] 297 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:310:40 [INFO] [stdout] | [INFO] [stdout] 310 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:325:40 [INFO] [stdout] | [INFO] [stdout] 325 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:338:40 [INFO] [stdout] | [INFO] [stdout] 338 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:353:40 [INFO] [stdout] | [INFO] [stdout] 353 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:366:40 [INFO] [stdout] | [INFO] [stdout] 366 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:375:40 [INFO] [stdout] | [INFO] [stdout] 375 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:381:40 [INFO] [stdout] | [INFO] [stdout] 381 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:387:40 [INFO] [stdout] | [INFO] [stdout] 387 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:393:40 [INFO] [stdout] | [INFO] [stdout] 393 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:399:40 [INFO] [stdout] | [INFO] [stdout] 399 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:405:40 [INFO] [stdout] | [INFO] [stdout] 405 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:412:40 [INFO] [stdout] | [INFO] [stdout] 412 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:424:40 [INFO] [stdout] | [INFO] [stdout] 424 | let mut address = cpu.h as u16 << 8; [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:613:35 [INFO] [stdout] | [INFO] [stdout] 613 | let value = (cpu.b as u16 << 8) + (cpu.c as u16); [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.b as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:701:35 [INFO] [stdout] | [INFO] [stdout] 701 | let value = (cpu.d as u16 << 8) + (cpu.e as u16); [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.d as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:766:35 [INFO] [stdout] | [INFO] [stdout] 766 | let value = (cpu.h as u16 << 8) + (cpu.l as u16); [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.h as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: `<` is interpreted as a start of generic arguments for `u16`, not a shift [INFO] [stdout] --> src/cpu.rs:805:35 [INFO] [stdout] | [INFO] [stdout] 805 | let value = (cpu.a as u16 << 8) + (cpu.f as u16); [INFO] [stdout] | ------------ ^^ - interpreted as generic arguments [INFO] [stdout] | | | [INFO] [stdout] | | not interpreted as shift [INFO] [stdout] | help: try shifting the cast value: `(cpu.a as u16)` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: no rules expected the token `;` [INFO] [stdout] --> src/cpu.rs:648:74 [INFO] [stdout] | [INFO] [stdout] 648 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.wrapping_add(2); [INFO] [stdout] | ^ no rules expected this token in macro call [INFO] [stdout] | [INFO] [stdout] ::: src/mmu.rs:32:1 [INFO] [stdout] | [INFO] [stdout] 32 | macro_rules! mem_access_w { [INFO] [stdout] | ------------------------- when calling this macro [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: no rules expected the token `;` [INFO] [stdout] --> src/cpu.rs:648:74 [INFO] [stdout] | [INFO] [stdout] 648 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.wrapping_add(2); [INFO] [stdout] | ^ no rules expected this token in macro call [INFO] [stdout] | [INFO] [stdout] ::: src/mmu.rs:32:1 [INFO] [stdout] | [INFO] [stdout] 32 | macro_rules! mem_access_w { [INFO] [stdout] | ------------------------- when calling this macro [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/mmu.rs:86:30 [INFO] [stdout] | [INFO] [stdout] 86 | let mut value: u16 = (self.mem[address] as u16); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: missing type for `static` item [INFO] [stdout] --> src/cpu.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | static undefined = |x: u16| { panic!("Hit undefined instruction at {:?}", stringify!(x - 1)); }; [INFO] [stdout] | ^^^^^^^^^ help: provide a type for the item: `undefined: [closure@src/cpu.rs:72:20: 72:96]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/mmu.rs:86:30 [INFO] [stdout] | [INFO] [stdout] 86 | let mut value: u16 = (self.mem[address] as u16); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: missing type for `static` item [INFO] [stdout] --> src/cpu.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | static undefined = |x: u16| { panic!("Hit undefined instruction at {:?}", stringify!(x - 1)); }; [INFO] [stdout] | ^^^^^^^^^ help: provide a type for the item: `undefined: [closure@src/cpu.rs:72:20: 72:96]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `wrapping_add` found for mutable reference `&mut Z80` in the current scope [INFO] [stdout] --> src/cpu.rs:119:21 [INFO] [stdout] | [INFO] [stdout] 119 | cpu.c = cpu.wrapping_add(1); [INFO] [stdout] | ^^^^^^^^^^^^ method not found in `&mut Z80` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:164:18 [INFO] [stdout] | [INFO] [stdout] 164 | cpu.pc = (cpu.pc as i16 + (offset as i8) as i16) as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `usize`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:221:33 [INFO] [stdout] | [INFO] [stdout] 221 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 221 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:253:50 [INFO] [stdout] | [INFO] [stdout] 253 | let val = mem_access_b!(cpu.memory_unit, address).wrapping_add(1); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:254:40 [INFO] [stdout] | [INFO] [stdout] 254 | mem_access_b!(cpu.memory_unit, address, val); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:262:50 [INFO] [stdout] | [INFO] [stdout] 262 | let val = mem_access_b!(cpu.memory_unit, address).wrapping_sub(1); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:263:40 [INFO] [stdout] | [INFO] [stdout] 263 | mem_access_b!(cpu.memory_unit, address, val); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:299:48 [INFO] [stdout] | [INFO] [stdout] 299 | cpu.b = mem_access_b!(cpu.memory_unit, address); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:312:48 [INFO] [stdout] | [INFO] [stdout] 312 | cpu.c = mem_access_b!(cpu.memory_unit, address); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:327:48 [INFO] [stdout] | [INFO] [stdout] 327 | cpu.d = mem_access_b!(cpu.memory_unit, address); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:340:48 [INFO] [stdout] | [INFO] [stdout] 340 | cpu.e = mem_access_b!(cpu.memory_unit, address); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:355:48 [INFO] [stdout] | [INFO] [stdout] 355 | cpu.h = mem_access_b!(cpu.memory_unit, address); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:368:48 [INFO] [stdout] | [INFO] [stdout] 368 | cpu.h = mem_access_b!(cpu.memory_unit, address); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:377:40 [INFO] [stdout] | [INFO] [stdout] 377 | mem_access_b!(cpu.memory_unit, address, cpu.b); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:383:40 [INFO] [stdout] | [INFO] [stdout] 383 | mem_access_b!(cpu.memory_unit, address, cpu.c); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:389:40 [INFO] [stdout] | [INFO] [stdout] 389 | mem_access_b!(cpu.memory_unit, address, cpu.d); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:395:40 [INFO] [stdout] | [INFO] [stdout] 395 | mem_access_b!(cpu.memory_unit, address, cpu.e); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:401:40 [INFO] [stdout] | [INFO] [stdout] 401 | mem_access_b!(cpu.memory_unit, address, cpu.h); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:407:40 [INFO] [stdout] | [INFO] [stdout] 407 | mem_access_b!(cpu.memory_unit, address, cpu.l); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:414:40 [INFO] [stdout] | [INFO] [stdout] 414 | mem_access_b!(cpu.memory_unit, address, cpu.a); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:426:48 [INFO] [stdout] | [INFO] [stdout] 426 | cpu.a = mem_access_b!(cpu.memory_unit, address); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `overfowing_add` found for type `u8` in the current scope [INFO] [stdout] --> src/cpu.rs:476:30 [INFO] [stdout] | [INFO] [stdout] 476 | let (val, b) = cpu.a.overfowing_add(cpu.a); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: there is an associated function with a similar name: `overflowing_add` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0600]: cannot apply unary operator `-` to type `u8` [INFO] [stdout] --> src/cpu.rs:527:32 [INFO] [stdout] | [INFO] [stdout] 527 | if cpu.a == 0 { cpu.f |- ZERO_FLAG; } [INFO] [stdout] | ^^^^^^^^^^^ cannot apply unary operator `-` [INFO] [stdout] | [INFO] [stdout] = note: unsigned values cannot be negated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:579:22 [INFO] [stdout] | [INFO] [stdout] 579 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.sp); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:587:17 [INFO] [stdout] | [INFO] [stdout] 587 | cpu.b = value >> 8 as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected `u8`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:588:25 [INFO] [stdout] | [INFO] [stdout] 588 | cpu.c = value & 0xff as u8; [INFO] [stdout] | ^^^^^^^^^^ expected `u16`, found `u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:588:17 [INFO] [stdout] | [INFO] [stdout] 588 | cpu.c = value & 0xff as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ expected `u8`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: no implementation for `u16 & u8` [INFO] [stdout] --> src/cpu.rs:588:23 [INFO] [stdout] | [INFO] [stdout] 588 | cpu.c = value & 0xff as u8; [INFO] [stdout] | ^ no implementation for `u16 & u8` [INFO] [stdout] | [INFO] [stdout] = help: the trait `BitAnd` is not implemented for `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:594:22 [INFO] [stdout] | [INFO] [stdout] 594 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.pc); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:599:18 [INFO] [stdout] | [INFO] [stdout] 599 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.pc); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:606:52 [INFO] [stdout] | [INFO] [stdout] 606 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.wrapping_add(2)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 606 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.wrapping_add(2).try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:607:22 [INFO] [stdout] | [INFO] [stdout] 607 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.pc); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:620:48 [INFO] [stdout] | [INFO] [stdout] 620 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc); [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 620 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:627:22 [INFO] [stdout] | [INFO] [stdout] 627 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.sp); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:633:18 [INFO] [stdout] | [INFO] [stdout] 633 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.sp); cpu.sp += 2; [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:639:22 [INFO] [stdout] | [INFO] [stdout] 639 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.pc); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:655:48 [INFO] [stdout] | [INFO] [stdout] 655 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.wrapping_add(2)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 655 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.wrapping_add(2).try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:656:18 [INFO] [stdout] | [INFO] [stdout] 656 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.pc); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:662:48 [INFO] [stdout] | [INFO] [stdout] 662 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc); [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 662 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:671:22 [INFO] [stdout] | [INFO] [stdout] 671 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.sp); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:679:17 [INFO] [stdout] | [INFO] [stdout] 679 | cpu.d = value >> 8 as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected `u8`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:680:25 [INFO] [stdout] | [INFO] [stdout] 680 | cpu.e = value & 0xff as u8; [INFO] [stdout] | ^^^^^^^^^^ expected `u16`, found `u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:680:17 [INFO] [stdout] | [INFO] [stdout] 680 | cpu.e = value & 0xff as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ expected `u8`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: no implementation for `u16 & u8` [INFO] [stdout] --> src/cpu.rs:680:23 [INFO] [stdout] | [INFO] [stdout] 680 | cpu.e = value & 0xff as u8; [INFO] [stdout] | ^ no implementation for `u16 & u8` [INFO] [stdout] | [INFO] [stdout] = help: the trait `BitAnd` is not implemented for `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:686:22 [INFO] [stdout] | [INFO] [stdout] 686 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.pc); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:690:33 [INFO] [stdout] | [INFO] [stdout] 690 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 690 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:694:22 [INFO] [stdout] | [INFO] [stdout] 694 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.sp); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:708:48 [INFO] [stdout] | [INFO] [stdout] 708 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc); [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 708 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:715:22 [INFO] [stdout] | [INFO] [stdout] 715 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.sp); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:722:18 [INFO] [stdout] | [INFO] [stdout] 722 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.sp); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:729:22 [INFO] [stdout] | [INFO] [stdout] 729 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.pc); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:733:33 [INFO] [stdout] | [INFO] [stdout] 733 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 733 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:738:52 [INFO] [stdout] | [INFO] [stdout] 738 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.wrapping_add(2)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 738 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.wrapping_add(2).try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:739:22 [INFO] [stdout] | [INFO] [stdout] 739 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.pc); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:743:33 [INFO] [stdout] | [INFO] [stdout] 743 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 743 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:747:48 [INFO] [stdout] | [INFO] [stdout] 747 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc); [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 747 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:757:17 [INFO] [stdout] | [INFO] [stdout] 757 | cpu.h = value >> 8 as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected `u8`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:758:25 [INFO] [stdout] | [INFO] [stdout] 758 | cpu.l = value & 0xff as u8; [INFO] [stdout] | ^^^^^^^^^^ expected `u16`, found `u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:758:17 [INFO] [stdout] | [INFO] [stdout] 758 | cpu.l = value & 0xff as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ expected `u8`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: no implementation for `u16 & u8` [INFO] [stdout] --> src/cpu.rs:758:23 [INFO] [stdout] | [INFO] [stdout] 758 | cpu.l = value & 0xff as u8; [INFO] [stdout] | ^ no implementation for `u16 & u8` [INFO] [stdout] | [INFO] [stdout] = help: the trait `BitAnd` is not implemented for `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:762:33 [INFO] [stdout] | [INFO] [stdout] 762 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 762 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:763:33 [INFO] [stdout] | [INFO] [stdout] 763 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 763 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `wrapping_add` found for mutable reference `&mut Z80` in the current scope [INFO] [stdout] --> src/cpu.rs:119:21 [INFO] [stdout] | [INFO] [stdout] 119 | cpu.c = cpu.wrapping_add(1); [INFO] [stdout] | ^^^^^^^^^^^^ method not found in `&mut Z80` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:164:18 [INFO] [stdout] | [INFO] [stdout] 164 | cpu.pc = (cpu.pc as i16 + (offset as i8) as i16) as u16; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `usize`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:221:33 [INFO] [stdout] | [INFO] [stdout] 221 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 221 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:773:48 [INFO] [stdout] | [INFO] [stdout] 773 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc); [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 773 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:780:33 [INFO] [stdout] | [INFO] [stdout] 780 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 780 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:781:33 [INFO] [stdout] | [INFO] [stdout] 781 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 781 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:253:50 [INFO] [stdout] | [INFO] [stdout] 253 | let val = mem_access_b!(cpu.memory_unit, address).wrapping_add(1); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:782:33 [INFO] [stdout] | [INFO] [stdout] 782 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 782 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:254:40 [INFO] [stdout] | [INFO] [stdout] 254 | mem_access_b!(cpu.memory_unit, address, val); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:786:48 [INFO] [stdout] | [INFO] [stdout] 786 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc); [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 786 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:262:50 [INFO] [stdout] | [INFO] [stdout] 262 | let val = mem_access_b!(cpu.memory_unit, address).wrapping_sub(1); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:796:17 [INFO] [stdout] | [INFO] [stdout] 796 | cpu.a = value >> 8 as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected `u8`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:797:25 [INFO] [stdout] | [INFO] [stdout] 797 | cpu.f = value & 0xff as u8; [INFO] [stdout] | ^^^^^^^^^^ expected `u16`, found `u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:797:17 [INFO] [stdout] | [INFO] [stdout] 797 | cpu.f = value & 0xff as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ expected `u8`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:263:40 [INFO] [stdout] | [INFO] [stdout] 263 | mem_access_b!(cpu.memory_unit, address, val); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: no implementation for `u16 & u8` [INFO] [stdout] --> src/cpu.rs:797:23 [INFO] [stdout] | [INFO] [stdout] 797 | cpu.f = value & 0xff as u8; [INFO] [stdout] | ^ no implementation for `u16 & u8` [INFO] [stdout] | [INFO] [stdout] = help: the trait `BitAnd` is not implemented for `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:299:48 [INFO] [stdout] | [INFO] [stdout] 299 | cpu.b = mem_access_b!(cpu.memory_unit, address); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:802:33 [INFO] [stdout] | [INFO] [stdout] 802 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 802 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:312:48 [INFO] [stdout] | [INFO] [stdout] 312 | cpu.c = mem_access_b!(cpu.memory_unit, address); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:818:48 [INFO] [stdout] | [INFO] [stdout] 818 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc); [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 818 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:327:48 [INFO] [stdout] | [INFO] [stdout] 327 | cpu.d = mem_access_b!(cpu.memory_unit, address); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:823:33 [INFO] [stdout] | [INFO] [stdout] 823 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 823 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:340:48 [INFO] [stdout] | [INFO] [stdout] 340 | cpu.e = mem_access_b!(cpu.memory_unit, address); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:355:48 [INFO] [stdout] | [INFO] [stdout] 355 | cpu.h = mem_access_b!(cpu.memory_unit, address); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:368:48 [INFO] [stdout] | [INFO] [stdout] 368 | cpu.h = mem_access_b!(cpu.memory_unit, address); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:826:48 [INFO] [stdout] | [INFO] [stdout] 826 | cpu.a = mem_access_b!(cpu.memory_unit, address); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:377:40 [INFO] [stdout] | [INFO] [stdout] 377 | mem_access_b!(cpu.memory_unit, address, cpu.b); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:383:40 [INFO] [stdout] | [INFO] [stdout] 383 | mem_access_b!(cpu.memory_unit, address, cpu.c); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:389:40 [INFO] [stdout] | [INFO] [stdout] 389 | mem_access_b!(cpu.memory_unit, address, cpu.d); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:831:33 [INFO] [stdout] | [INFO] [stdout] 831 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 831 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:832:33 [INFO] [stdout] | [INFO] [stdout] 832 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 832 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:395:40 [INFO] [stdout] | [INFO] [stdout] 395 | mem_access_b!(cpu.memory_unit, address, cpu.e); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:401:40 [INFO] [stdout] | [INFO] [stdout] 401 | mem_access_b!(cpu.memory_unit, address, cpu.h); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:407:40 [INFO] [stdout] | [INFO] [stdout] 407 | mem_access_b!(cpu.memory_unit, address, cpu.l); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:414:40 [INFO] [stdout] | [INFO] [stdout] 414 | mem_access_b!(cpu.memory_unit, address, cpu.a); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:426:48 [INFO] [stdout] | [INFO] [stdout] 426 | cpu.a = mem_access_b!(cpu.memory_unit, address); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:844:48 [INFO] [stdout] | [INFO] [stdout] 844 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc); [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 844 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `overfowing_add` found for type `u8` in the current scope [INFO] [stdout] --> src/cpu.rs:476:30 [INFO] [stdout] | [INFO] [stdout] 476 | let (val, b) = cpu.a.overfowing_add(cpu.a); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: there is an associated function with a similar name: `overflowing_add` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0600]: cannot apply unary operator `-` to type `u8` [INFO] [stdout] --> src/cpu.rs:527:32 [INFO] [stdout] | [INFO] [stdout] 527 | if cpu.a == 0 { cpu.f |- ZERO_FLAG; } [INFO] [stdout] | ^^^^^^^^^^^ cannot apply unary operator `-` [INFO] [stdout] | [INFO] [stdout] = note: unsigned values cannot be negated [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:579:22 [INFO] [stdout] | [INFO] [stdout] 579 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.sp); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:587:17 [INFO] [stdout] | [INFO] [stdout] 587 | cpu.b = value >> 8 as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected `u8`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:588:25 [INFO] [stdout] | [INFO] [stdout] 588 | cpu.c = value & 0xff as u8; [INFO] [stdout] | ^^^^^^^^^^ expected `u16`, found `u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:588:17 [INFO] [stdout] | [INFO] [stdout] 588 | cpu.c = value & 0xff as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ expected `u8`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: no implementation for `u16 & u8` [INFO] [stdout] --> src/cpu.rs:588:23 [INFO] [stdout] | [INFO] [stdout] 588 | cpu.c = value & 0xff as u8; [INFO] [stdout] | ^ no implementation for `u16 & u8` [INFO] [stdout] | [INFO] [stdout] = help: the trait `BitAnd` is not implemented for `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:594:22 [INFO] [stdout] | [INFO] [stdout] 594 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.pc); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:599:18 [INFO] [stdout] | [INFO] [stdout] 599 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.pc); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:606:52 [INFO] [stdout] | [INFO] [stdout] 606 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.wrapping_add(2)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 606 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.wrapping_add(2).try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:607:22 [INFO] [stdout] | [INFO] [stdout] 607 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.pc); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:620:48 [INFO] [stdout] | [INFO] [stdout] 620 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc); [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 620 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:627:22 [INFO] [stdout] | [INFO] [stdout] 627 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.sp); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:633:18 [INFO] [stdout] | [INFO] [stdout] 633 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.sp); cpu.sp += 2; [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:639:22 [INFO] [stdout] | [INFO] [stdout] 639 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.pc); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:655:48 [INFO] [stdout] | [INFO] [stdout] 655 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.wrapping_add(2)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 655 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.wrapping_add(2).try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:656:18 [INFO] [stdout] | [INFO] [stdout] 656 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.pc); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:662:48 [INFO] [stdout] | [INFO] [stdout] 662 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc); [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 662 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:671:22 [INFO] [stdout] | [INFO] [stdout] 671 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.sp); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:679:17 [INFO] [stdout] | [INFO] [stdout] 679 | cpu.d = value >> 8 as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected `u8`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:680:25 [INFO] [stdout] | [INFO] [stdout] 680 | cpu.e = value & 0xff as u8; [INFO] [stdout] | ^^^^^^^^^^ expected `u16`, found `u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:680:17 [INFO] [stdout] | [INFO] [stdout] 680 | cpu.e = value & 0xff as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ expected `u8`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: no implementation for `u16 & u8` [INFO] [stdout] --> src/cpu.rs:680:23 [INFO] [stdout] | [INFO] [stdout] 680 | cpu.e = value & 0xff as u8; [INFO] [stdout] | ^ no implementation for `u16 & u8` [INFO] [stdout] | [INFO] [stdout] = help: the trait `BitAnd` is not implemented for `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:686:22 [INFO] [stdout] | [INFO] [stdout] 686 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.pc); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:690:33 [INFO] [stdout] | [INFO] [stdout] 690 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 690 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:694:22 [INFO] [stdout] | [INFO] [stdout] 694 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.sp); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:708:48 [INFO] [stdout] | [INFO] [stdout] 708 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc); [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 708 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:715:22 [INFO] [stdout] | [INFO] [stdout] 715 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.sp); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:722:18 [INFO] [stdout] | [INFO] [stdout] 722 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.sp); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:729:22 [INFO] [stdout] | [INFO] [stdout] 729 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.pc); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:733:33 [INFO] [stdout] | [INFO] [stdout] 733 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 733 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:738:52 [INFO] [stdout] | [INFO] [stdout] 738 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.wrapping_add(2)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 738 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.wrapping_add(2).try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> src/mmu.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 36 | / match result { [INFO] [stdout] 37 | | None => panic!("Failed memory access at {:?}", stringify!($address)), [INFO] [stdout] 38 | | Some(r) => r [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `usize`, found `u16` [INFO] [stdout] | | help: you can convert a `u16` to a `usize`: `r.into()` [INFO] [stdout] 39 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] | [INFO] [stdout] ::: src/cpu.rs:739:22 [INFO] [stdout] | [INFO] [stdout] 739 | cpu.pc = mem_access_w!(cpu.memory_unit, cpu.pc); [INFO] [stdout] | -------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is found to be of type `usize` [INFO] [stdout] | in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:743:33 [INFO] [stdout] | [INFO] [stdout] 743 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 743 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:747:48 [INFO] [stdout] | [INFO] [stdout] 747 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc); [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 747 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:757:17 [INFO] [stdout] | [INFO] [stdout] 757 | cpu.h = value >> 8 as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected `u8`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:758:25 [INFO] [stdout] | [INFO] [stdout] 758 | cpu.l = value & 0xff as u8; [INFO] [stdout] | ^^^^^^^^^^ expected `u16`, found `u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:758:17 [INFO] [stdout] | [INFO] [stdout] 758 | cpu.l = value & 0xff as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ expected `u8`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: no implementation for `u16 & u8` [INFO] [stdout] --> src/cpu.rs:758:23 [INFO] [stdout] | [INFO] [stdout] 758 | cpu.l = value & 0xff as u8; [INFO] [stdout] | ^ no implementation for `u16 & u8` [INFO] [stdout] | [INFO] [stdout] = help: the trait `BitAnd` is not implemented for `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:762:33 [INFO] [stdout] | [INFO] [stdout] 762 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 762 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:763:33 [INFO] [stdout] | [INFO] [stdout] 763 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 763 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:773:48 [INFO] [stdout] | [INFO] [stdout] 773 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc); [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 773 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:780:33 [INFO] [stdout] | [INFO] [stdout] 780 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 780 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:781:33 [INFO] [stdout] | [INFO] [stdout] 781 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 781 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:782:33 [INFO] [stdout] | [INFO] [stdout] 782 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 782 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:786:48 [INFO] [stdout] | [INFO] [stdout] 786 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc); [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 786 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:796:17 [INFO] [stdout] | [INFO] [stdout] 796 | cpu.a = value >> 8 as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ expected `u8`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:797:25 [INFO] [stdout] | [INFO] [stdout] 797 | cpu.f = value & 0xff as u8; [INFO] [stdout] | ^^^^^^^^^^ expected `u16`, found `u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:797:17 [INFO] [stdout] | [INFO] [stdout] 797 | cpu.f = value & 0xff as u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ expected `u8`, found `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: no implementation for `u16 & u8` [INFO] [stdout] --> src/cpu.rs:797:23 [INFO] [stdout] | [INFO] [stdout] 797 | cpu.f = value & 0xff as u8; [INFO] [stdout] | ^ no implementation for `u16 & u8` [INFO] [stdout] | [INFO] [stdout] = help: the trait `BitAnd` is not implemented for `u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:802:33 [INFO] [stdout] | [INFO] [stdout] 802 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 802 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:818:48 [INFO] [stdout] | [INFO] [stdout] 818 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc); [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 818 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:823:33 [INFO] [stdout] | [INFO] [stdout] 823 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 823 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 101 previous errors; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0599, E0600. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:826:48 [INFO] [stdout] | [INFO] [stdout] 826 | cpu.a = mem_access_b!(cpu.memory_unit, address); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `usize`, found `u16` [INFO] [stdout] | help: you can convert a `u16` to a `usize`: `address.into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:831:33 [INFO] [stdout] | [INFO] [stdout] 831 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 831 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:832:33 [INFO] [stdout] | [INFO] [stdout] 832 | |cpu: &mut Z80| { undefined(cpu.pc); }, [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 832 | |cpu: &mut Z80| { undefined(cpu.pc.try_into().unwrap()); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/cpu.rs:844:48 [INFO] [stdout] | [INFO] [stdout] 844 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc); [INFO] [stdout] | ^^^^^^ expected `u16`, found `usize` [INFO] [stdout] | [INFO] [stdout] help: you can convert a `usize` to a `u16` and panic if the converted value doesn't fit [INFO] [stdout] | [INFO] [stdout] 844 | mem_access_w!(cpu.memory_unit, cpu.sp, cpu.pc.try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `gb_emulator` [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 101 previous errors; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0599, E0600. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stderr] error: build failed [INFO] running `Command { std: "docker" "inspect" "10ce47053a8644a3714b3505097b9a50f80f86a3981664c76decbe67d144f52f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "10ce47053a8644a3714b3505097b9a50f80f86a3981664c76decbe67d144f52f", kill_on_drop: false }` [INFO] [stdout] 10ce47053a8644a3714b3505097b9a50f80f86a3981664c76decbe67d144f52f