[INFO] cloning repository https://github.com/seasalim/retroc64 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/seasalim/retroc64" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fseasalim%2Fretroc64", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fseasalim%2Fretroc64'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 1bd4cfa491ee9b51b7760bdada52946dfe715dfc [INFO] testing seasalim/retroc64 against beta-2022-04-10 for beta-1.61-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fseasalim%2Fretroc64" "/workspace/builds/worker-55/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-55/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/seasalim/retroc64 on toolchain beta-2022-04-10 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/seasalim/retroc64 [INFO] finished tweaking git repo https://github.com/seasalim/retroc64 [INFO] tweaked toml for git repo https://github.com/seasalim/retroc64 written to /workspace/builds/worker-55/source/Cargo.toml [INFO] crate git repo https://github.com/seasalim/retroc64 already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-55/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-55/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e754c53992032fee01d7919e1a1c47cb37ecbaa72e43c888f626317429318f6b [INFO] running `Command { std: "docker" "start" "-a" "e754c53992032fee01d7919e1a1c47cb37ecbaa72e43c888f626317429318f6b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e754c53992032fee01d7919e1a1c47cb37ecbaa72e43c888f626317429318f6b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e754c53992032fee01d7919e1a1c47cb37ecbaa72e43c888f626317429318f6b", kill_on_drop: false }` [INFO] [stdout] e754c53992032fee01d7919e1a1c47cb37ecbaa72e43c888f626317429318f6b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-55/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-55/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7ded7a4a99bddcc6997d654084b6b6b3212f9ed22bf358f0db8757d8f3855ebf [INFO] running `Command { std: "docker" "start" "-a" "7ded7a4a99bddcc6997d654084b6b6b3212f9ed22bf358f0db8757d8f3855ebf", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.42 [INFO] [stderr] Compiling num-traits v0.2.4 [INFO] [stderr] Compiling num-integer v0.1.38 [INFO] [stderr] Compiling rustc-serialize v0.3.24 [INFO] [stderr] Compiling void v1.0.2 [INFO] [stderr] Compiling num-iter v0.1.37 [INFO] [stderr] Compiling ucd-util v0.1.1 [INFO] [stderr] Compiling regex v1.0.0 [INFO] [stderr] Compiling sdl2-sys v0.19.0 [INFO] [stderr] Compiling lazy_static v1.0.1 [INFO] [stderr] Compiling unicode-width v0.1.5 [INFO] [stderr] Compiling quick-error v1.2.2 [INFO] [stderr] Compiling utf8-ranges v1.0.0 [INFO] [stderr] Compiling cfg-if v0.1.3 [INFO] [stderr] Compiling termcolor v0.3.6 [INFO] [stderr] Compiling ansi_term v0.11.0 [INFO] [stderr] Compiling bitflags v0.6.0 [INFO] [stderr] Compiling strsim v0.7.0 [INFO] [stderr] Compiling lazy_static v0.2.11 [INFO] [stderr] Compiling vec_map v0.8.1 [INFO] [stderr] Compiling bitflags v1.0.3 [INFO] [stderr] Compiling humantime v1.1.1 [INFO] [stderr] Compiling log v0.4.2 [INFO] [stderr] Compiling unreachable v1.0.0 [INFO] [stderr] Compiling textwrap v0.9.0 [INFO] [stderr] Compiling regex-syntax v0.6.0 [INFO] [stderr] Compiling rand v0.4.2 [INFO] [stderr] Compiling memchr v2.0.1 [INFO] [stderr] Compiling atty v0.2.10 [INFO] [stderr] Compiling time v0.1.40 [INFO] [stderr] Compiling thread_local v0.3.5 [INFO] [stderr] Compiling aho-corasick v0.6.4 [INFO] [stderr] Compiling clap v2.31.2 [INFO] [stderr] Compiling rand v0.3.22 [INFO] [stderr] Compiling num-complex v0.1.43 [INFO] [stderr] Compiling num-bigint v0.1.44 [INFO] [stderr] Compiling env_logger v0.5.10 [INFO] [stderr] Compiling num-rational v0.1.42 [INFO] [stderr] Compiling num v0.1.42 [INFO] [stderr] Compiling sdl2 v0.20.1 [INFO] [stderr] Compiling retroc64 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dasm.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | let s = try!(parse_opcode(mem, &mut ip)); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:62:19 [INFO] [stdout] | [INFO] [stdout] 62 | 0xD000...0xDFFF => self.io[addr as usize - 0xD000], [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:69:19 [INFO] [stdout] | [INFO] [stdout] 69 | 0xD000...0xDFFF => self.io[addr as usize - 0xD000] = val, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:83:19 [INFO] [stdout] | [INFO] [stdout] 83 | 0xDC00...0xDDFF => self.read_register(addr), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:90:19 [INFO] [stdout] | [INFO] [stdout] 90 | 0xDC00...0xDDFF => self.write_register(addr, val), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:108:19 [INFO] [stdout] | [INFO] [stdout] 108 | 0x1000...0x1FFF if (bank == 0) || (bank == 2) => self.rom[(addr + 0xC000) as usize], // Char ROM [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:132:19 [INFO] [stdout] | [INFO] [stdout] 132 | 0xD000...0xD02E => self.read_register(addr), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:139:19 [INFO] [stdout] | [INFO] [stdout] 139 | 0xD000...0xD02E => self.write_register(addr, val), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:170:19 [INFO] [stdout] | [INFO] [stdout] 170 | 0xA000...0xBFFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:177:19 [INFO] [stdout] | [INFO] [stdout] 177 | 0xD000...0xDFFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:184:19 [INFO] [stdout] | [INFO] [stdout] 184 | 0xE000...0xFFFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:214:19 [INFO] [stdout] | [INFO] [stdout] 214 | 0xD000...0xDFFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:69:45 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn trigger_irq(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 69 - pub fn trigger_irq(&mut self, mem: &mut MemIO) { [INFO] [stdout] 69 + pub fn trigger_irq(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:73:45 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn single_step(&mut self, mem: &mut MemIO, cycles: &mut u8) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 73 - pub fn single_step(&mut self, mem: &mut MemIO, cycles: &mut u8) -> Result { [INFO] [stdout] 73 + pub fn single_step(&mut self, mem: &mut dyn MemIO, cycles: &mut u8) -> Result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:160:39 [INFO] [stdout] | [INFO] [stdout] 160 | fn fetch_operand(&self, mem: &mut MemIO, opcode: &Opcode) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 160 - fn fetch_operand(&self, mem: &mut MemIO, opcode: &Opcode) -> Operand { [INFO] [stdout] 160 + fn fetch_operand(&self, mem: &mut dyn MemIO, opcode: &Opcode) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:182:39 [INFO] [stdout] | [INFO] [stdout] 182 | fn opr_immediate(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 182 - fn opr_immediate(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 182 + fn opr_immediate(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:186:38 [INFO] [stdout] | [INFO] [stdout] 186 | fn opr_absolute(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 186 - fn opr_absolute(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 186 + fn opr_absolute(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:190:40 [INFO] [stdout] | [INFO] [stdout] 190 | fn opr_absolute_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 190 - fn opr_absolute_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 190 + fn opr_absolute_x(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:194:40 [INFO] [stdout] | [INFO] [stdout] 194 | fn opr_absolute_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 194 - fn opr_absolute_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 194 + fn opr_absolute_y(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:198:38 [INFO] [stdout] | [INFO] [stdout] 198 | fn opr_zeropage(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 198 - fn opr_zeropage(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 198 + fn opr_zeropage(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:202:40 [INFO] [stdout] | [INFO] [stdout] 202 | fn opr_zeropage_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 202 - fn opr_zeropage_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 202 + fn opr_zeropage_x(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:206:40 [INFO] [stdout] | [INFO] [stdout] 206 | fn opr_zeropage_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 206 - fn opr_zeropage_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 206 + fn opr_zeropage_y(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:210:38 [INFO] [stdout] | [INFO] [stdout] 210 | fn opr_indirect(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 210 - fn opr_indirect(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 210 + fn opr_indirect(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:214:40 [INFO] [stdout] | [INFO] [stdout] 214 | fn opr_indirect_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 214 - fn opr_indirect_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 214 + fn opr_indirect_x(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:218:40 [INFO] [stdout] | [INFO] [stdout] 218 | fn opr_indirect_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 218 - fn opr_indirect_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 218 + fn opr_indirect_y(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:222:38 [INFO] [stdout] | [INFO] [stdout] 222 | fn opr_relative(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 222 - fn opr_relative(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 222 + fn opr_relative(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:226:39 [INFO] [stdout] | [INFO] [stdout] 226 | fn push_byte(&mut self, mem: &mut MemIO, val: u8) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 226 - fn push_byte(&mut self, mem: &mut MemIO, val: u8) { [INFO] [stdout] 226 + fn push_byte(&mut self, mem: &mut dyn MemIO, val: u8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:231:38 [INFO] [stdout] | [INFO] [stdout] 231 | fn pop_byte(&mut self, mem: &mut MemIO) -> u8 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 231 - fn pop_byte(&mut self, mem: &mut MemIO) -> u8 { [INFO] [stdout] 231 + fn pop_byte(&mut self, mem: &mut dyn MemIO) -> u8 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:236:39 [INFO] [stdout] | [INFO] [stdout] 236 | fn push_word(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 236 - fn push_word(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] 236 + fn push_word(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:243:38 [INFO] [stdout] | [INFO] [stdout] 243 | fn pop_word(&mut self, mem: &mut MemIO) -> u16 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 243 - fn pop_word(&mut self, mem: &mut MemIO) -> u16 { [INFO] [stdout] 243 + fn pop_word(&mut self, mem: &mut dyn MemIO) -> u16 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:249:40 [INFO] [stdout] | [INFO] [stdout] 249 | fn operand_source(&self, mem: &mut MemIO, operand: &Operand) -> u8 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 249 - fn operand_source(&self, mem: &mut MemIO, operand: &Operand) -> u8 { [INFO] [stdout] 249 + fn operand_source(&self, mem: &mut dyn MemIO, operand: &Operand) -> u8 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:318:36 [INFO] [stdout] | [INFO] [stdout] 318 | fn do_asl(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 318 - fn do_asl(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stdout] 318 + fn do_asl(&mut self, mem: &mut dyn MemIO, opr: Operand) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:389:36 [INFO] [stdout] | [INFO] [stdout] 389 | fn do_brk(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 389 - fn do_brk(&mut self, mem: &mut MemIO) { [INFO] [stdout] 389 + fn do_brk(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:401:36 [INFO] [stdout] | [INFO] [stdout] 401 | fn do_irq(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 401 - fn do_irq(&mut self, mem: &mut MemIO) { [INFO] [stdout] 401 + fn do_irq(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:447:36 [INFO] [stdout] | [INFO] [stdout] 447 | fn do_dec(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 447 - fn do_dec(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] 447 + fn do_dec(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:471:36 [INFO] [stdout] | [INFO] [stdout] 471 | fn do_inc(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 471 - fn do_inc(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] 471 + fn do_inc(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:493:36 [INFO] [stdout] | [INFO] [stdout] 493 | fn do_jsr(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 493 - fn do_jsr(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] 493 + fn do_jsr(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:514:36 [INFO] [stdout] | [INFO] [stdout] 514 | fn do_lsr(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 514 - fn do_lsr(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stdout] 514 + fn do_lsr(&mut self, mem: &mut dyn MemIO, opr: Operand) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:535:36 [INFO] [stdout] | [INFO] [stdout] 535 | fn do_rol(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 535 - fn do_rol(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stdout] 535 + fn do_rol(&mut self, mem: &mut dyn MemIO, opr: Operand) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:553:36 [INFO] [stdout] | [INFO] [stdout] 553 | fn do_ror(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 553 - fn do_ror(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stdout] 553 + fn do_ror(&mut self, mem: &mut dyn MemIO, opr: Operand) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:573:36 [INFO] [stdout] | [INFO] [stdout] 573 | fn do_pha(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 573 - fn do_pha(&mut self, mem: &mut MemIO) { [INFO] [stdout] 573 + fn do_pha(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:578:36 [INFO] [stdout] | [INFO] [stdout] 578 | fn do_pla(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 578 - fn do_pla(&mut self, mem: &mut MemIO) { [INFO] [stdout] 578 + fn do_pla(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:584:36 [INFO] [stdout] | [INFO] [stdout] 584 | fn do_plp(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 584 - fn do_plp(&mut self, mem: &mut MemIO) { [INFO] [stdout] 584 + fn do_plp(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:588:36 [INFO] [stdout] | [INFO] [stdout] 588 | fn do_php(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 588 - fn do_php(&mut self, mem: &mut MemIO) { [INFO] [stdout] 588 + fn do_php(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:593:36 [INFO] [stdout] | [INFO] [stdout] 593 | fn do_rti(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 593 - fn do_rti(&mut self, mem: &mut MemIO) { [INFO] [stdout] 593 + fn do_rti(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:598:36 [INFO] [stdout] | [INFO] [stdout] 598 | fn do_rts(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 598 - fn do_rts(&mut self, mem: &mut MemIO) { [INFO] [stdout] 598 + fn do_rts(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:640:36 [INFO] [stdout] | [INFO] [stdout] 640 | fn do_sta(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 640 - fn do_sta(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] 640 + fn do_sta(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:645:36 [INFO] [stdout] | [INFO] [stdout] 645 | fn do_stx(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 645 - fn do_stx(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] 645 + fn do_stx(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:650:36 [INFO] [stdout] | [INFO] [stdout] 650 | fn do_sty(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 650 - fn do_sty(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] 650 + fn do_sty(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dasm.rs:4:31 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn disassemble_step(mem: &MemIO, mut ip: &mut u16) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 - pub fn disassemble_step(mem: &MemIO, mut ip: &mut u16) -> Result { [INFO] [stdout] 4 + pub fn disassemble_step(mem: &dyn MemIO, mut ip: &mut u16) -> Result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dasm.rs:13:27 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn parse_opcode(mem: &MemIO, ip: &mut u16) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 - pub fn parse_opcode(mem: &MemIO, ip: &mut u16) -> Result { [INFO] [stdout] 13 + pub fn parse_opcode(mem: &dyn MemIO, ip: &mut u16) -> Result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:27:25 [INFO] [stdout] | [INFO] [stdout] 27 | fn color_from_reg(mem: &VicIO, clr: u16) -> Color { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 27 - fn color_from_reg(mem: &VicIO, clr: u16) -> Color { [INFO] [stdout] 27 + fn color_from_reg(mem: &dyn VicIO, clr: u16) -> Color { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:75:38 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn init(&mut self, mem: &mut VicIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 75 - pub fn init(&mut self, mem: &mut VicIO) { [INFO] [stdout] 75 + pub fn init(&mut self, mem: &mut dyn VicIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:81:39 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn clock(&mut self, mem: &mut VicIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 81 - pub fn clock(&mut self, mem: &mut VicIO) { [INFO] [stdout] 81 + pub fn clock(&mut self, mem: &mut dyn VicIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:99:37 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn refresh(&mut self, mem: &VicIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 99 - pub fn refresh(&mut self, mem: &VicIO) { [INFO] [stdout] 99 + pub fn refresh(&mut self, mem: &dyn VicIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:128:35 [INFO] [stdout] | [INFO] [stdout] 128 | fn draw_text(&mut self, mem: &VicIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 128 - fn draw_text(&mut self, mem: &VicIO) { [INFO] [stdout] 128 + fn draw_text(&mut self, mem: &dyn VicIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:163:38 [INFO] [stdout] | [INFO] [stdout] 163 | fn draw_sprites(&mut self, mem: &VicIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 163 - fn draw_sprites(&mut self, mem: &VicIO) { [INFO] [stdout] 163 + fn draw_sprites(&mut self, mem: &dyn VicIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:185:37 [INFO] [stdout] | [INFO] [stdout] 185 | fn draw_bitmap(&mut self, mem: &VicIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 185 - fn draw_bitmap(&mut self, mem: &VicIO) { [INFO] [stdout] 185 + fn draw_bitmap(&mut self, mem: &dyn VicIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:218:84 [INFO] [stdout] | [INFO] [stdout] 218 | fn draw_sprite(&mut self, sprite_addr: u16, sprite_x: u16, sprite_y: u8, mem: &VicIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 218 - fn draw_sprite(&mut self, sprite_addr: u16, sprite_x: u16, sprite_y: u8, mem: &VicIO) { [INFO] [stdout] 218 + fn draw_sprite(&mut self, sprite_addr: u16, sprite_x: u16, sprite_y: u8, mem: &dyn VicIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:247:15 [INFO] [stdout] | [INFO] [stdout] 247 | mem: &VicIO, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 247 - mem: &VicIO, [INFO] [stdout] 247 + mem: &dyn VicIO, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:283:15 [INFO] [stdout] | [INFO] [stdout] 283 | mem: &VicIO, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 283 - mem: &VicIO, [INFO] [stdout] 283 + mem: &dyn VicIO, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `core::str::::trim_right`: superseded by `trim_end` [INFO] [stdout] --> src/emu.rs:131:36 [INFO] [stdout] | [INFO] [stdout] 131 | let mut iter = cmd.trim_right().split_whitespace(); [INFO] [stdout] | ^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/vic.rs:143:22 [INFO] [stdout] | [INFO] [stdout] 143 | let (mut char_rom_index, fg_color) = mem.vic_read_vm(char_index as u16); [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 63 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 18.99s [INFO] running `Command { std: "docker" "inspect" "7ded7a4a99bddcc6997d654084b6b6b3212f9ed22bf358f0db8757d8f3855ebf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7ded7a4a99bddcc6997d654084b6b6b3212f9ed22bf358f0db8757d8f3855ebf", kill_on_drop: false }` [INFO] [stdout] 7ded7a4a99bddcc6997d654084b6b6b3212f9ed22bf358f0db8757d8f3855ebf [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-55/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-55/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4ca9501f350fd81248c65a12c1bc57812c1ff7679cba3c384bc67d18de574104 [INFO] running `Command { std: "docker" "start" "-a" "4ca9501f350fd81248c65a12c1bc57812c1ff7679cba3c384bc67d18de574104", kill_on_drop: false }` [INFO] [stderr] Compiling retroc64 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/dasm.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | let s = try!(parse_opcode(mem, &mut ip)); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:62:19 [INFO] [stdout] | [INFO] [stdout] 62 | 0xD000...0xDFFF => self.io[addr as usize - 0xD000], [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:69:19 [INFO] [stdout] | [INFO] [stdout] 69 | 0xD000...0xDFFF => self.io[addr as usize - 0xD000] = val, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:83:19 [INFO] [stdout] | [INFO] [stdout] 83 | 0xDC00...0xDDFF => self.read_register(addr), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:90:19 [INFO] [stdout] | [INFO] [stdout] 90 | 0xDC00...0xDDFF => self.write_register(addr, val), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:108:19 [INFO] [stdout] | [INFO] [stdout] 108 | 0x1000...0x1FFF if (bank == 0) || (bank == 2) => self.rom[(addr + 0xC000) as usize], // Char ROM [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:132:19 [INFO] [stdout] | [INFO] [stdout] 132 | 0xD000...0xD02E => self.read_register(addr), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:139:19 [INFO] [stdout] | [INFO] [stdout] 139 | 0xD000...0xD02E => self.write_register(addr, val), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:170:19 [INFO] [stdout] | [INFO] [stdout] 170 | 0xA000...0xBFFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:177:19 [INFO] [stdout] | [INFO] [stdout] 177 | 0xD000...0xDFFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:184:19 [INFO] [stdout] | [INFO] [stdout] 184 | 0xE000...0xFFFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/memc64.rs:214:19 [INFO] [stdout] | [INFO] [stdout] 214 | 0xD000...0xDFFF => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:69:45 [INFO] [stdout] | [INFO] [stdout] 69 | pub fn trigger_irq(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 69 - pub fn trigger_irq(&mut self, mem: &mut MemIO) { [INFO] [stdout] 69 + pub fn trigger_irq(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:73:45 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn single_step(&mut self, mem: &mut MemIO, cycles: &mut u8) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 73 - pub fn single_step(&mut self, mem: &mut MemIO, cycles: &mut u8) -> Result { [INFO] [stdout] 73 + pub fn single_step(&mut self, mem: &mut dyn MemIO, cycles: &mut u8) -> Result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:160:39 [INFO] [stdout] | [INFO] [stdout] 160 | fn fetch_operand(&self, mem: &mut MemIO, opcode: &Opcode) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 160 - fn fetch_operand(&self, mem: &mut MemIO, opcode: &Opcode) -> Operand { [INFO] [stdout] 160 + fn fetch_operand(&self, mem: &mut dyn MemIO, opcode: &Opcode) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:182:39 [INFO] [stdout] | [INFO] [stdout] 182 | fn opr_immediate(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 182 - fn opr_immediate(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 182 + fn opr_immediate(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:186:38 [INFO] [stdout] | [INFO] [stdout] 186 | fn opr_absolute(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 186 - fn opr_absolute(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 186 + fn opr_absolute(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:190:40 [INFO] [stdout] | [INFO] [stdout] 190 | fn opr_absolute_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 190 - fn opr_absolute_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 190 + fn opr_absolute_x(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:194:40 [INFO] [stdout] | [INFO] [stdout] 194 | fn opr_absolute_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 194 - fn opr_absolute_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 194 + fn opr_absolute_y(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:198:38 [INFO] [stdout] | [INFO] [stdout] 198 | fn opr_zeropage(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 198 - fn opr_zeropage(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 198 + fn opr_zeropage(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:202:40 [INFO] [stdout] | [INFO] [stdout] 202 | fn opr_zeropage_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 202 - fn opr_zeropage_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 202 + fn opr_zeropage_x(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:206:40 [INFO] [stdout] | [INFO] [stdout] 206 | fn opr_zeropage_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 206 - fn opr_zeropage_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 206 + fn opr_zeropage_y(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:210:38 [INFO] [stdout] | [INFO] [stdout] 210 | fn opr_indirect(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 210 - fn opr_indirect(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 210 + fn opr_indirect(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:214:40 [INFO] [stdout] | [INFO] [stdout] 214 | fn opr_indirect_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 214 - fn opr_indirect_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 214 + fn opr_indirect_x(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:218:40 [INFO] [stdout] | [INFO] [stdout] 218 | fn opr_indirect_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 218 - fn opr_indirect_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 218 + fn opr_indirect_y(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:222:38 [INFO] [stdout] | [INFO] [stdout] 222 | fn opr_relative(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 222 - fn opr_relative(&self, mem: &mut MemIO) -> Operand { [INFO] [stdout] 222 + fn opr_relative(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:226:39 [INFO] [stdout] | [INFO] [stdout] 226 | fn push_byte(&mut self, mem: &mut MemIO, val: u8) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 226 - fn push_byte(&mut self, mem: &mut MemIO, val: u8) { [INFO] [stdout] 226 + fn push_byte(&mut self, mem: &mut dyn MemIO, val: u8) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:231:38 [INFO] [stdout] | [INFO] [stdout] 231 | fn pop_byte(&mut self, mem: &mut MemIO) -> u8 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 231 - fn pop_byte(&mut self, mem: &mut MemIO) -> u8 { [INFO] [stdout] 231 + fn pop_byte(&mut self, mem: &mut dyn MemIO) -> u8 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:236:39 [INFO] [stdout] | [INFO] [stdout] 236 | fn push_word(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 236 - fn push_word(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] 236 + fn push_word(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:243:38 [INFO] [stdout] | [INFO] [stdout] 243 | fn pop_word(&mut self, mem: &mut MemIO) -> u16 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 243 - fn pop_word(&mut self, mem: &mut MemIO) -> u16 { [INFO] [stdout] 243 + fn pop_word(&mut self, mem: &mut dyn MemIO) -> u16 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:249:40 [INFO] [stdout] | [INFO] [stdout] 249 | fn operand_source(&self, mem: &mut MemIO, operand: &Operand) -> u8 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 249 - fn operand_source(&self, mem: &mut MemIO, operand: &Operand) -> u8 { [INFO] [stdout] 249 + fn operand_source(&self, mem: &mut dyn MemIO, operand: &Operand) -> u8 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:318:36 [INFO] [stdout] | [INFO] [stdout] 318 | fn do_asl(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 318 - fn do_asl(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stdout] 318 + fn do_asl(&mut self, mem: &mut dyn MemIO, opr: Operand) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:389:36 [INFO] [stdout] | [INFO] [stdout] 389 | fn do_brk(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 389 - fn do_brk(&mut self, mem: &mut MemIO) { [INFO] [stdout] 389 + fn do_brk(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:401:36 [INFO] [stdout] | [INFO] [stdout] 401 | fn do_irq(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 401 - fn do_irq(&mut self, mem: &mut MemIO) { [INFO] [stdout] 401 + fn do_irq(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:447:36 [INFO] [stdout] | [INFO] [stdout] 447 | fn do_dec(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 447 - fn do_dec(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] 447 + fn do_dec(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:471:36 [INFO] [stdout] | [INFO] [stdout] 471 | fn do_inc(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 471 - fn do_inc(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] 471 + fn do_inc(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:493:36 [INFO] [stdout] | [INFO] [stdout] 493 | fn do_jsr(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 493 - fn do_jsr(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] 493 + fn do_jsr(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:514:36 [INFO] [stdout] | [INFO] [stdout] 514 | fn do_lsr(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 514 - fn do_lsr(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stdout] 514 + fn do_lsr(&mut self, mem: &mut dyn MemIO, opr: Operand) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:535:36 [INFO] [stdout] | [INFO] [stdout] 535 | fn do_rol(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 535 - fn do_rol(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stdout] 535 + fn do_rol(&mut self, mem: &mut dyn MemIO, opr: Operand) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:553:36 [INFO] [stdout] | [INFO] [stdout] 553 | fn do_ror(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 553 - fn do_ror(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stdout] 553 + fn do_ror(&mut self, mem: &mut dyn MemIO, opr: Operand) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:573:36 [INFO] [stdout] | [INFO] [stdout] 573 | fn do_pha(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 573 - fn do_pha(&mut self, mem: &mut MemIO) { [INFO] [stdout] 573 + fn do_pha(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:578:36 [INFO] [stdout] | [INFO] [stdout] 578 | fn do_pla(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 578 - fn do_pla(&mut self, mem: &mut MemIO) { [INFO] [stdout] 578 + fn do_pla(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:584:36 [INFO] [stdout] | [INFO] [stdout] 584 | fn do_plp(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 584 - fn do_plp(&mut self, mem: &mut MemIO) { [INFO] [stdout] 584 + fn do_plp(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:588:36 [INFO] [stdout] | [INFO] [stdout] 588 | fn do_php(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 588 - fn do_php(&mut self, mem: &mut MemIO) { [INFO] [stdout] 588 + fn do_php(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:593:36 [INFO] [stdout] | [INFO] [stdout] 593 | fn do_rti(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 593 - fn do_rti(&mut self, mem: &mut MemIO) { [INFO] [stdout] 593 + fn do_rti(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:598:36 [INFO] [stdout] | [INFO] [stdout] 598 | fn do_rts(&mut self, mem: &mut MemIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 598 - fn do_rts(&mut self, mem: &mut MemIO) { [INFO] [stdout] 598 + fn do_rts(&mut self, mem: &mut dyn MemIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:640:36 [INFO] [stdout] | [INFO] [stdout] 640 | fn do_sta(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 640 - fn do_sta(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] 640 + fn do_sta(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:645:36 [INFO] [stdout] | [INFO] [stdout] 645 | fn do_stx(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 645 - fn do_stx(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] 645 + fn do_stx(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/cpu.rs:650:36 [INFO] [stdout] | [INFO] [stdout] 650 | fn do_sty(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 650 - fn do_sty(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stdout] 650 + fn do_sty(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dasm.rs:4:31 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn disassemble_step(mem: &MemIO, mut ip: &mut u16) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 4 - pub fn disassemble_step(mem: &MemIO, mut ip: &mut u16) -> Result { [INFO] [stdout] 4 + pub fn disassemble_step(mem: &dyn MemIO, mut ip: &mut u16) -> Result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/dasm.rs:13:27 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn parse_opcode(mem: &MemIO, ip: &mut u16) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 - pub fn parse_opcode(mem: &MemIO, ip: &mut u16) -> Result { [INFO] [stdout] 13 + pub fn parse_opcode(mem: &dyn MemIO, ip: &mut u16) -> Result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:27:25 [INFO] [stdout] | [INFO] [stdout] 27 | fn color_from_reg(mem: &VicIO, clr: u16) -> Color { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 27 - fn color_from_reg(mem: &VicIO, clr: u16) -> Color { [INFO] [stdout] 27 + fn color_from_reg(mem: &dyn VicIO, clr: u16) -> Color { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:75:38 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn init(&mut self, mem: &mut VicIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 75 - pub fn init(&mut self, mem: &mut VicIO) { [INFO] [stdout] 75 + pub fn init(&mut self, mem: &mut dyn VicIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:81:39 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn clock(&mut self, mem: &mut VicIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 81 - pub fn clock(&mut self, mem: &mut VicIO) { [INFO] [stdout] 81 + pub fn clock(&mut self, mem: &mut dyn VicIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:99:37 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn refresh(&mut self, mem: &VicIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 99 - pub fn refresh(&mut self, mem: &VicIO) { [INFO] [stdout] 99 + pub fn refresh(&mut self, mem: &dyn VicIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:128:35 [INFO] [stdout] | [INFO] [stdout] 128 | fn draw_text(&mut self, mem: &VicIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 128 - fn draw_text(&mut self, mem: &VicIO) { [INFO] [stdout] 128 + fn draw_text(&mut self, mem: &dyn VicIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:163:38 [INFO] [stdout] | [INFO] [stdout] 163 | fn draw_sprites(&mut self, mem: &VicIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 163 - fn draw_sprites(&mut self, mem: &VicIO) { [INFO] [stdout] 163 + fn draw_sprites(&mut self, mem: &dyn VicIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:185:37 [INFO] [stdout] | [INFO] [stdout] 185 | fn draw_bitmap(&mut self, mem: &VicIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 185 - fn draw_bitmap(&mut self, mem: &VicIO) { [INFO] [stdout] 185 + fn draw_bitmap(&mut self, mem: &dyn VicIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:218:84 [INFO] [stdout] | [INFO] [stdout] 218 | fn draw_sprite(&mut self, sprite_addr: u16, sprite_x: u16, sprite_y: u8, mem: &VicIO) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 218 - fn draw_sprite(&mut self, sprite_addr: u16, sprite_x: u16, sprite_y: u8, mem: &VicIO) { [INFO] [stdout] 218 + fn draw_sprite(&mut self, sprite_addr: u16, sprite_x: u16, sprite_y: u8, mem: &dyn VicIO) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:247:15 [INFO] [stdout] | [INFO] [stdout] 247 | mem: &VicIO, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 247 - mem: &VicIO, [INFO] [stdout] 247 + mem: &dyn VicIO, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/vic.rs:283:15 [INFO] [stdout] | [INFO] [stdout] 283 | mem: &VicIO, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 283 - mem: &VicIO, [INFO] [stdout] 283 + mem: &dyn VicIO, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `core::str::::trim_right`: superseded by `trim_end` [INFO] [stdout] --> src/emu.rs:131:36 [INFO] [stdout] | [INFO] [stdout] 131 | let mut iter = cmd.trim_right().split_whitespace(); [INFO] [stdout] | ^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/vic.rs:143:22 [INFO] [stdout] | [INFO] [stdout] 143 | let (mut char_rom_index, fg_color) = mem.vic_read_vm(char_index as u16); [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 63 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 14.32s [INFO] [stderr] Executable unittests src/main.rs (/opt/rustwide/target/debug/deps/retroc64-bbe65511bee63fd1) [INFO] running `Command { std: "docker" "inspect" "4ca9501f350fd81248c65a12c1bc57812c1ff7679cba3c384bc67d18de574104", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4ca9501f350fd81248c65a12c1bc57812c1ff7679cba3c384bc67d18de574104", kill_on_drop: false }` [INFO] [stdout] 4ca9501f350fd81248c65a12c1bc57812c1ff7679cba3c384bc67d18de574104 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-55/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-55/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 0474cba3b1f147c866c3409c895b0e74fa5b6ed240496b32f3f4e1aed660a5e0 [INFO] running `Command { std: "docker" "start" "-a" "0474cba3b1f147c866c3409c895b0e74fa5b6ed240496b32f3f4e1aed660a5e0", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/dasm.rs:7:13 [INFO] [stderr] | [INFO] [stderr] 7 | let s = try!(parse_opcode(mem, &mut ip)); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/memc64.rs:62:19 [INFO] [stderr] | [INFO] [stderr] 62 | 0xD000...0xDFFF => self.io[addr as usize - 0xD000], [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/memc64.rs:69:19 [INFO] [stderr] | [INFO] [stderr] 69 | 0xD000...0xDFFF => self.io[addr as usize - 0xD000] = val, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/memc64.rs:83:19 [INFO] [stderr] | [INFO] [stderr] 83 | 0xDC00...0xDDFF => self.read_register(addr), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/memc64.rs:90:19 [INFO] [stderr] | [INFO] [stderr] 90 | 0xDC00...0xDDFF => self.write_register(addr, val), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/memc64.rs:108:19 [INFO] [stderr] | [INFO] [stderr] 108 | 0x1000...0x1FFF if (bank == 0) || (bank == 2) => self.rom[(addr + 0xC000) as usize], // Char ROM [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/memc64.rs:132:19 [INFO] [stderr] | [INFO] [stderr] 132 | 0xD000...0xD02E => self.read_register(addr), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/memc64.rs:139:19 [INFO] [stderr] | [INFO] [stderr] 139 | 0xD000...0xD02E => self.write_register(addr, val), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/memc64.rs:170:19 [INFO] [stderr] | [INFO] [stderr] 170 | 0xA000...0xBFFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/memc64.rs:177:19 [INFO] [stderr] | [INFO] [stderr] 177 | 0xD000...0xDFFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/memc64.rs:184:19 [INFO] [stderr] | [INFO] [stderr] 184 | 0xE000...0xFFFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/memc64.rs:214:19 [INFO] [stderr] | [INFO] [stderr] 214 | 0xD000...0xDFFF => { [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:69:45 [INFO] [stderr] | [INFO] [stderr] 69 | pub fn trigger_irq(&mut self, mem: &mut MemIO) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 69 - pub fn trigger_irq(&mut self, mem: &mut MemIO) { [INFO] [stderr] 69 + pub fn trigger_irq(&mut self, mem: &mut dyn MemIO) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:73:45 [INFO] [stderr] | [INFO] [stderr] 73 | pub fn single_step(&mut self, mem: &mut MemIO, cycles: &mut u8) -> Result { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 73 - pub fn single_step(&mut self, mem: &mut MemIO, cycles: &mut u8) -> Result { [INFO] [stderr] 73 + pub fn single_step(&mut self, mem: &mut dyn MemIO, cycles: &mut u8) -> Result { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:160:39 [INFO] [stderr] | [INFO] [stderr] 160 | fn fetch_operand(&self, mem: &mut MemIO, opcode: &Opcode) -> Operand { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 160 - fn fetch_operand(&self, mem: &mut MemIO, opcode: &Opcode) -> Operand { [INFO] [stderr] 160 + fn fetch_operand(&self, mem: &mut dyn MemIO, opcode: &Opcode) -> Operand { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:182:39 [INFO] [stderr] | [INFO] [stderr] 182 | fn opr_immediate(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 182 - fn opr_immediate(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] 182 + fn opr_immediate(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:186:38 [INFO] [stderr] | [INFO] [stderr] 186 | fn opr_absolute(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 186 - fn opr_absolute(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] 186 + fn opr_absolute(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:190:40 [INFO] [stderr] | [INFO] [stderr] 190 | fn opr_absolute_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 190 - fn opr_absolute_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] 190 + fn opr_absolute_x(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:194:40 [INFO] [stderr] | [INFO] [stderr] 194 | fn opr_absolute_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 194 - fn opr_absolute_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] 194 + fn opr_absolute_y(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:198:38 [INFO] [stderr] | [INFO] [stderr] 198 | fn opr_zeropage(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 198 - fn opr_zeropage(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] 198 + fn opr_zeropage(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:202:40 [INFO] [stderr] | [INFO] [stderr] 202 | fn opr_zeropage_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 202 - fn opr_zeropage_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] 202 + fn opr_zeropage_x(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:206:40 [INFO] [stderr] | [INFO] [stderr] 206 | fn opr_zeropage_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 206 - fn opr_zeropage_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] 206 + fn opr_zeropage_y(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:210:38 [INFO] [stderr] | [INFO] [stderr] 210 | fn opr_indirect(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 210 - fn opr_indirect(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] 210 + fn opr_indirect(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:214:40 [INFO] [stderr] | [INFO] [stderr] 214 | fn opr_indirect_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 214 - fn opr_indirect_x(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] 214 + fn opr_indirect_x(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:218:40 [INFO] [stderr] | [INFO] [stderr] 218 | fn opr_indirect_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 218 - fn opr_indirect_y(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] 218 + fn opr_indirect_y(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:222:38 [INFO] [stderr] | [INFO] [stderr] 222 | fn opr_relative(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 222 - fn opr_relative(&self, mem: &mut MemIO) -> Operand { [INFO] [stderr] 222 + fn opr_relative(&self, mem: &mut dyn MemIO) -> Operand { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:226:39 [INFO] [stderr] | [INFO] [stderr] 226 | fn push_byte(&mut self, mem: &mut MemIO, val: u8) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 226 - fn push_byte(&mut self, mem: &mut MemIO, val: u8) { [INFO] [stderr] 226 + fn push_byte(&mut self, mem: &mut dyn MemIO, val: u8) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:231:38 [INFO] [stderr] | [INFO] [stderr] 231 | fn pop_byte(&mut self, mem: &mut MemIO) -> u8 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 231 - fn pop_byte(&mut self, mem: &mut MemIO) -> u8 { [INFO] [stderr] 231 + fn pop_byte(&mut self, mem: &mut dyn MemIO) -> u8 { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:236:39 [INFO] [stderr] | [INFO] [stderr] 236 | fn push_word(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 236 - fn push_word(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stderr] 236 + fn push_word(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:243:38 [INFO] [stderr] | [INFO] [stderr] 243 | fn pop_word(&mut self, mem: &mut MemIO) -> u16 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 243 - fn pop_word(&mut self, mem: &mut MemIO) -> u16 { [INFO] [stderr] 243 + fn pop_word(&mut self, mem: &mut dyn MemIO) -> u16 { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:249:40 [INFO] [stderr] | [INFO] [stderr] 249 | fn operand_source(&self, mem: &mut MemIO, operand: &Operand) -> u8 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 249 - fn operand_source(&self, mem: &mut MemIO, operand: &Operand) -> u8 { [INFO] [stderr] 249 + fn operand_source(&self, mem: &mut dyn MemIO, operand: &Operand) -> u8 { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:318:36 [INFO] [stderr] | [INFO] [stderr] 318 | fn do_asl(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 318 - fn do_asl(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stderr] 318 + fn do_asl(&mut self, mem: &mut dyn MemIO, opr: Operand) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:389:36 [INFO] [stderr] | [INFO] [stderr] 389 | fn do_brk(&mut self, mem: &mut MemIO) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 389 - fn do_brk(&mut self, mem: &mut MemIO) { [INFO] [stderr] 389 + fn do_brk(&mut self, mem: &mut dyn MemIO) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:401:36 [INFO] [stderr] | [INFO] [stderr] 401 | fn do_irq(&mut self, mem: &mut MemIO) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 401 - fn do_irq(&mut self, mem: &mut MemIO) { [INFO] [stderr] 401 + fn do_irq(&mut self, mem: &mut dyn MemIO) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:447:36 [INFO] [stderr] | [INFO] [stderr] 447 | fn do_dec(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 447 - fn do_dec(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stderr] 447 + fn do_dec(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:471:36 [INFO] [stderr] | [INFO] [stderr] 471 | fn do_inc(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 471 - fn do_inc(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stderr] 471 + fn do_inc(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:493:36 [INFO] [stderr] | [INFO] [stderr] 493 | fn do_jsr(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 493 - fn do_jsr(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stderr] 493 + fn do_jsr(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:514:36 [INFO] [stderr] | [INFO] [stderr] 514 | fn do_lsr(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 514 - fn do_lsr(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stderr] 514 + fn do_lsr(&mut self, mem: &mut dyn MemIO, opr: Operand) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:535:36 [INFO] [stderr] | [INFO] [stderr] 535 | fn do_rol(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 535 - fn do_rol(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stderr] 535 + fn do_rol(&mut self, mem: &mut dyn MemIO, opr: Operand) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:553:36 [INFO] [stderr] | [INFO] [stderr] 553 | fn do_ror(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 553 - fn do_ror(&mut self, mem: &mut MemIO, opr: Operand) { [INFO] [stderr] 553 + fn do_ror(&mut self, mem: &mut dyn MemIO, opr: Operand) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:573:36 [INFO] [stderr] | [INFO] [stderr] 573 | fn do_pha(&mut self, mem: &mut MemIO) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 573 - fn do_pha(&mut self, mem: &mut MemIO) { [INFO] [stderr] 573 + fn do_pha(&mut self, mem: &mut dyn MemIO) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:578:36 [INFO] [stderr] | [INFO] [stderr] 578 | fn do_pla(&mut self, mem: &mut MemIO) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 578 - fn do_pla(&mut self, mem: &mut MemIO) { [INFO] [stderr] 578 + fn do_pla(&mut self, mem: &mut dyn MemIO) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:584:36 [INFO] [stderr] | [INFO] [stderr] 584 | fn do_plp(&mut self, mem: &mut MemIO) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 584 - fn do_plp(&mut self, mem: &mut MemIO) { [INFO] [stderr] 584 + fn do_plp(&mut self, mem: &mut dyn MemIO) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:588:36 [INFO] [stderr] | [INFO] [stderr] 588 | fn do_php(&mut self, mem: &mut MemIO) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 588 - fn do_php(&mut self, mem: &mut MemIO) { [INFO] [stderr] 588 + fn do_php(&mut self, mem: &mut dyn MemIO) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:593:36 [INFO] [stderr] | [INFO] [stderr] 593 | fn do_rti(&mut self, mem: &mut MemIO) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 593 - fn do_rti(&mut self, mem: &mut MemIO) { [INFO] [stderr] 593 + fn do_rti(&mut self, mem: &mut dyn MemIO) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:598:36 [INFO] [stderr] | [INFO] [stderr] 598 | fn do_rts(&mut self, mem: &mut MemIO) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 598 - fn do_rts(&mut self, mem: &mut MemIO) { [INFO] [stderr] 598 + fn do_rts(&mut self, mem: &mut dyn MemIO) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:640:36 [INFO] [stderr] | [INFO] [stderr] 640 | fn do_sta(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 640 - fn do_sta(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stderr] 640 + fn do_sta(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:645:36 [INFO] [stderr] | [INFO] [stderr] 645 | fn do_stx(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 645 - fn do_stx(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stderr] 645 + fn do_stx(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/cpu.rs:650:36 [INFO] [stderr] | [INFO] [stderr] 650 | fn do_sty(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 650 - fn do_sty(&mut self, mem: &mut MemIO, addr: u16) { [INFO] [stderr] 650 + fn do_sty(&mut self, mem: &mut dyn MemIO, addr: u16) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/dasm.rs:4:31 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn disassemble_step(mem: &MemIO, mut ip: &mut u16) -> Result { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 4 - pub fn disassemble_step(mem: &MemIO, mut ip: &mut u16) -> Result { [INFO] [stderr] 4 + pub fn disassemble_step(mem: &dyn MemIO, mut ip: &mut u16) -> Result { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/dasm.rs:13:27 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn parse_opcode(mem: &MemIO, ip: &mut u16) -> Result { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 13 - pub fn parse_opcode(mem: &MemIO, ip: &mut u16) -> Result { [INFO] [stderr] 13 + pub fn parse_opcode(mem: &dyn MemIO, ip: &mut u16) -> Result { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/vic.rs:27:25 [INFO] [stderr] | [INFO] [stderr] 27 | fn color_from_reg(mem: &VicIO, clr: u16) -> Color { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 27 - fn color_from_reg(mem: &VicIO, clr: u16) -> Color { [INFO] [stderr] 27 + fn color_from_reg(mem: &dyn VicIO, clr: u16) -> Color { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/vic.rs:75:38 [INFO] [stderr] | [INFO] [stderr] 75 | pub fn init(&mut self, mem: &mut VicIO) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 75 - pub fn init(&mut self, mem: &mut VicIO) { [INFO] [stderr] 75 + pub fn init(&mut self, mem: &mut dyn VicIO) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/vic.rs:81:39 [INFO] [stderr] | [INFO] [stderr] 81 | pub fn clock(&mut self, mem: &mut VicIO) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 81 - pub fn clock(&mut self, mem: &mut VicIO) { [INFO] [stderr] 81 + pub fn clock(&mut self, mem: &mut dyn VicIO) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/vic.rs:99:37 [INFO] [stderr] | [INFO] [stderr] 99 | pub fn refresh(&mut self, mem: &VicIO) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 99 - pub fn refresh(&mut self, mem: &VicIO) { [INFO] [stderr] 99 + pub fn refresh(&mut self, mem: &dyn VicIO) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/vic.rs:128:35 [INFO] [stderr] | [INFO] [stderr] 128 | fn draw_text(&mut self, mem: &VicIO) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 128 - fn draw_text(&mut self, mem: &VicIO) { [INFO] [stderr] 128 + fn draw_text(&mut self, mem: &dyn VicIO) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/vic.rs:163:38 [INFO] [stderr] | [INFO] [stderr] 163 | fn draw_sprites(&mut self, mem: &VicIO) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 163 - fn draw_sprites(&mut self, mem: &VicIO) { [INFO] [stderr] 163 + fn draw_sprites(&mut self, mem: &dyn VicIO) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/vic.rs:185:37 [INFO] [stderr] | [INFO] [stderr] 185 | fn draw_bitmap(&mut self, mem: &VicIO) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 185 - fn draw_bitmap(&mut self, mem: &VicIO) { [INFO] [stderr] 185 + fn draw_bitmap(&mut self, mem: &dyn VicIO) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/vic.rs:218:84 [INFO] [stderr] | [INFO] [stderr] 218 | fn draw_sprite(&mut self, sprite_addr: u16, sprite_x: u16, sprite_y: u8, mem: &VicIO) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 218 - fn draw_sprite(&mut self, sprite_addr: u16, sprite_x: u16, sprite_y: u8, mem: &VicIO) { [INFO] [stderr] 218 + fn draw_sprite(&mut self, sprite_addr: u16, sprite_x: u16, sprite_y: u8, mem: &dyn VicIO) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/vic.rs:247:15 [INFO] [stderr] | [INFO] [stderr] 247 | mem: &VicIO, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 247 - mem: &VicIO, [INFO] [stderr] 247 + mem: &dyn VicIO, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/vic.rs:283:15 [INFO] [stderr] | [INFO] [stderr] 283 | mem: &VicIO, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 283 - mem: &VicIO, [INFO] [stderr] 283 + mem: &dyn VicIO, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `core::str::::trim_right`: superseded by `trim_end` [INFO] [stderr] --> src/emu.rs:131:36 [INFO] [stderr] | [INFO] [stderr] 131 | let mut iter = cmd.trim_right().split_whitespace(); [INFO] [stderr] | ^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/vic.rs:143:22 [INFO] [stderr] | [INFO] [stderr] 143 | let (mut char_rom_index, fg_color) = mem.vic_read_vm(char_index as u16); [INFO] [stderr] | ----^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `retroc64` (bin "retroc64" test) generated 63 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 1.56s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/retroc64-bbe65511bee63fd1) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "0474cba3b1f147c866c3409c895b0e74fa5b6ed240496b32f3f4e1aed660a5e0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0474cba3b1f147c866c3409c895b0e74fa5b6ed240496b32f3f4e1aed660a5e0", kill_on_drop: false }` [INFO] [stdout] 0474cba3b1f147c866c3409c895b0e74fa5b6ed240496b32f3f4e1aed660a5e0