[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 1.75.0 for beta-1.76-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fseasalim%2Fretroc64" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/seasalim/retroc64 on toolchain 1.75.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "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-5-tc1/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: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded regex-syntax v0.6.0
[INFO] [stderr]   Downloaded sdl2 v0.20.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d53915d3253ab10ae1f04cab8d5aff90add33315cb166cf2f5d08616cc8f35bd
[INFO] running `Command { std: "docker" "start" "-a" "d53915d3253ab10ae1f04cab8d5aff90add33315cb166cf2f5d08616cc8f35bd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d53915d3253ab10ae1f04cab8d5aff90add33315cb166cf2f5d08616cc8f35bd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d53915d3253ab10ae1f04cab8d5aff90add33315cb166cf2f5d08616cc8f35bd", kill_on_drop: false }`
[INFO] [stdout] d53915d3253ab10ae1f04cab8d5aff90add33315cb166cf2f5d08616cc8f35bd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ac3f2dc9b7623f3c85c5e3b0a930d4441a8518b0efd03e36b4d8bf68f45aa97f
[INFO] running `Command { std: "docker" "start" "-a" "ac3f2dc9b7623f3c85c5e3b0a930d4441a8518b0efd03e36b4d8bf68f45aa97f", 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 num-iter v0.1.37
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling sdl2-sys v0.19.0
[INFO] [stderr]    Compiling regex v1.0.0
[INFO] [stderr]    Compiling lazy_static v1.0.1
[INFO] [stderr]    Compiling ucd-util v0.1.1
[INFO] [stderr]    Compiling cfg-if v0.1.3
[INFO] [stderr]    Compiling unicode-width v0.1.5
[INFO] [stderr]    Compiling utf8-ranges v1.0.0
[INFO] [stderr]    Compiling quick-error v1.2.2
[INFO] [stderr]    Compiling bitflags v0.6.0
[INFO] [stderr]    Compiling strsim v0.7.0
[INFO] [stderr]    Compiling unreachable v1.0.0
[INFO] [stderr]    Compiling log v0.4.2
[INFO] [stderr]    Compiling textwrap v0.9.0
[INFO] [stderr]    Compiling humantime v1.1.1
[INFO] [stderr]    Compiling termcolor v0.3.6
[INFO] [stderr]    Compiling lazy_static v0.2.11
[INFO] [stderr]    Compiling thread_local v0.3.5
[INFO] [stderr]    Compiling regex-syntax v0.6.0
[INFO] [stderr]    Compiling vec_map v0.8.1
[INFO] [stderr]    Compiling bitflags v1.0.3
[INFO] [stderr]    Compiling ansi_term v0.11.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 clap v2.31.2
[INFO] [stderr]    Compiling aho-corasick v0.6.4
[INFO] [stderr]    Compiling rand v0.3.22
[INFO] [stderr]    Compiling num-bigint v0.1.44
[INFO] [stderr]    Compiling num-complex v0.1.43
[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 env_logger v0.5.10
[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]    = 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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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]    = 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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[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<bool, String> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn single_step(&mut self, mem: &mut dyn MemIO, cycles: &mut u8) -> Result<bool, String> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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<String, String> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn disassemble_step(mem: &dyn MemIO, mut ip: &mut u16) -> Result<String, String> {
[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<String, String> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn parse_opcode(mem: &dyn MemIO, ip: &mut u16) -> Result<String, String> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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: &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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 283 |         mem: &dyn VicIO,
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl 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]     |                                    ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 let mut iter = cmd.trim_end().split_whitespace();
[INFO] [stdout]     |                                    ~~~~~~~~
[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 3.79s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.24
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "ac3f2dc9b7623f3c85c5e3b0a930d4441a8518b0efd03e36b4d8bf68f45aa97f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ac3f2dc9b7623f3c85c5e3b0a930d4441a8518b0efd03e36b4d8bf68f45aa97f", kill_on_drop: false }`
[INFO] [stdout] ac3f2dc9b7623f3c85c5e3b0a930d4441a8518b0efd03e36b4d8bf68f45aa97f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7b7db1d261d13d21cf780888fb67a672a7231b293dd3a1945a36f8d0c9918bbe
[INFO] running `Command { std: "docker" "start" "-a" "7b7db1d261d13d21cf780888fb67a672a7231b293dd3a1945a36f8d0c9918bbe", 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]    = 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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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]    = 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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[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<bool, String> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn single_step(&mut self, mem: &mut dyn MemIO, cycles: &mut u8) -> Result<bool, String> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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<String, String> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn disassemble_step(mem: &dyn MemIO, mut ip: &mut u16) -> Result<String, String> {
[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<String, String> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn parse_opcode(mem: &dyn MemIO, ip: &mut u16) -> Result<String, String> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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: &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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 283 |         mem: &dyn VicIO,
[INFO] [stdout]     |               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl 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]     |                                    ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 let mut iter = cmd.trim_end().split_whitespace();
[INFO] [stdout]     |                                    ~~~~~~~~
[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 0.36s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.24
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "7b7db1d261d13d21cf780888fb67a672a7231b293dd3a1945a36f8d0c9918bbe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7b7db1d261d13d21cf780888fb67a672a7231b293dd3a1945a36f8d0c9918bbe", kill_on_drop: false }`
[INFO] [stdout] 7b7db1d261d13d21cf780888fb67a672a7231b293dd3a1945a36f8d0c9918bbe
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 0d0138f5e902b0830a54a68950d20dca49ae12bc148f913f7fcea922f898722f
[INFO] running `Command { std: "docker" "start" "-a" "0d0138f5e902b0830a54a68950d20dca49ae12bc148f913f7fcea922f898722f", kill_on_drop: false }`
[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]    = 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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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]    = 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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[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<bool, String> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 73 |     pub fn single_step(&mut self, mem: &mut dyn MemIO, cycles: &mut u8) -> Result<bool, String> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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<String, String> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn disassemble_step(mem: &dyn MemIO, mut ip: &mut u16) -> Result<String, String> {
[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<String, String> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub fn parse_opcode(mem: &dyn MemIO, ip: &mut u16) -> Result<String, String> {
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]    |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[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: &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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[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 <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 283 |         mem: &dyn VicIO,
[INFO] [stderr]     |               +++
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `core::str::<impl 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]     |                                    ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]     |
[INFO] [stderr] 131 |                 let mut iter = cmd.trim_end().split_whitespace();
[INFO] [stderr]     |                                    ~~~~~~~~
[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 (run `cargo fix --bin "retroc64" --tests` to apply 62 suggestions)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rustc-serialize v0.3.24
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/retroc64-7b46c86c4686b5de)
[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" "0d0138f5e902b0830a54a68950d20dca49ae12bc148f913f7fcea922f898722f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0d0138f5e902b0830a54a68950d20dca49ae12bc148f913f7fcea922f898722f", kill_on_drop: false }`
[INFO] [stdout] 0d0138f5e902b0830a54a68950d20dca49ae12bc148f913f7fcea922f898722f
