[INFO] cloning repository https://github.com/masp/nes_emulator [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/masp/nes_emulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmasp%2Fnes_emulator", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmasp%2Fnes_emulator'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b23ae8389a4a6f7b5e1bfe8fb697e38a312ed0a9 [INFO] checking masp/nes_emulator against try#8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8 for pr-82565 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmasp%2Fnes_emulator" "/workspace/builds/worker-13/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-13/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/masp/nes_emulator on toolchain 8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/masp/nes_emulator [INFO] finished tweaking git repo https://github.com/masp/nes_emulator [INFO] tweaked toml for git repo https://github.com/masp/nes_emulator written to /workspace/builds/worker-13/source/Cargo.toml [INFO] crate git repo https://github.com/masp/nes_emulator already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/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:f2f6bcd4b43ebee4e173f653a26493129bdb64017c85f916b780ca7fbdbaa79d" "/opt/rustwide/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 44d289eacee4c0040ca3400ff84daa43dc0648a5773f595c821e1ccb0f7efaa3 [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" "44d289eacee4c0040ca3400ff84daa43dc0648a5773f595c821e1ccb0f7efaa3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "44d289eacee4c0040ca3400ff84daa43dc0648a5773f595c821e1ccb0f7efaa3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "44d289eacee4c0040ca3400ff84daa43dc0648a5773f595c821e1ccb0f7efaa3", kill_on_drop: false }` [INFO] [stdout] 44d289eacee4c0040ca3400ff84daa43dc0648a5773f595c821e1ccb0f7efaa3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/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:f2f6bcd4b43ebee4e173f653a26493129bdb64017c85f916b780ca7fbdbaa79d" "/opt/rustwide/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ebb1730beb75142546bb408b6a51f08ff06d71f69dc3ce16f147fb35d26f6c25 [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" "ebb1730beb75142546bb408b6a51f08ff06d71f69dc3ce16f147fb35d26f6c25", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling proc-macro2 v1.0.18 [INFO] [stderr] Compiling syn v1.0.31 [INFO] [stderr] Compiling serde v1.0.112 [INFO] [stderr] Compiling byteorder v1.3.4 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling rayon-core v1.7.1 [INFO] [stderr] Checking itoa v0.4.6 [INFO] [stderr] Compiling beef v0.4.4 [INFO] [stderr] Checking either v1.5.3 [INFO] [stderr] Compiling regex-syntax v0.6.18 [INFO] [stderr] Checking unicode-width v0.1.7 [INFO] [stderr] Checking bytes v0.5.5 [INFO] [stderr] Checking oorandom v11.1.2 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling memoffset v0.5.4 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Compiling num-traits v0.2.12 [INFO] [stderr] Compiling rayon v1.3.1 [INFO] [stderr] Compiling claim v0.3.1 [INFO] [stderr] Compiling unicase v2.6.0 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking itertools v0.9.0 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Compiling cast v0.2.3 [INFO] [stderr] Checking csv-core v0.1.10 [INFO] [stderr] Checking clap v2.33.1 [INFO] [stderr] Checking regex-automata v0.1.9 [INFO] [stderr] Checking crossbeam-queue v0.2.3 [INFO] [stderr] Checking quote v1.0.7 [INFO] [stderr] Checking criterion-plot v0.4.2 [INFO] [stderr] Checking crossbeam-deque v0.7.3 [INFO] [stderr] Checking plotters v0.2.15 [INFO] [stderr] Checking regex v1.3.9 [INFO] [stderr] Checking bstr v0.2.13 [INFO] [stderr] Checking serde_json v1.0.55 [INFO] [stderr] Checking enum_string v0.1.0 (/opt/rustwide/workdir/enum_string) [INFO] [stderr] Checking csv v1.1.3 [INFO] [stderr] Checking tinytemplate v1.1.0 [INFO] [stderr] Compiling logos-derive v0.11.5 [INFO] [stderr] Compiling serde_derive v1.0.112 [INFO] [stderr] Checking logos v0.11.4 [INFO] [stderr] Checking parser_6502 v0.1.0 (/opt/rustwide/workdir/parser_6502) [INFO] [stderr] Checking cpu_6502 v0.1.0 (/opt/rustwide/workdir/cpu_6502) [INFO] [stdout] error[E0408]: variable `v` is not bound in all patterns [INFO] [stdout] --> cpu_6502/src/lib.rs:149:13 [INFO] [stdout] | [INFO] [stdout] 148 | Arg::Immediate(v) | [INFO] [stdout] | - variable not in all patterns [INFO] [stdout] 149 | Arg::Implicit | [INFO] [stdout] | ^^^^^^^^^^^^^ pattern doesn't bind `v` [INFO] [stdout] 150 | Arg::Accumulator => panic!(format!("invalid arg type {:?} for address", a)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ pattern doesn't bind `v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `is_zero` in this scope [INFO] [stdout] --> cpu_6502/src/lib.rs:21:15 [INFO] [stdout] | [INFO] [stdout] 21 | n.z = is_zero(v); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 1 | use std::rt::panic_count::is_zero; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `is_negative` in this scope [INFO] [stdout] --> cpu_6502/src/lib.rs:22:15 [INFO] [stdout] | [INFO] [stdout] 22 | n.n = is_negative(v); [INFO] [stdout] | ^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `a` in this scope [INFO] [stdout] --> cpu_6502/src/lib.rs:150:85 [INFO] [stdout] | [INFO] [stdout] 150 | Arg::Accumulator => panic!(format!("invalid arg type {:?} for address", a)), [INFO] [stdout] | ^ help: you might have meant to use the available field: `self.a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0408]: variable `v` is not bound in all patterns [INFO] [stdout] --> cpu_6502/src/lib.rs:149:13 [INFO] [stdout] | [INFO] [stdout] 148 | Arg::Immediate(v) | [INFO] [stdout] | - variable not in all patterns [INFO] [stdout] 149 | Arg::Implicit | [INFO] [stdout] | ^^^^^^^^^^^^^ pattern doesn't bind `v` [INFO] [stdout] 150 | Arg::Accumulator => panic!(format!("invalid arg type {:?} for address", a)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ pattern doesn't bind `v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `is_zero` in this scope [INFO] [stdout] --> cpu_6502/src/lib.rs:21:15 [INFO] [stdout] | [INFO] [stdout] 21 | n.z = is_zero(v); [INFO] [stdout] | ^^^^^^^ not found in this scope [INFO] [stdout] | [INFO] [stdout] help: consider importing this function [INFO] [stdout] | [INFO] [stdout] 1 | use std::rt::panic_count::is_zero; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `is_negative` in this scope [INFO] [stdout] --> cpu_6502/src/lib.rs:22:15 [INFO] [stdout] | [INFO] [stdout] 22 | n.n = is_negative(v); [INFO] [stdout] | ^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `a` in this scope [INFO] [stdout] --> cpu_6502/src/lib.rs:150:85 [INFO] [stdout] | [INFO] [stdout] 150 | Arg::Accumulator => panic!(format!("invalid arg type {:?} for address", a)), [INFO] [stdout] | ^ help: you might have meant to use the available field: `self.a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `&u8` with `{integer}` [INFO] [stdout] --> cpu_6502/src/lib.rs:16:36 [INFO] [stdout] | [INFO] [stdout] 16 | fn is_zero(v: &u8) -> bool { v == 0 } [INFO] [stdout] | ^^ no implementation for `&u8 == {integer}` [INFO] [stdout] | [INFO] [stdout] = help: the trait `PartialEq<{integer}>` is not implemented for `&u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `store_u8` found for mutable reference `&mut Mem` in the current scope [INFO] [stdout] --> cpu_6502/src/lib.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | self.store_u8(addr, v1); [INFO] [stdout] | ^^^^^^^^ help: there is an associated function with a similar name: `store_u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `store_u8` found for mutable reference `&mut Mem` in the current scope [INFO] [stdout] --> cpu_6502/src/lib.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | self.store_u8(addr + 1, v2); [INFO] [stdout] | ^^^^^^^^ help: there is an associated function with a similar name: `store_u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `overflow_add` found for type `u8` in the current scope [INFO] [stdout] --> cpu_6502/src/lib.rs:121:42 [INFO] [stdout] | [INFO] [stdout] 121 | let (new_val, did_overflow) = v1.overflow_add(v2); [INFO] [stdout] | ^^^^^^^^^^^^ help: there is an associated function with a similar name: `overflowing_add` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `overflow_sub` found for type `u8` in the current scope [INFO] [stdout] --> cpu_6502/src/lib.rs:129:42 [INFO] [stdout] | [INFO] [stdout] 129 | let (new_val, did_overflow) = v1.overflow_sub(v2); [INFO] [stdout] | ^^^^^^^^^^^^ help: there is an associated function with a similar name: `overflowing_sub` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> cpu_6502/src/lib.rs:142:59 [INFO] [stdout] | [INFO] [stdout] 142 | Arg::IndexedIndirect(a) => self.mem.fetch_u16(a.wrapping_add(self.x)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `u16`, found `u8` [INFO] [stdout] | help: you can convert a `u8` to a `u16`: `a.wrapping_add(self.x).into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> cpu_6502/src/lib.rs:145:33 [INFO] [stdout] | [INFO] [stdout] 137 | / match arg { [INFO] [stdout] 138 | | Arg::Zeropage(a) => *a as Addr, [INFO] [stdout] 139 | | Arg::ZeropageX(a) => a.wrapping_add(self.x) as Addr, [INFO] [stdout] 140 | | Arg::ZeropageY(a) => a.wrapping_add(self.y) as Addr, [INFO] [stdout] ... | [INFO] [stdout] 144 | | Arg::Relative(a) => self.pc + a as Addr, [INFO] [stdout] | | ------------------- this and all prior arms are found to be of type `u16` [INFO] [stdout] 145 | | Arg::Absolute(a) => a, [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `u16`, found `&u16` [INFO] [stdout] | | help: consider dereferencing the borrow: `*a` [INFO] [stdout] ... | [INFO] [stdout] 150 | | Arg::Accumulator => panic!(format!("invalid arg type {:?} for address", a)), [INFO] [stdout] 151 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `&u8` with `{integer}` [INFO] [stdout] --> cpu_6502/src/lib.rs:16:36 [INFO] [stdout] | [INFO] [stdout] 16 | fn is_zero(v: &u8) -> bool { v == 0 } [INFO] [stdout] | ^^ no implementation for `&u8 == {integer}` [INFO] [stdout] | [INFO] [stdout] = help: the trait `PartialEq<{integer}>` is not implemented for `&u8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0606]: casting `&i8` as `u16` is invalid [INFO] [stdout] --> cpu_6502/src/lib.rs:144:43 [INFO] [stdout] | [INFO] [stdout] 144 | Arg::Relative(a) => self.pc + a as Addr, [INFO] [stdout] | -^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | cannot cast `&i8` as `u16` [INFO] [stdout] | help: dereference the expression: `*a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `store_u8` found for mutable reference `&mut Mem` in the current scope [INFO] [stdout] --> cpu_6502/src/lib.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | self.store_u8(addr, v1); [INFO] [stdout] | ^^^^^^^^ help: there is an associated function with a similar name: `store_u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `store_u8` found for mutable reference `&mut Mem` in the current scope [INFO] [stdout] --> cpu_6502/src/lib.rs:56:14 [INFO] [stdout] | [INFO] [stdout] 56 | self.store_u8(addr + 1, v2); [INFO] [stdout] | ^^^^^^^^ help: there is an associated function with a similar name: `store_u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `overflow_add` found for type `u8` in the current scope [INFO] [stdout] --> cpu_6502/src/lib.rs:121:42 [INFO] [stdout] | [INFO] [stdout] 121 | let (new_val, did_overflow) = v1.overflow_add(v2); [INFO] [stdout] | ^^^^^^^^^^^^ help: there is an associated function with a similar name: `overflowing_add` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `overflow_sub` found for type `u8` in the current scope [INFO] [stdout] --> cpu_6502/src/lib.rs:129:42 [INFO] [stdout] | [INFO] [stdout] 129 | let (new_val, did_overflow) = v1.overflow_sub(v2); [INFO] [stdout] | ^^^^^^^^^^^^ help: there is an associated function with a similar name: `overflowing_sub` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> cpu_6502/src/lib.rs:142:59 [INFO] [stdout] | [INFO] [stdout] 142 | Arg::IndexedIndirect(a) => self.mem.fetch_u16(a.wrapping_add(self.x)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | expected `u16`, found `u8` [INFO] [stdout] | help: you can convert a `u8` to a `u16`: `a.wrapping_add(self.x).into()` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> cpu_6502/src/lib.rs:145:33 [INFO] [stdout] | [INFO] [stdout] 137 | / match arg { [INFO] [stdout] 138 | | Arg::Zeropage(a) => *a as Addr, [INFO] [stdout] 139 | | Arg::ZeropageX(a) => a.wrapping_add(self.x) as Addr, [INFO] [stdout] 140 | | Arg::ZeropageY(a) => a.wrapping_add(self.y) as Addr, [INFO] [stdout] ... | [INFO] [stdout] 144 | | Arg::Relative(a) => self.pc + a as Addr, [INFO] [stdout] | | ------------------- this and all prior arms are found to be of type `u16` [INFO] [stdout] 145 | | Arg::Absolute(a) => a, [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | expected `u16`, found `&u16` [INFO] [stdout] | | help: consider dereferencing the borrow: `*a` [INFO] [stdout] ... | [INFO] [stdout] 150 | | Arg::Accumulator => panic!(format!("invalid arg type {:?} for address", a)), [INFO] [stdout] 151 | | } [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0606]: casting `&i8` as `u16` is invalid [INFO] [stdout] --> cpu_6502/src/lib.rs:144:43 [INFO] [stdout] | [INFO] [stdout] 144 | Arg::Relative(a) => self.pc + a as Addr, [INFO] [stdout] | -^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | cannot cast `&i8` as `u16` [INFO] [stdout] | help: dereference the expression: `*a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> cpu_6502/src/lib.rs:173:28 [INFO] [stdout] | [INFO] [stdout] 165 | let new_flags = match o { [INFO] [stdout] | _________________________- [INFO] [stdout] 166 | | Opcode::TAX => self.assign_reg(self.a, &mut self.x), [INFO] [stdout] 167 | | Opcode::TXA => self.assign_reg(self.x, &mut self.a), [INFO] [stdout] 168 | | Opcode::TAY => self.assign_reg(self.a, &mut self.y), [INFO] [stdout] ... | [INFO] [stdout] 172 | | Opcode::DEC => { self.a = self.a.wrapping_sub(1); self.flags.update_nz(&self.a) } [INFO] [stdout] | | ----------------------------- this and all prior arms are found to be of type `CpuFlags` [INFO] [stdout] 173 | | Opcode::INX => self.x = self.x.wrapping_add(1), [INFO] [stdout] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `CpuFlags`, found `()` [INFO] [stdout] ... | [INFO] [stdout] 189 | | _ => unimplemented!("opcode not supported yet!") [INFO] [stdout] 190 | | }; [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `store_u8` found for struct `Mem` in the current scope [INFO] [stdout] --> cpu_6502/src/lib.rs:181:37 [INFO] [stdout] | [INFO] [stdout] 30 | struct Mem { [INFO] [stdout] | ---------- method `store_u8` not found for this [INFO] [stdout] ... [INFO] [stdout] 181 | Opcode::STA => self.mem.store_u8(self.resolve_addr(&a), self.a), [INFO] [stdout] | ^^^^^^^^ help: there is an associated function with a similar name: `store_u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `store_u8` found for struct `Mem` in the current scope [INFO] [stdout] --> cpu_6502/src/lib.rs:182:37 [INFO] [stdout] | [INFO] [stdout] 30 | struct Mem { [INFO] [stdout] | ---------- method `store_u8` not found for this [INFO] [stdout] ... [INFO] [stdout] 182 | Opcode::STX => self.mem.store_u8(self.resolve_addr(&a), self.x), [INFO] [stdout] | ^^^^^^^^ help: there is an associated function with a similar name: `store_u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `store_u8` found for struct `Mem` in the current scope [INFO] [stdout] --> cpu_6502/src/lib.rs:183:37 [INFO] [stdout] | [INFO] [stdout] 30 | struct Mem { [INFO] [stdout] | ---------- method `store_u8` not found for this [INFO] [stdout] ... [INFO] [stdout] 183 | Opcode::STY => self.mem.store_u8(self.resolve_addr(&a), self.y), [INFO] [stdout] | ^^^^^^^^ help: there is an associated function with a similar name: `store_u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `status` on type `&Cpu` [INFO] [stdout] --> cpu_6502/src/lib.rs:202:33 [INFO] [stdout] | [INFO] [stdout] 202 | let amt = amt + if self.status.c { 1 } else { 0 }; [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `a`, `x`, `y`, `pc`, `sp` ... and 3 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `overflow_add` found for mutable reference `&mut u8` in the current scope [INFO] [stdout] --> cpu_6502/src/lib.rs:203:43 [INFO] [stdout] | [INFO] [stdout] 203 | let (new_val, did_overflow) = dst.overflow_add(amt); [INFO] [stdout] | ^^^^^^^^^^^^ help: there is an associated function with a similar name: `overflowing_add` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `status` on type `&Cpu` [INFO] [stdout] --> cpu_6502/src/lib.rs:204:30 [INFO] [stdout] | [INFO] [stdout] 204 | let mut flags = self.status.update_nz(new_val); [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `a`, `x`, `y`, `pc`, `sp` ... and 3 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: `match` arms have incompatible types [INFO] [stdout] --> cpu_6502/src/lib.rs:173:28 [INFO] [stdout] | [INFO] [stdout] 165 | let new_flags = match o { [INFO] [stdout] | _________________________- [INFO] [stdout] 166 | | Opcode::TAX => self.assign_reg(self.a, &mut self.x), [INFO] [stdout] 167 | | Opcode::TXA => self.assign_reg(self.x, &mut self.a), [INFO] [stdout] 168 | | Opcode::TAY => self.assign_reg(self.a, &mut self.y), [INFO] [stdout] ... | [INFO] [stdout] 172 | | Opcode::DEC => { self.a = self.a.wrapping_sub(1); self.flags.update_nz(&self.a) } [INFO] [stdout] | | ----------------------------- this and all prior arms are found to be of type `CpuFlags` [INFO] [stdout] 173 | | Opcode::INX => self.x = self.x.wrapping_add(1), [INFO] [stdout] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `CpuFlags`, found `()` [INFO] [stdout] ... | [INFO] [stdout] 189 | | _ => unimplemented!("opcode not supported yet!") [INFO] [stdout] 190 | | }; [INFO] [stdout] | |_________- `match` arms have incompatible types [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `store_u8` found for struct `Mem` in the current scope [INFO] [stdout] --> cpu_6502/src/lib.rs:181:37 [INFO] [stdout] | [INFO] [stdout] 30 | struct Mem { [INFO] [stdout] | ---------- method `store_u8` not found for this [INFO] [stdout] ... [INFO] [stdout] 181 | Opcode::STA => self.mem.store_u8(self.resolve_addr(&a), self.a), [INFO] [stdout] | ^^^^^^^^ help: there is an associated function with a similar name: `store_u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `store_u8` found for struct `Mem` in the current scope [INFO] [stdout] --> cpu_6502/src/lib.rs:182:37 [INFO] [stdout] | [INFO] [stdout] 30 | struct Mem { [INFO] [stdout] | ---------- method `store_u8` not found for this [INFO] [stdout] ... [INFO] [stdout] 182 | Opcode::STX => self.mem.store_u8(self.resolve_addr(&a), self.x), [INFO] [stdout] | ^^^^^^^^ help: there is an associated function with a similar name: `store_u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 19 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0408, E0425, E0599, E0606, E0609. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `store_u8` found for struct `Mem` in the current scope [INFO] [stdout] --> cpu_6502/src/lib.rs:183:37 [INFO] [stdout] | [INFO] [stdout] 30 | struct Mem { [INFO] [stdout] | ---------- method `store_u8` not found for this [INFO] [stdout] ... [INFO] [stdout] 183 | Opcode::STY => self.mem.store_u8(self.resolve_addr(&a), self.y), [INFO] [stdout] | ^^^^^^^^ help: there is an associated function with a similar name: `store_u16` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `status` on type `&Cpu` [INFO] [stdout] --> cpu_6502/src/lib.rs:202:33 [INFO] [stdout] | [INFO] [stdout] 202 | let amt = amt + if self.status.c { 1 } else { 0 }; [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `a`, `x`, `y`, `pc`, `sp` ... and 3 others [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `overflow_add` found for mutable reference `&mut u8` in the current scope [INFO] [stdout] --> cpu_6502/src/lib.rs:203:43 [INFO] [stdout] | [INFO] [stdout] 203 | let (new_val, did_overflow) = dst.overflow_add(amt); [INFO] [stdout] | ^^^^^^^^^^^^ help: there is an associated function with a similar name: `overflowing_add` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0609]: no field `status` on type `&Cpu` [INFO] [stdout] --> cpu_6502/src/lib.rs:204:30 [INFO] [stdout] | [INFO] [stdout] 204 | let mut flags = self.status.update_nz(new_val); [INFO] [stdout] | ^^^^^^ unknown field [INFO] [stdout] | [INFO] [stdout] = note: available fields are: `a`, `x`, `y`, `pc`, `sp` ... and 3 others [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `cpu_6502` [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 19 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0408, E0425, E0599, E0606, E0609. [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" "ebb1730beb75142546bb408b6a51f08ff06d71f69dc3ce16f147fb35d26f6c25", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ebb1730beb75142546bb408b6a51f08ff06d71f69dc3ce16f147fb35d26f6c25", kill_on_drop: false }` [INFO] [stdout] ebb1730beb75142546bb408b6a51f08ff06d71f69dc3ce16f147fb35d26f6c25