[INFO] cloning repository https://github.com/Tsallanmaa/chit8
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Tsallanmaa/chit8" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTsallanmaa%2Fchit8", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTsallanmaa%2Fchit8'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5d7a5fc660ae95b8a883a11f7d6c0eb432aaa38b
[INFO] testing Tsallanmaa/chit8 against 1.47.0 for beta-1.48-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTsallanmaa%2Fchit8" "/workspace/builds/worker-13/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-13/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Tsallanmaa/chit8 on toolchain 1.47.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Tsallanmaa/chit8
[INFO] finished tweaking git repo https://github.com/Tsallanmaa/chit8
[INFO] tweaked toml for git repo https://github.com/Tsallanmaa/chit8 written to /workspace/builds/worker-13/source/Cargo.toml
[INFO] crate git repo https://github.com/Tsallanmaa/chit8 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr] error: the lock file /workspace/builds/worker-13/source/Cargo.lock needs to be updated but --locked was passed to prevent this
[INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag.
[INFO] the lockfile is outdated, regenerating it
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3b7e6b4928a736571b187d53bd765ed20f6b9f7b2139e521f60161c91a425317
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "3b7e6b4928a736571b187d53bd765ed20f6b9f7b2139e521f60161c91a425317", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3b7e6b4928a736571b187d53bd765ed20f6b9f7b2139e521f60161c91a425317", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3b7e6b4928a736571b187d53bd765ed20f6b9f7b2139e521f60161c91a425317", kill_on_drop: false }`
[INFO] [stdout] 3b7e6b4928a736571b187d53bd765ed20f6b9f7b2139e521f60161c91a425317
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bccb08daf59f00e4bf6ea8cb6200f8358d0b0249030b89913dd760d6e7134d2c
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "bccb08daf59f00e4bf6ea8cb6200f8358d0b0249030b89913dd760d6e7134d2c", kill_on_drop: false }`
[INFO] [stderr]    Compiling rand v0.3.23
[INFO] [stderr]    Compiling chit8 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 418 |         try!(write!(f, "CHIP8 CPU @ 0x{:0>4X}\r\n", self.pc));
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:419:9
[INFO] [stdout]     |
[INFO] [stdout] 419 |         try!(write!(f, "V0: {:X}, V1: {:X}, V2: {:X}, V3: {:X}\r\n", self.v[0], self.v[1], self.v[2], self.v[3]));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:420:9
[INFO] [stdout]     |
[INFO] [stdout] 420 |         try!(write!(f, "V4: {:X}, V5: {:X}, V6: {:X}, V7: {:X}\r\n", self.v[4], self.v[5], self.v[6], self.v[7]));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:421:9
[INFO] [stdout]     |
[INFO] [stdout] 421 |         try!(write!(f, "V8: {:X}, V9: {:X}, VA: {:X}, VB: {:X}\r\n", self.v[8], self.v[9], self.v[0xA], self.v[0xB]));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:422:9
[INFO] [stdout]     |
[INFO] [stdout] 422 |         try!(write!(f, "VC: {:X}, VD: {:X}, VE: {:X}, VF: {:X}\r\n", self.v[0xC], self.v[0xD], self.v[0xE], self.v[0xF]));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:424:9
[INFO] [stdout]     |
[INFO] [stdout] 424 |         try!(write!(f, "\r\nSTACK:\r\n"));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:428:10
[INFO] [stdout]     |
[INFO] [stdout] 428 |             try!(write!(f, ">> {}: 0x{:0>4X}\r\n", i, item));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:431:9
[INFO] [stdout]     |
[INFO] [stdout] 431 |         try!(write!(f, "\r\nI: {:X}", self.i));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:432:9
[INFO] [stdout]     |
[INFO] [stdout] 432 |         try!(write!(f, "\r\nST: {:X}", self.st));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/disassembler.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub ram: &'a mut Memory
[INFO] [stdout]    |                      ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:18:16
[INFO] [stdout]     |
[INFO] [stdout] 18  |             op @ 0x0000 ... 0x0FFF => { $this.sys(op & 0xFFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:19:16
[INFO] [stdout]     |
[INFO] [stdout] 19  |             op @ 0x1000 ... 0x1FFF => { $this.jp(op & 0x0FFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:20:16
[INFO] [stdout]     |
[INFO] [stdout] 20  |             op @ 0x2000 ... 0x2FFF => { $this.call(op & 0x0FFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:21:16
[INFO] [stdout]     |
[INFO] [stdout] 21  |             op @ 0x3000 ... 0x3FFF => { $this.se(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:22:16
[INFO] [stdout]     |
[INFO] [stdout] 22  |             op @ 0x4000 ... 0x4FFF => { $this.sne(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:23:16
[INFO] [stdout]     |
[INFO] [stdout] 23  |             op @ 0x5000 ... 0x5FFF => { $this.se_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:24:16
[INFO] [stdout]     |
[INFO] [stdout] 24  |             op @ 0x6000 ... 0x6FFF => { $this.ldx(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:25:16
[INFO] [stdout]     |
[INFO] [stdout] 25  |             op @ 0x7000 ... 0x7FFF => { $this.add_byte(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:26:16
[INFO] [stdout]     |
[INFO] [stdout] 26  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x0 => { $this.ld(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:27:16
[INFO] [stdout]     |
[INFO] [stdout] 27  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x1 => { $this.or(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:28:16
[INFO] [stdout]     |
[INFO] [stdout] 28  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x2 => { $this.and(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:29:16
[INFO] [stdout]     |
[INFO] [stdout] 29  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x3 => { $this.xor(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:30:16
[INFO] [stdout]     |
[INFO] [stdout] 30  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x4 => { $this.add_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:31:16
[INFO] [stdout]     |
[INFO] [stdout] 31  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x5 => { $this.sub(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:32:16
[INFO] [stdout]     |
[INFO] [stdout] 32  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x6 => { $this.shr(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:33:16
[INFO] [stdout]     |
[INFO] [stdout] 33  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x7 => { $this.subn(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:34:16
[INFO] [stdout]     |
[INFO] [stdout] 34  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0xE => { $this.shl(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:35:16
[INFO] [stdout]     |
[INFO] [stdout] 35  |             op @ 0x9000 ... 0x9FFF if (op & 0x000F) == 0x0 => { $this.sne_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:36:16
[INFO] [stdout]     |
[INFO] [stdout] 36  |             op @ 0xA000 ... 0xAFFF => { $this.ldi(op & 0x0FFF)},
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:37:16
[INFO] [stdout]     |
[INFO] [stdout] 37  |             op @ 0xB000 ... 0xBFFF => { $this.jp_v0(op & 0x0FFF)},
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:38:16
[INFO] [stdout]     |
[INFO] [stdout] 38  |             op @ 0xC000 ... 0xCFFF => { $this.rnd(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:39:16
[INFO] [stdout]     |
[INFO] [stdout] 39  |             op @ 0xD000 ... 0xDFFF => { $this.drw(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8, (op & 0x000F) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:40:16
[INFO] [stdout]     |
[INFO] [stdout] 40  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0x9E => { $this.skp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:41:16
[INFO] [stdout]     |
[INFO] [stdout] 41  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0xA1 => { $this.sknp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:42:16
[INFO] [stdout]     |
[INFO] [stdout] 42  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x07 => { $this.ld_dt_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:43:16
[INFO] [stdout]     |
[INFO] [stdout] 43  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x0A => { $this.ld_k_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:44:16
[INFO] [stdout]     |
[INFO] [stdout] 44  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x15 => { $this.ld_vx_into_dt(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:45:16
[INFO] [stdout]     |
[INFO] [stdout] 45  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x18 => { $this.ld_vx_into_st(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:46:16
[INFO] [stdout]     |
[INFO] [stdout] 46  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x1E => { $this.add_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:47:16
[INFO] [stdout]     |
[INFO] [stdout] 47  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x29 => { $this.ld_vx_digit_into_f(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:48:16
[INFO] [stdout]     |
[INFO] [stdout] 48  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x33 => { $this.ld_vx_into_bcd(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:49:16
[INFO] [stdout]     |
[INFO] [stdout] 49  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x55 => { $this.ld_v0_to_vx_into_i(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:50:16
[INFO] [stdout]     |
[INFO] [stdout] 50  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x65 => { $this.ld_i_into_v0_to_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rom.rs:22:28
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new(readable: &mut Read, filename: String) -> Result<Rom, io::Error>
[INFO] [stdout]    |                               ^^^^ help: use `dyn`: `dyn Read`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cpu.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 |     ram: &'a mut Memory,
[INFO] [stdout]    |                  ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:18:16
[INFO] [stdout]     |
[INFO] [stdout] 18  |             op @ 0x0000 ... 0x0FFF => { $this.sys(op & 0xFFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:19:16
[INFO] [stdout]     |
[INFO] [stdout] 19  |             op @ 0x1000 ... 0x1FFF => { $this.jp(op & 0x0FFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:20:16
[INFO] [stdout]     |
[INFO] [stdout] 20  |             op @ 0x2000 ... 0x2FFF => { $this.call(op & 0x0FFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:21:16
[INFO] [stdout]     |
[INFO] [stdout] 21  |             op @ 0x3000 ... 0x3FFF => { $this.se(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:22:16
[INFO] [stdout]     |
[INFO] [stdout] 22  |             op @ 0x4000 ... 0x4FFF => { $this.sne(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:23:16
[INFO] [stdout]     |
[INFO] [stdout] 23  |             op @ 0x5000 ... 0x5FFF => { $this.se_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:24:16
[INFO] [stdout]     |
[INFO] [stdout] 24  |             op @ 0x6000 ... 0x6FFF => { $this.ldx(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:25:16
[INFO] [stdout]     |
[INFO] [stdout] 25  |             op @ 0x7000 ... 0x7FFF => { $this.add_byte(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:26:16
[INFO] [stdout]     |
[INFO] [stdout] 26  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x0 => { $this.ld(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:27:16
[INFO] [stdout]     |
[INFO] [stdout] 27  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x1 => { $this.or(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:28:16
[INFO] [stdout]     |
[INFO] [stdout] 28  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x2 => { $this.and(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:29:16
[INFO] [stdout]     |
[INFO] [stdout] 29  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x3 => { $this.xor(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:30:16
[INFO] [stdout]     |
[INFO] [stdout] 30  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x4 => { $this.add_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:31:16
[INFO] [stdout]     |
[INFO] [stdout] 31  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x5 => { $this.sub(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:32:16
[INFO] [stdout]     |
[INFO] [stdout] 32  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x6 => { $this.shr(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:33:16
[INFO] [stdout]     |
[INFO] [stdout] 33  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x7 => { $this.subn(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:34:16
[INFO] [stdout]     |
[INFO] [stdout] 34  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0xE => { $this.shl(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:35:16
[INFO] [stdout]     |
[INFO] [stdout] 35  |             op @ 0x9000 ... 0x9FFF if (op & 0x000F) == 0x0 => { $this.sne_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:36:16
[INFO] [stdout]     |
[INFO] [stdout] 36  |             op @ 0xA000 ... 0xAFFF => { $this.ldi(op & 0x0FFF)},
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:37:16
[INFO] [stdout]     |
[INFO] [stdout] 37  |             op @ 0xB000 ... 0xBFFF => { $this.jp_v0(op & 0x0FFF)},
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:38:16
[INFO] [stdout]     |
[INFO] [stdout] 38  |             op @ 0xC000 ... 0xCFFF => { $this.rnd(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:39:16
[INFO] [stdout]     |
[INFO] [stdout] 39  |             op @ 0xD000 ... 0xDFFF => { $this.drw(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8, (op & 0x000F) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:40:16
[INFO] [stdout]     |
[INFO] [stdout] 40  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0x9E => { $this.skp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:41:16
[INFO] [stdout]     |
[INFO] [stdout] 41  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0xA1 => { $this.sknp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:42:16
[INFO] [stdout]     |
[INFO] [stdout] 42  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x07 => { $this.ld_dt_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:43:16
[INFO] [stdout]     |
[INFO] [stdout] 43  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x0A => { $this.ld_k_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:44:16
[INFO] [stdout]     |
[INFO] [stdout] 44  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x15 => { $this.ld_vx_into_dt(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:45:16
[INFO] [stdout]     |
[INFO] [stdout] 45  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x18 => { $this.ld_vx_into_st(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:46:16
[INFO] [stdout]     |
[INFO] [stdout] 46  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x1E => { $this.add_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:47:16
[INFO] [stdout]     |
[INFO] [stdout] 47  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x29 => { $this.ld_vx_digit_into_f(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:48:16
[INFO] [stdout]     |
[INFO] [stdout] 48  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x33 => { $this.ld_vx_into_bcd(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:49:16
[INFO] [stdout]     |
[INFO] [stdout] 49  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x55 => { $this.ld_v0_to_vx_into_i(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:50:16
[INFO] [stdout]     |
[INFO] [stdout] 50  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x65 => { $this.ld_i_into_v0_to_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cpu.rs:407:30
[INFO] [stdout]     |
[INFO] [stdout] 407 |     pub fn new<'b>(ram: &'b mut Memory, input: &'b I) -> Cpu<'b, I>
[INFO] [stdout]     |                                 ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:30:6
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut ram = &mut Ram::new_from_rom(&rom);
[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: 80 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1.60s
[INFO] running `Command { std: "docker" "inspect" "bccb08daf59f00e4bf6ea8cb6200f8358d0b0249030b89913dd760d6e7134d2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bccb08daf59f00e4bf6ea8cb6200f8358d0b0249030b89913dd760d6e7134d2c", kill_on_drop: false }`
[INFO] [stdout] bccb08daf59f00e4bf6ea8cb6200f8358d0b0249030b89913dd760d6e7134d2c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 24c0fc0422ebc2435d20eeb1f1b3f1ba24e52ec3635b5b898d4b7aabe6daa0ce
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "24c0fc0422ebc2435d20eeb1f1b3f1ba24e52ec3635b5b898d4b7aabe6daa0ce", kill_on_drop: false }`
[INFO] [stderr]    Compiling chit8 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 418 |         try!(write!(f, "CHIP8 CPU @ 0x{:0>4X}\r\n", self.pc));
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:419:9
[INFO] [stdout]     |
[INFO] [stdout] 419 |         try!(write!(f, "V0: {:X}, V1: {:X}, V2: {:X}, V3: {:X}\r\n", self.v[0], self.v[1], self.v[2], self.v[3]));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:420:9
[INFO] [stdout]     |
[INFO] [stdout] 420 |         try!(write!(f, "V4: {:X}, V5: {:X}, V6: {:X}, V7: {:X}\r\n", self.v[4], self.v[5], self.v[6], self.v[7]));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:421:9
[INFO] [stdout]     |
[INFO] [stdout] 421 |         try!(write!(f, "V8: {:X}, V9: {:X}, VA: {:X}, VB: {:X}\r\n", self.v[8], self.v[9], self.v[0xA], self.v[0xB]));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:422:9
[INFO] [stdout]     |
[INFO] [stdout] 422 |         try!(write!(f, "VC: {:X}, VD: {:X}, VE: {:X}, VF: {:X}\r\n", self.v[0xC], self.v[0xD], self.v[0xE], self.v[0xF]));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:424:9
[INFO] [stdout]     |
[INFO] [stdout] 424 |         try!(write!(f, "\r\nSTACK:\r\n"));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:428:10
[INFO] [stdout]     |
[INFO] [stdout] 428 |             try!(write!(f, ">> {}: 0x{:0>4X}\r\n", i, item));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:431:9
[INFO] [stdout]     |
[INFO] [stdout] 431 |         try!(write!(f, "\r\nI: {:X}", self.i));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:432:9
[INFO] [stdout]     |
[INFO] [stdout] 432 |         try!(write!(f, "\r\nST: {:X}", self.st));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/disassembler.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub ram: &'a mut Memory
[INFO] [stdout]    |                      ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:18:16
[INFO] [stdout]     |
[INFO] [stdout] 18  |             op @ 0x0000 ... 0x0FFF => { $this.sys(op & 0xFFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:19:16
[INFO] [stdout]     |
[INFO] [stdout] 19  |             op @ 0x1000 ... 0x1FFF => { $this.jp(op & 0x0FFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:20:16
[INFO] [stdout]     |
[INFO] [stdout] 20  |             op @ 0x2000 ... 0x2FFF => { $this.call(op & 0x0FFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:21:16
[INFO] [stdout]     |
[INFO] [stdout] 21  |             op @ 0x3000 ... 0x3FFF => { $this.se(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:22:16
[INFO] [stdout]     |
[INFO] [stdout] 22  |             op @ 0x4000 ... 0x4FFF => { $this.sne(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:23:16
[INFO] [stdout]     |
[INFO] [stdout] 23  |             op @ 0x5000 ... 0x5FFF => { $this.se_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:24:16
[INFO] [stdout]     |
[INFO] [stdout] 24  |             op @ 0x6000 ... 0x6FFF => { $this.ldx(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:25:16
[INFO] [stdout]     |
[INFO] [stdout] 25  |             op @ 0x7000 ... 0x7FFF => { $this.add_byte(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:26:16
[INFO] [stdout]     |
[INFO] [stdout] 26  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x0 => { $this.ld(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:27:16
[INFO] [stdout]     |
[INFO] [stdout] 27  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x1 => { $this.or(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:28:16
[INFO] [stdout]     |
[INFO] [stdout] 28  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x2 => { $this.and(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:29:16
[INFO] [stdout]     |
[INFO] [stdout] 29  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x3 => { $this.xor(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:30:16
[INFO] [stdout]     |
[INFO] [stdout] 30  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x4 => { $this.add_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:31:16
[INFO] [stdout]     |
[INFO] [stdout] 31  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x5 => { $this.sub(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:32:16
[INFO] [stdout]     |
[INFO] [stdout] 32  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x6 => { $this.shr(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:33:16
[INFO] [stdout]     |
[INFO] [stdout] 33  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x7 => { $this.subn(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:34:16
[INFO] [stdout]     |
[INFO] [stdout] 34  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0xE => { $this.shl(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:35:16
[INFO] [stdout]     |
[INFO] [stdout] 35  |             op @ 0x9000 ... 0x9FFF if (op & 0x000F) == 0x0 => { $this.sne_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:36:16
[INFO] [stdout]     |
[INFO] [stdout] 36  |             op @ 0xA000 ... 0xAFFF => { $this.ldi(op & 0x0FFF)},
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:37:16
[INFO] [stdout]     |
[INFO] [stdout] 37  |             op @ 0xB000 ... 0xBFFF => { $this.jp_v0(op & 0x0FFF)},
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:38:16
[INFO] [stdout]     |
[INFO] [stdout] 38  |             op @ 0xC000 ... 0xCFFF => { $this.rnd(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:39:16
[INFO] [stdout]     |
[INFO] [stdout] 39  |             op @ 0xD000 ... 0xDFFF => { $this.drw(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8, (op & 0x000F) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:40:16
[INFO] [stdout]     |
[INFO] [stdout] 40  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0x9E => { $this.skp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:41:16
[INFO] [stdout]     |
[INFO] [stdout] 41  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0xA1 => { $this.sknp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:42:16
[INFO] [stdout]     |
[INFO] [stdout] 42  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x07 => { $this.ld_dt_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:43:16
[INFO] [stdout]     |
[INFO] [stdout] 43  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x0A => { $this.ld_k_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:44:16
[INFO] [stdout]     |
[INFO] [stdout] 44  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x15 => { $this.ld_vx_into_dt(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:45:16
[INFO] [stdout]     |
[INFO] [stdout] 45  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x18 => { $this.ld_vx_into_st(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:46:16
[INFO] [stdout]     |
[INFO] [stdout] 46  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x1E => { $this.add_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:47:16
[INFO] [stdout]     |
[INFO] [stdout] 47  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x29 => { $this.ld_vx_digit_into_f(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:48:16
[INFO] [stdout]     |
[INFO] [stdout] 48  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x33 => { $this.ld_vx_into_bcd(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:49:16
[INFO] [stdout]     |
[INFO] [stdout] 49  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x55 => { $this.ld_v0_to_vx_into_i(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:50:16
[INFO] [stdout]     |
[INFO] [stdout] 50  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x65 => { $this.ld_i_into_v0_to_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rom.rs:22:28
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new(readable: &mut Read, filename: String) -> Result<Rom, io::Error>
[INFO] [stdout]    |                               ^^^^ help: use `dyn`: `dyn Read`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cpu.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 |     ram: &'a mut Memory,
[INFO] [stdout]    |                  ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:18:16
[INFO] [stdout]     |
[INFO] [stdout] 18  |             op @ 0x0000 ... 0x0FFF => { $this.sys(op & 0xFFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:19:16
[INFO] [stdout]     |
[INFO] [stdout] 19  |             op @ 0x1000 ... 0x1FFF => { $this.jp(op & 0x0FFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:20:16
[INFO] [stdout]     |
[INFO] [stdout] 20  |             op @ 0x2000 ... 0x2FFF => { $this.call(op & 0x0FFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:21:16
[INFO] [stdout]     |
[INFO] [stdout] 21  |             op @ 0x3000 ... 0x3FFF => { $this.se(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:22:16
[INFO] [stdout]     |
[INFO] [stdout] 22  |             op @ 0x4000 ... 0x4FFF => { $this.sne(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:23:16
[INFO] [stdout]     |
[INFO] [stdout] 23  |             op @ 0x5000 ... 0x5FFF => { $this.se_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:24:16
[INFO] [stdout]     |
[INFO] [stdout] 24  |             op @ 0x6000 ... 0x6FFF => { $this.ldx(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:25:16
[INFO] [stdout]     |
[INFO] [stdout] 25  |             op @ 0x7000 ... 0x7FFF => { $this.add_byte(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:26:16
[INFO] [stdout]     |
[INFO] [stdout] 26  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x0 => { $this.ld(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:27:16
[INFO] [stdout]     |
[INFO] [stdout] 27  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x1 => { $this.or(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:28:16
[INFO] [stdout]     |
[INFO] [stdout] 28  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x2 => { $this.and(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:29:16
[INFO] [stdout]     |
[INFO] [stdout] 29  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x3 => { $this.xor(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:30:16
[INFO] [stdout]     |
[INFO] [stdout] 30  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x4 => { $this.add_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:31:16
[INFO] [stdout]     |
[INFO] [stdout] 31  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x5 => { $this.sub(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:32:16
[INFO] [stdout]     |
[INFO] [stdout] 32  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x6 => { $this.shr(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:33:16
[INFO] [stdout]     |
[INFO] [stdout] 33  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x7 => { $this.subn(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:34:16
[INFO] [stdout]     |
[INFO] [stdout] 34  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0xE => { $this.shl(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:35:16
[INFO] [stdout]     |
[INFO] [stdout] 35  |             op @ 0x9000 ... 0x9FFF if (op & 0x000F) == 0x0 => { $this.sne_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:36:16
[INFO] [stdout]     |
[INFO] [stdout] 36  |             op @ 0xA000 ... 0xAFFF => { $this.ldi(op & 0x0FFF)},
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:37:16
[INFO] [stdout]     |
[INFO] [stdout] 37  |             op @ 0xB000 ... 0xBFFF => { $this.jp_v0(op & 0x0FFF)},
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:38:16
[INFO] [stdout]     |
[INFO] [stdout] 38  |             op @ 0xC000 ... 0xCFFF => { $this.rnd(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:39:16
[INFO] [stdout]     |
[INFO] [stdout] 39  |             op @ 0xD000 ... 0xDFFF => { $this.drw(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8, (op & 0x000F) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:40:16
[INFO] [stdout]     |
[INFO] [stdout] 40  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0x9E => { $this.skp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:41:16
[INFO] [stdout]     |
[INFO] [stdout] 41  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0xA1 => { $this.sknp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:42:16
[INFO] [stdout]     |
[INFO] [stdout] 42  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x07 => { $this.ld_dt_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:43:16
[INFO] [stdout]     |
[INFO] [stdout] 43  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x0A => { $this.ld_k_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:44:16
[INFO] [stdout]     |
[INFO] [stdout] 44  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x15 => { $this.ld_vx_into_dt(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:45:16
[INFO] [stdout]     |
[INFO] [stdout] 45  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x18 => { $this.ld_vx_into_st(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:46:16
[INFO] [stdout]     |
[INFO] [stdout] 46  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x1E => { $this.add_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:47:16
[INFO] [stdout]     |
[INFO] [stdout] 47  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x29 => { $this.ld_vx_digit_into_f(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:48:16
[INFO] [stdout]     |
[INFO] [stdout] 48  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x33 => { $this.ld_vx_into_bcd(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:49:16
[INFO] [stdout]     |
[INFO] [stdout] 49  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x55 => { $this.ld_v0_to_vx_into_i(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:50:16
[INFO] [stdout]     |
[INFO] [stdout] 50  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x65 => { $this.ld_i_into_v0_to_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cpu.rs:407:30
[INFO] [stdout]     |
[INFO] [stdout] 407 |     pub fn new<'b>(ram: &'b mut Memory, input: &'b I) -> Cpu<'b, I>
[INFO] [stdout]     |                                 ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:30:6
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut ram = &mut Ram::new_from_rom(&rom);
[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: 80 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 418 |         try!(write!(f, "CHIP8 CPU @ 0x{:0>4X}\r\n", self.pc));
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:419:9
[INFO] [stdout]     |
[INFO] [stdout] 419 |         try!(write!(f, "V0: {:X}, V1: {:X}, V2: {:X}, V3: {:X}\r\n", self.v[0], self.v[1], self.v[2], self.v[3]));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:420:9
[INFO] [stdout]     |
[INFO] [stdout] 420 |         try!(write!(f, "V4: {:X}, V5: {:X}, V6: {:X}, V7: {:X}\r\n", self.v[4], self.v[5], self.v[6], self.v[7]));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:421:9
[INFO] [stdout]     |
[INFO] [stdout] 421 |         try!(write!(f, "V8: {:X}, V9: {:X}, VA: {:X}, VB: {:X}\r\n", self.v[8], self.v[9], self.v[0xA], self.v[0xB]));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:422:9
[INFO] [stdout]     |
[INFO] [stdout] 422 |         try!(write!(f, "VC: {:X}, VD: {:X}, VE: {:X}, VF: {:X}\r\n", self.v[0xC], self.v[0xD], self.v[0xE], self.v[0xF]));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:424:9
[INFO] [stdout]     |
[INFO] [stdout] 424 |         try!(write!(f, "\r\nSTACK:\r\n"));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:428:10
[INFO] [stdout]     |
[INFO] [stdout] 428 |             try!(write!(f, ">> {}: 0x{:0>4X}\r\n", i, item));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:431:9
[INFO] [stdout]     |
[INFO] [stdout] 431 |         try!(write!(f, "\r\nI: {:X}", self.i));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/cpu.rs:432:9
[INFO] [stdout]     |
[INFO] [stdout] 432 |         try!(write!(f, "\r\nST: {:X}", self.st));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/disassembler.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub ram: &'a mut Memory
[INFO] [stdout]    |                      ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:18:16
[INFO] [stdout]     |
[INFO] [stdout] 18  |             op @ 0x0000 ... 0x0FFF => { $this.sys(op & 0xFFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:19:16
[INFO] [stdout]     |
[INFO] [stdout] 19  |             op @ 0x1000 ... 0x1FFF => { $this.jp(op & 0x0FFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:20:16
[INFO] [stdout]     |
[INFO] [stdout] 20  |             op @ 0x2000 ... 0x2FFF => { $this.call(op & 0x0FFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:21:16
[INFO] [stdout]     |
[INFO] [stdout] 21  |             op @ 0x3000 ... 0x3FFF => { $this.se(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:22:16
[INFO] [stdout]     |
[INFO] [stdout] 22  |             op @ 0x4000 ... 0x4FFF => { $this.sne(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:23:16
[INFO] [stdout]     |
[INFO] [stdout] 23  |             op @ 0x5000 ... 0x5FFF => { $this.se_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:24:16
[INFO] [stdout]     |
[INFO] [stdout] 24  |             op @ 0x6000 ... 0x6FFF => { $this.ldx(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:25:16
[INFO] [stdout]     |
[INFO] [stdout] 25  |             op @ 0x7000 ... 0x7FFF => { $this.add_byte(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:26:16
[INFO] [stdout]     |
[INFO] [stdout] 26  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x0 => { $this.ld(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:27:16
[INFO] [stdout]     |
[INFO] [stdout] 27  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x1 => { $this.or(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:28:16
[INFO] [stdout]     |
[INFO] [stdout] 28  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x2 => { $this.and(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:29:16
[INFO] [stdout]     |
[INFO] [stdout] 29  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x3 => { $this.xor(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:30:16
[INFO] [stdout]     |
[INFO] [stdout] 30  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x4 => { $this.add_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:31:16
[INFO] [stdout]     |
[INFO] [stdout] 31  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x5 => { $this.sub(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:32:16
[INFO] [stdout]     |
[INFO] [stdout] 32  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x6 => { $this.shr(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:33:16
[INFO] [stdout]     |
[INFO] [stdout] 33  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x7 => { $this.subn(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:34:16
[INFO] [stdout]     |
[INFO] [stdout] 34  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0xE => { $this.shl(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:35:16
[INFO] [stdout]     |
[INFO] [stdout] 35  |             op @ 0x9000 ... 0x9FFF if (op & 0x000F) == 0x0 => { $this.sne_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:36:16
[INFO] [stdout]     |
[INFO] [stdout] 36  |             op @ 0xA000 ... 0xAFFF => { $this.ldi(op & 0x0FFF)},
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:37:16
[INFO] [stdout]     |
[INFO] [stdout] 37  |             op @ 0xB000 ... 0xBFFF => { $this.jp_v0(op & 0x0FFF)},
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:38:16
[INFO] [stdout]     |
[INFO] [stdout] 38  |             op @ 0xC000 ... 0xCFFF => { $this.rnd(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:39:16
[INFO] [stdout]     |
[INFO] [stdout] 39  |             op @ 0xD000 ... 0xDFFF => { $this.drw(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8, (op & 0x000F) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:40:16
[INFO] [stdout]     |
[INFO] [stdout] 40  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0x9E => { $this.skp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:41:16
[INFO] [stdout]     |
[INFO] [stdout] 41  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0xA1 => { $this.sknp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:42:16
[INFO] [stdout]     |
[INFO] [stdout] 42  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x07 => { $this.ld_dt_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:43:16
[INFO] [stdout]     |
[INFO] [stdout] 43  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x0A => { $this.ld_k_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:44:16
[INFO] [stdout]     |
[INFO] [stdout] 44  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x15 => { $this.ld_vx_into_dt(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:45:16
[INFO] [stdout]     |
[INFO] [stdout] 45  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x18 => { $this.ld_vx_into_st(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:46:16
[INFO] [stdout]     |
[INFO] [stdout] 46  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x1E => { $this.add_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:47:16
[INFO] [stdout]     |
[INFO] [stdout] 47  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x29 => { $this.ld_vx_digit_into_f(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:48:16
[INFO] [stdout]     |
[INFO] [stdout] 48  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x33 => { $this.ld_vx_into_bcd(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:49:16
[INFO] [stdout]     |
[INFO] [stdout] 49  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x55 => { $this.ld_v0_to_vx_into_i(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:50:16
[INFO] [stdout]     |
[INFO] [stdout] 50  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x65 => { $this.ld_i_into_v0_to_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] ...
[INFO] [stdout] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stdout]     |                                                           -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/rom.rs:22:28
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new(readable: &mut Read, filename: String) -> Result<Rom, io::Error>
[INFO] [stdout]    |                               ^^^^ help: use `dyn`: `dyn Read`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cpu.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 |     ram: &'a mut Memory,
[INFO] [stdout]    |                  ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:18:16
[INFO] [stdout]     |
[INFO] [stdout] 18  |             op @ 0x0000 ... 0x0FFF => { $this.sys(op & 0xFFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:19:16
[INFO] [stdout]     |
[INFO] [stdout] 19  |             op @ 0x1000 ... 0x1FFF => { $this.jp(op & 0x0FFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:20:16
[INFO] [stdout]     |
[INFO] [stdout] 20  |             op @ 0x2000 ... 0x2FFF => { $this.call(op & 0x0FFF) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:21:16
[INFO] [stdout]     |
[INFO] [stdout] 21  |             op @ 0x3000 ... 0x3FFF => { $this.se(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:22:16
[INFO] [stdout]     |
[INFO] [stdout] 22  |             op @ 0x4000 ... 0x4FFF => { $this.sne(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:23:16
[INFO] [stdout]     |
[INFO] [stdout] 23  |             op @ 0x5000 ... 0x5FFF => { $this.se_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:24:16
[INFO] [stdout]     |
[INFO] [stdout] 24  |             op @ 0x6000 ... 0x6FFF => { $this.ldx(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:25:16
[INFO] [stdout]     |
[INFO] [stdout] 25  |             op @ 0x7000 ... 0x7FFF => { $this.add_byte(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:26:16
[INFO] [stdout]     |
[INFO] [stdout] 26  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x0 => { $this.ld(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:27:16
[INFO] [stdout]     |
[INFO] [stdout] 27  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x1 => { $this.or(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:28:16
[INFO] [stdout]     |
[INFO] [stdout] 28  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x2 => { $this.and(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:29:16
[INFO] [stdout]     |
[INFO] [stdout] 29  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x3 => { $this.xor(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:30:16
[INFO] [stdout]     |
[INFO] [stdout] 30  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x4 => { $this.add_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:31:16
[INFO] [stdout]     |
[INFO] [stdout] 31  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x5 => { $this.sub(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:32:16
[INFO] [stdout]     |
[INFO] [stdout] 32  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x6 => { $this.shr(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:33:16
[INFO] [stdout]     |
[INFO] [stdout] 33  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x7 => { $this.subn(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:34:16
[INFO] [stdout]     |
[INFO] [stdout] 34  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0xE => { $this.shl(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:35:16
[INFO] [stdout]     |
[INFO] [stdout] 35  |             op @ 0x9000 ... 0x9FFF if (op & 0x000F) == 0x0 => { $this.sne_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:36:16
[INFO] [stdout]     |
[INFO] [stdout] 36  |             op @ 0xA000 ... 0xAFFF => { $this.ldi(op & 0x0FFF)},
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:37:16
[INFO] [stdout]     |
[INFO] [stdout] 37  |             op @ 0xB000 ... 0xBFFF => { $this.jp_v0(op & 0x0FFF)},
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:38:16
[INFO] [stdout]     |
[INFO] [stdout] 38  |             op @ 0xC000 ... 0xCFFF => { $this.rnd(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:39:16
[INFO] [stdout]     |
[INFO] [stdout] 39  |             op @ 0xD000 ... 0xDFFF => { $this.drw(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8, (op & 0x000F) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:40:16
[INFO] [stdout]     |
[INFO] [stdout] 40  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0x9E => { $this.skp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:41:16
[INFO] [stdout]     |
[INFO] [stdout] 41  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0xA1 => { $this.sknp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:42:16
[INFO] [stdout]     |
[INFO] [stdout] 42  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x07 => { $this.ld_dt_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:43:16
[INFO] [stdout]     |
[INFO] [stdout] 43  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x0A => { $this.ld_k_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:44:16
[INFO] [stdout]     |
[INFO] [stdout] 44  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x15 => { $this.ld_vx_into_dt(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:45:16
[INFO] [stdout]     |
[INFO] [stdout] 45  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x18 => { $this.ld_vx_into_st(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:46:16
[INFO] [stdout]     |
[INFO] [stdout] 46  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x1E => { $this.add_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:47:16
[INFO] [stdout]     |
[INFO] [stdout] 47  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x29 => { $this.ld_vx_digit_into_f(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:48:16
[INFO] [stdout]     |
[INFO] [stdout] 48  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x33 => { $this.ld_vx_into_bcd(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:49:16
[INFO] [stdout]     |
[INFO] [stdout] 49  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x55 => { $this.ld_v0_to_vx_into_i(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/disassembler.rs:50:16
[INFO] [stdout]     |
[INFO] [stdout] 50  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x65 => { $this.ld_i_into_v0_to_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stdout]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     | 
[INFO] [stdout]    ::: src/cpu.rs:403:9
[INFO] [stdout]     |
[INFO] [stdout] 403 |         decode_opcode!(op, self);
[INFO] [stdout]     |         ------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cpu.rs:407:30
[INFO] [stdout]     |
[INFO] [stdout] 407 |     pub fn new<'b>(ram: &'b mut Memory, input: &'b I) -> Cpu<'b, I>
[INFO] [stdout]     |                                 ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:30:6
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut ram = &mut Ram::new_from_rom(&rom);
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:460:6
[INFO] [stdout]     |
[INFO] [stdout] 460 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:488:6
[INFO] [stdout]     |
[INFO] [stdout] 488 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:499:6
[INFO] [stdout]     |
[INFO] [stdout] 499 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:515:6
[INFO] [stdout]     |
[INFO] [stdout] 515 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:544:6
[INFO] [stdout]     |
[INFO] [stdout] 544 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:557:6
[INFO] [stdout]     |
[INFO] [stdout] 557 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:574:6
[INFO] [stdout]     |
[INFO] [stdout] 574 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:591:6
[INFO] [stdout]     |
[INFO] [stdout] 591 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:614:6
[INFO] [stdout]     |
[INFO] [stdout] 614 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:633:6
[INFO] [stdout]     |
[INFO] [stdout] 633 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:646:6
[INFO] [stdout]     |
[INFO] [stdout] 646 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:666:6
[INFO] [stdout]     |
[INFO] [stdout] 666 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:681:6
[INFO] [stdout]     |
[INFO] [stdout] 681 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:696:6
[INFO] [stdout]     |
[INFO] [stdout] 696 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:711:6
[INFO] [stdout]     |
[INFO] [stdout] 711 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:728:6
[INFO] [stdout]     |
[INFO] [stdout] 728 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:745:6
[INFO] [stdout]     |
[INFO] [stdout] 745 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:762:6
[INFO] [stdout]     |
[INFO] [stdout] 762 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:779:6
[INFO] [stdout]     |
[INFO] [stdout] 779 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:806:6
[INFO] [stdout]     |
[INFO] [stdout] 806 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:823:6
[INFO] [stdout]     |
[INFO] [stdout] 823 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:840:6
[INFO] [stdout]     |
[INFO] [stdout] 840 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:867:6
[INFO] [stdout]     |
[INFO] [stdout] 867 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:890:6
[INFO] [stdout]     |
[INFO] [stdout] 890 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:905:6
[INFO] [stdout]     |
[INFO] [stdout] 905 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:918:6
[INFO] [stdout]     |
[INFO] [stdout] 918 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:940:6
[INFO] [stdout]     |
[INFO] [stdout] 940 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:966:6
[INFO] [stdout]     |
[INFO] [stdout] 966 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cpu.rs:992:6
[INFO] [stdout]     |
[INFO] [stdout] 992 |     let mut ram = &mut Ram::new();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1011:6
[INFO] [stdout]      |
[INFO] [stdout] 1011 |     let mut ram = &mut Ram::new();
[INFO] [stdout]      |         ----^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1026:6
[INFO] [stdout]      |
[INFO] [stdout] 1026 |     let mut ram = &mut Ram::new();
[INFO] [stdout]      |         ----^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1045:6
[INFO] [stdout]      |
[INFO] [stdout] 1045 |     let mut ram = &mut Ram::new();
[INFO] [stdout]      |         ----^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1064:6
[INFO] [stdout]      |
[INFO] [stdout] 1064 |     let mut ram = &mut Ram::new();
[INFO] [stdout]      |         ----^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1084:6
[INFO] [stdout]      |
[INFO] [stdout] 1084 |     let mut ram = &mut Ram::new();
[INFO] [stdout]      |         ----^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1105:6
[INFO] [stdout]      |
[INFO] [stdout] 1105 |     let mut ram = &mut Ram::new();
[INFO] [stdout]      |         ----^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1124:6
[INFO] [stdout]      |
[INFO] [stdout] 1124 |     let mut ram = &mut Ram::new();
[INFO] [stdout]      |         ----^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1148:6
[INFO] [stdout]      |
[INFO] [stdout] 1148 |     let mut ram = &mut Ram::new();
[INFO] [stdout]      |         ----^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1168:6
[INFO] [stdout]      |
[INFO] [stdout] 1168 |     let mut ram = &mut Ram::new();
[INFO] [stdout]      |         ----^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1188:6
[INFO] [stdout]      |
[INFO] [stdout] 1188 |     let mut ram = &mut Ram::new();
[INFO] [stdout]      |         ----^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cpu.rs:1209:6
[INFO] [stdout]      |
[INFO] [stdout] 1209 |     let mut ram = &mut Ram::new();
[INFO] [stdout]      |         ----^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 120 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.94s
[INFO] running `Command { std: "docker" "inspect" "24c0fc0422ebc2435d20eeb1f1b3f1ba24e52ec3635b5b898d4b7aabe6daa0ce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "24c0fc0422ebc2435d20eeb1f1b3f1ba24e52ec3635b5b898d4b7aabe6daa0ce", kill_on_drop: false }`
[INFO] [stdout] 24c0fc0422ebc2435d20eeb1f1b3f1ba24e52ec3635b5b898d4b7aabe6daa0ce
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 8d590f059ee7503f37eae52b9da63b0be6b969b375902e98a3dd4cd1b165bf2e
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "8d590f059ee7503f37eae52b9da63b0be6b969b375902e98a3dd4cd1b165bf2e", kill_on_drop: false }`
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:418:9
[INFO] [stderr]     |
[INFO] [stderr] 418 |         try!(write!(f, "CHIP8 CPU @ 0x{:0>4X}\r\n", self.pc));
[INFO] [stderr]     |         ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:419:9
[INFO] [stderr]     |
[INFO] [stderr] 419 |         try!(write!(f, "V0: {:X}, V1: {:X}, V2: {:X}, V3: {:X}\r\n", self.v[0], self.v[1], self.v[2], self.v[3]));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:420:9
[INFO] [stderr]     |
[INFO] [stderr] 420 |         try!(write!(f, "V4: {:X}, V5: {:X}, V6: {:X}, V7: {:X}\r\n", self.v[4], self.v[5], self.v[6], self.v[7]));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:421:9
[INFO] [stderr]     |
[INFO] [stderr] 421 |         try!(write!(f, "V8: {:X}, V9: {:X}, VA: {:X}, VB: {:X}\r\n", self.v[8], self.v[9], self.v[0xA], self.v[0xB]));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:422:9
[INFO] [stderr]     |
[INFO] [stderr] 422 |         try!(write!(f, "VC: {:X}, VD: {:X}, VE: {:X}, VF: {:X}\r\n", self.v[0xC], self.v[0xD], self.v[0xE], self.v[0xF]));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:424:9
[INFO] [stderr]     |
[INFO] [stderr] 424 |         try!(write!(f, "\r\nSTACK:\r\n"));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:428:10
[INFO] [stderr]     |
[INFO] [stderr] 428 |             try!(write!(f, ">> {}: 0x{:0>4X}\r\n", i, item));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:431:9
[INFO] [stderr]     |
[INFO] [stderr] 431 |         try!(write!(f, "\r\nI: {:X}", self.i));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:432:9
[INFO] [stderr]     |
[INFO] [stderr] 432 |         try!(write!(f, "\r\nST: {:X}", self.st));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/disassembler.rs:63:19
[INFO] [stderr]    |
[INFO] [stderr] 63 |     pub ram: &'a mut Memory
[INFO] [stderr]    |                      ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:418:9
[INFO] [stderr]     |
[INFO] [stderr] 418 |         try!(write!(f, "CHIP8 CPU @ 0x{:0>4X}\r\n", self.pc));
[INFO] [stderr]     |         ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:419:9
[INFO] [stderr]     |
[INFO] [stderr] 419 |         try!(write!(f, "V0: {:X}, V1: {:X}, V2: {:X}, V3: {:X}\r\n", self.v[0], self.v[1], self.v[2], self.v[3]));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:420:9
[INFO] [stderr]     |
[INFO] [stderr] 420 |         try!(write!(f, "V4: {:X}, V5: {:X}, V6: {:X}, V7: {:X}\r\n", self.v[4], self.v[5], self.v[6], self.v[7]));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:18:16
[INFO] [stderr]     |
[INFO] [stderr] 18  |             op @ 0x0000 ... 0x0FFF => { $this.sys(op & 0xFFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:421:9
[INFO] [stderr]     |
[INFO] [stderr] 421 |         try!(write!(f, "V8: {:X}, V9: {:X}, VA: {:X}, VB: {:X}\r\n", self.v[8], self.v[9], self.v[0xA], self.v[0xB]));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:422:9
[INFO] [stderr]     |
[INFO] [stderr] 422 |         try!(write!(f, "VC: {:X}, VD: {:X}, VE: {:X}, VF: {:X}\r\n", self.v[0xC], self.v[0xD], self.v[0xE], self.v[0xF]));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:424:9
[INFO] [stderr]     |
[INFO] [stderr] 424 |         try!(write!(f, "\r\nSTACK:\r\n"));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:428:10
[INFO] [stderr]     |
[INFO] [stderr] 428 |             try!(write!(f, ">> {}: 0x{:0>4X}\r\n", i, item));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:19:16
[INFO] [stderr]     |
[INFO] [stderr] 19  |             op @ 0x1000 ... 0x1FFF => { $this.jp(op & 0x0FFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:431:9
[INFO] [stderr]     |
[INFO] [stderr] 431 |         try!(write!(f, "\r\nI: {:X}", self.i));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/cpu.rs:432:9
[INFO] [stderr]     |
[INFO] [stderr] 432 |         try!(write!(f, "\r\nST: {:X}", self.st));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/disassembler.rs:63:19
[INFO] [stderr]    |
[INFO] [stderr] 63 |     pub ram: &'a mut Memory
[INFO] [stderr]    |                      ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:20:16
[INFO] [stderr]     |
[INFO] [stderr] 20  |             op @ 0x2000 ... 0x2FFF => { $this.call(op & 0x0FFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:21:16
[INFO] [stderr]     |
[INFO] [stderr] 21  |             op @ 0x3000 ... 0x3FFF => { $this.se(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:18:16
[INFO] [stderr]     |
[INFO] [stderr] 18  |             op @ 0x0000 ... 0x0FFF => { $this.sys(op & 0xFFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:22:16
[INFO] [stderr]     |
[INFO] [stderr] 22  |             op @ 0x4000 ... 0x4FFF => { $this.sne(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:19:16
[INFO] [stderr]     |
[INFO] [stderr] 19  |             op @ 0x1000 ... 0x1FFF => { $this.jp(op & 0x0FFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:20:16
[INFO] [stderr]     |
[INFO] [stderr] 20  |             op @ 0x2000 ... 0x2FFF => { $this.call(op & 0x0FFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:23:16
[INFO] [stderr]     |
[INFO] [stderr] 23  |             op @ 0x5000 ... 0x5FFF => { $this.se_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:24:16
[INFO] [stderr]     |
[INFO] [stderr] 24  |             op @ 0x6000 ... 0x6FFF => { $this.ldx(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:21:16
[INFO] [stderr]     |
[INFO] [stderr] 21  |             op @ 0x3000 ... 0x3FFF => { $this.se(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:25:16
[INFO] [stderr]     |
[INFO] [stderr] 25  |             op @ 0x7000 ... 0x7FFF => { $this.add_byte(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:22:16
[INFO] [stderr]     |
[INFO] [stderr] 22  |             op @ 0x4000 ... 0x4FFF => { $this.sne(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:26:16
[INFO] [stderr]     |
[INFO] [stderr] 26  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x0 => { $this.ld(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:23:16
[INFO] [stderr]     |
[INFO] [stderr] 23  |             op @ 0x5000 ... 0x5FFF => { $this.se_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:27:16
[INFO] [stderr]     |
[INFO] [stderr] 27  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x1 => { $this.or(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:24:16
[INFO] [stderr]     |
[INFO] [stderr] 24  |             op @ 0x6000 ... 0x6FFF => { $this.ldx(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:25:16
[INFO] [stderr]     |
[INFO] [stderr] 25  |             op @ 0x7000 ... 0x7FFF => { $this.add_byte(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:28:16
[INFO] [stderr]     |
[INFO] [stderr] 28  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x2 => { $this.and(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:26:16
[INFO] [stderr]     |
[INFO] [stderr] 26  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x0 => { $this.ld(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:29:16
[INFO] [stderr]     |
[INFO] [stderr] 29  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x3 => { $this.xor(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:27:16
[INFO] [stderr]     |
[INFO] [stderr] 27  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x1 => { $this.or(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:30:16
[INFO] [stderr]     |
[INFO] [stderr] 30  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x4 => { $this.add_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:28:16
[INFO] [stderr]     |
[INFO] [stderr] 28  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x2 => { $this.and(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:31:16
[INFO] [stderr]     |
[INFO] [stderr] 31  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x5 => { $this.sub(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:29:16
[INFO] [stderr]     |
[INFO] [stderr] 29  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x3 => { $this.xor(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:32:16
[INFO] [stderr]     |
[INFO] [stderr] 32  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x6 => { $this.shr(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:30:16
[INFO] [stderr]     |
[INFO] [stderr] 30  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x4 => { $this.add_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:33:16
[INFO] [stderr]     |
[INFO] [stderr] 33  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x7 => { $this.subn(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:31:16
[INFO] [stderr]     |
[INFO] [stderr] 31  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x5 => { $this.sub(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:34:16
[INFO] [stderr]     |
[INFO] [stderr] 34  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0xE => { $this.shl(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:32:16
[INFO] [stderr]     |
[INFO] [stderr] 32  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x6 => { $this.shr(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:35:16
[INFO] [stderr]     |
[INFO] [stderr] 35  |             op @ 0x9000 ... 0x9FFF if (op & 0x000F) == 0x0 => { $this.sne_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:36:16
[INFO] [stderr]     |
[INFO] [stderr] 36  |             op @ 0xA000 ... 0xAFFF => { $this.ldi(op & 0x0FFF)},
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:33:16
[INFO] [stderr]     |
[INFO] [stderr] 33  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x7 => { $this.subn(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:37:16
[INFO] [stderr]     |
[INFO] [stderr] 37  |             op @ 0xB000 ... 0xBFFF => { $this.jp_v0(op & 0x0FFF)},
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:34:16
[INFO] [stderr]     |
[INFO] [stderr] 34  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0xE => { $this.shl(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:38:16
[INFO] [stderr]     |
[INFO] [stderr] 38  |             op @ 0xC000 ... 0xCFFF => { $this.rnd(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:35:16
[INFO] [stderr]     |
[INFO] [stderr] 35  |             op @ 0x9000 ... 0x9FFF if (op & 0x000F) == 0x0 => { $this.sne_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:36:16
[INFO] [stderr]     |
[INFO] [stderr] 36  |             op @ 0xA000 ... 0xAFFF => { $this.ldi(op & 0x0FFF)},
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:39:16
[INFO] [stderr]     |
[INFO] [stderr] 39  |             op @ 0xD000 ... 0xDFFF => { $this.drw(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8, (op & 0x000F) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:37:16
[INFO] [stderr]     |
[INFO] [stderr] 37  |             op @ 0xB000 ... 0xBFFF => { $this.jp_v0(op & 0x0FFF)},
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:40:16
[INFO] [stderr]     |
[INFO] [stderr] 40  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0x9E => { $this.skp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:38:16
[INFO] [stderr]     |
[INFO] [stderr] 38  |             op @ 0xC000 ... 0xCFFF => { $this.rnd(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:39:16
[INFO] [stderr]     |
[INFO] [stderr] 39  |             op @ 0xD000 ... 0xDFFF => { $this.drw(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8, (op & 0x000F) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:40:16
[INFO] [stderr]     |
[INFO] [stderr] 40  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0x9E => { $this.skp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:41:16
[INFO] [stderr]     |
[INFO] [stderr] 41  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0xA1 => { $this.sknp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:41:16
[INFO] [stderr]     |
[INFO] [stderr] 41  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0xA1 => { $this.sknp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:42:16
[INFO] [stderr]     |
[INFO] [stderr] 42  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x07 => { $this.ld_dt_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:42:16
[INFO] [stderr]     |
[INFO] [stderr] 42  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x07 => { $this.ld_dt_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:43:16
[INFO] [stderr]     |
[INFO] [stderr] 43  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x0A => { $this.ld_k_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:44:16
[INFO] [stderr]     |
[INFO] [stderr] 44  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x15 => { $this.ld_vx_into_dt(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:45:16
[INFO] [stderr]     |
[INFO] [stderr] 45  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x18 => { $this.ld_vx_into_st(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:46:16
[INFO] [stderr]     |
[INFO] [stderr] 46  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x1E => { $this.add_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:47:16
[INFO] [stderr]     |
[INFO] [stderr] 47  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x29 => { $this.ld_vx_digit_into_f(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:48:16
[INFO] [stderr]     |
[INFO] [stderr] 48  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x33 => { $this.ld_vx_into_bcd(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:49:16
[INFO] [stderr]     |
[INFO] [stderr] 49  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x55 => { $this.ld_v0_to_vx_into_i(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:50:16
[INFO] [stderr]     |
[INFO] [stderr] 50  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x65 => { $this.ld_i_into_v0_to_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/rom.rs:22:28
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub fn new(readable: &mut Read, filename: String) -> Result<Rom, io::Error>
[INFO] [stderr]    |                               ^^^^ help: use `dyn`: `dyn Read`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/cpu.rs:12:15
[INFO] [stderr]    |
[INFO] [stderr] 12 |     ram: &'a mut Memory,
[INFO] [stderr]    |                  ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:18:16
[INFO] [stderr]     |
[INFO] [stderr] 18  |             op @ 0x0000 ... 0x0FFF => { $this.sys(op & 0xFFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:19:16
[INFO] [stderr]     |
[INFO] [stderr] 19  |             op @ 0x1000 ... 0x1FFF => { $this.jp(op & 0x0FFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:20:16
[INFO] [stderr]     |
[INFO] [stderr] 20  |             op @ 0x2000 ... 0x2FFF => { $this.call(op & 0x0FFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:21:16
[INFO] [stderr]     |
[INFO] [stderr] 21  |             op @ 0x3000 ... 0x3FFF => { $this.se(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:22:16
[INFO] [stderr]     |
[INFO] [stderr] 22  |             op @ 0x4000 ... 0x4FFF => { $this.sne(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:23:16
[INFO] [stderr]     |
[INFO] [stderr] 23  |             op @ 0x5000 ... 0x5FFF => { $this.se_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:24:16
[INFO] [stderr]     |
[INFO] [stderr] 24  |             op @ 0x6000 ... 0x6FFF => { $this.ldx(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:25:16
[INFO] [stderr]     |
[INFO] [stderr] 25  |             op @ 0x7000 ... 0x7FFF => { $this.add_byte(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:26:16
[INFO] [stderr]     |
[INFO] [stderr] 26  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x0 => { $this.ld(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:27:16
[INFO] [stderr]     |
[INFO] [stderr] 27  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x1 => { $this.or(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:28:16
[INFO] [stderr]     |
[INFO] [stderr] 28  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x2 => { $this.and(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:29:16
[INFO] [stderr]     |
[INFO] [stderr] 29  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x3 => { $this.xor(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:30:16
[INFO] [stderr]     |
[INFO] [stderr] 30  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x4 => { $this.add_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:31:16
[INFO] [stderr]     |
[INFO] [stderr] 31  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x5 => { $this.sub(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:32:16
[INFO] [stderr]     |
[INFO] [stderr] 32  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x6 => { $this.shr(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:33:16
[INFO] [stderr]     |
[INFO] [stderr] 33  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x7 => { $this.subn(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:34:16
[INFO] [stderr]     |
[INFO] [stderr] 34  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0xE => { $this.shl(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:35:16
[INFO] [stderr]     |
[INFO] [stderr] 35  |             op @ 0x9000 ... 0x9FFF if (op & 0x000F) == 0x0 => { $this.sne_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:36:16
[INFO] [stderr]     |
[INFO] [stderr] 36  |             op @ 0xA000 ... 0xAFFF => { $this.ldi(op & 0x0FFF)},
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:37:16
[INFO] [stderr]     |
[INFO] [stderr] 37  |             op @ 0xB000 ... 0xBFFF => { $this.jp_v0(op & 0x0FFF)},
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:38:16
[INFO] [stderr]     |
[INFO] [stderr] 38  |             op @ 0xC000 ... 0xCFFF => { $this.rnd(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:39:16
[INFO] [stderr]     |
[INFO] [stderr] 39  |             op @ 0xD000 ... 0xDFFF => { $this.drw(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8, (op & 0x000F) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:43:16
[INFO] [stderr]     |
[INFO] [stderr] 43  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x0A => { $this.ld_k_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:44:16
[INFO] [stderr]     |
[INFO] [stderr] 44  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x15 => { $this.ld_vx_into_dt(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:40:16
[INFO] [stderr]     |
[INFO] [stderr] 40  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0x9E => { $this.skp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:41:16
[INFO] [stderr]     |
[INFO] [stderr] 41  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0xA1 => { $this.sknp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:45:16
[INFO] [stderr]     |
[INFO] [stderr] 45  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x18 => { $this.ld_vx_into_st(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:42:16
[INFO] [stderr]     |
[INFO] [stderr] 42  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x07 => { $this.ld_dt_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:46:16
[INFO] [stderr]     |
[INFO] [stderr] 46  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x1E => { $this.add_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:43:16
[INFO] [stderr]     |
[INFO] [stderr] 43  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x0A => { $this.ld_k_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:47:16
[INFO] [stderr]     |
[INFO] [stderr] 47  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x29 => { $this.ld_vx_digit_into_f(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:44:16
[INFO] [stderr]     |
[INFO] [stderr] 44  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x15 => { $this.ld_vx_into_dt(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:48:16
[INFO] [stderr]     |
[INFO] [stderr] 48  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x33 => { $this.ld_vx_into_bcd(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:49:16
[INFO] [stderr]     |
[INFO] [stderr] 49  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x55 => { $this.ld_v0_to_vx_into_i(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:45:16
[INFO] [stderr]     |
[INFO] [stderr] 45  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x18 => { $this.ld_vx_into_st(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:50:16
[INFO] [stderr]     |
[INFO] [stderr] 50  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x65 => { $this.ld_i_into_v0_to_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:46:16
[INFO] [stderr]     |
[INFO] [stderr] 46  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x1E => { $this.add_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/rom.rs:22:28
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub fn new(readable: &mut Read, filename: String) -> Result<Rom, io::Error>
[INFO] [stderr]    |                               ^^^^ help: use `dyn`: `dyn Read`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/cpu.rs:12:15
[INFO] [stderr]    |
[INFO] [stderr] 12 |     ram: &'a mut Memory,
[INFO] [stderr]    |                  ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:47:16
[INFO] [stderr]     |
[INFO] [stderr] 47  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x29 => { $this.ld_vx_digit_into_f(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:18:16
[INFO] [stderr]     |
[INFO] [stderr] 18  |             op @ 0x0000 ... 0x0FFF => { $this.sys(op & 0xFFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:48:16
[INFO] [stderr]     |
[INFO] [stderr] 48  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x33 => { $this.ld_vx_into_bcd(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:19:16
[INFO] [stderr]     |
[INFO] [stderr] 19  |             op @ 0x1000 ... 0x1FFF => { $this.jp(op & 0x0FFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:49:16
[INFO] [stderr]     |
[INFO] [stderr] 49  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x55 => { $this.ld_v0_to_vx_into_i(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:20:16
[INFO] [stderr]     |
[INFO] [stderr] 20  |             op @ 0x2000 ... 0x2FFF => { $this.call(op & 0x0FFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:50:16
[INFO] [stderr]     |
[INFO] [stderr] 50  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x65 => { $this.ld_i_into_v0_to_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/cpu.rs:407:30
[INFO] [stderr]     |
[INFO] [stderr] 407 |     pub fn new<'b>(ram: &'b mut Memory, input: &'b I) -> Cpu<'b, I>
[INFO] [stderr]     |                                 ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:21:16
[INFO] [stderr]     |
[INFO] [stderr] 21  |             op @ 0x3000 ... 0x3FFF => { $this.se(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/lib.rs:30:6
[INFO] [stderr]    |
[INFO] [stderr] 30 |     let mut ram = &mut Ram::new_from_rom(&rom);
[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: 80 warnings emitted
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:22:16
[INFO] [stderr]     |
[INFO] [stderr] 22  |             op @ 0x4000 ... 0x4FFF => { $this.sne(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:23:16
[INFO] [stderr]     |
[INFO] [stderr] 23  |             op @ 0x5000 ... 0x5FFF => { $this.se_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:24:16
[INFO] [stderr]     |
[INFO] [stderr] 24  |             op @ 0x6000 ... 0x6FFF => { $this.ldx(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:25:16
[INFO] [stderr]     |
[INFO] [stderr] 25  |             op @ 0x7000 ... 0x7FFF => { $this.add_byte(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:26:16
[INFO] [stderr]     |
[INFO] [stderr] 26  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x0 => { $this.ld(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:27:16
[INFO] [stderr]     |
[INFO] [stderr] 27  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x1 => { $this.or(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:28:16
[INFO] [stderr]     |
[INFO] [stderr] 28  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x2 => { $this.and(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:29:16
[INFO] [stderr]     |
[INFO] [stderr] 29  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x3 => { $this.xor(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:30:16
[INFO] [stderr]     |
[INFO] [stderr] 30  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x4 => { $this.add_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:31:16
[INFO] [stderr]     |
[INFO] [stderr] 31  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x5 => { $this.sub(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:32:16
[INFO] [stderr]     |
[INFO] [stderr] 32  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x6 => { $this.shr(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:33:16
[INFO] [stderr]     |
[INFO] [stderr] 33  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x7 => { $this.subn(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:34:16
[INFO] [stderr]     |
[INFO] [stderr] 34  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0xE => { $this.shl(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:35:16
[INFO] [stderr]     |
[INFO] [stderr] 35  |             op @ 0x9000 ... 0x9FFF if (op & 0x000F) == 0x0 => { $this.sne_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:36:16
[INFO] [stderr]     |
[INFO] [stderr] 36  |             op @ 0xA000 ... 0xAFFF => { $this.ldi(op & 0x0FFF)},
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:37:16
[INFO] [stderr]     |
[INFO] [stderr] 37  |             op @ 0xB000 ... 0xBFFF => { $this.jp_v0(op & 0x0FFF)},
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:38:16
[INFO] [stderr]     |
[INFO] [stderr] 38  |             op @ 0xC000 ... 0xCFFF => { $this.rnd(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:39:16
[INFO] [stderr]     |
[INFO] [stderr] 39  |             op @ 0xD000 ... 0xDFFF => { $this.drw(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8, (op & 0x000F) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:40:16
[INFO] [stderr]     |
[INFO] [stderr] 40  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0x9E => { $this.skp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:41:16
[INFO] [stderr]     |
[INFO] [stderr] 41  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0xA1 => { $this.sknp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:42:16
[INFO] [stderr]     |
[INFO] [stderr] 42  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x07 => { $this.ld_dt_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:43:16
[INFO] [stderr]     |
[INFO] [stderr] 43  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x0A => { $this.ld_k_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:44:16
[INFO] [stderr]     |
[INFO] [stderr] 44  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x15 => { $this.ld_vx_into_dt(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:45:16
[INFO] [stderr]     |
[INFO] [stderr] 45  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x18 => { $this.ld_vx_into_st(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:46:16
[INFO] [stderr]     |
[INFO] [stderr] 46  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x1E => { $this.add_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:47:16
[INFO] [stderr]     |
[INFO] [stderr] 47  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x29 => { $this.ld_vx_digit_into_f(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:48:16
[INFO] [stderr]     |
[INFO] [stderr] 48  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x33 => { $this.ld_vx_into_bcd(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:49:16
[INFO] [stderr]     |
[INFO] [stderr] 49  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x55 => { $this.ld_v0_to_vx_into_i(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/disassembler.rs:50:16
[INFO] [stderr]     |
[INFO] [stderr] 50  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x65 => { $this.ld_i_into_v0_to_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/cpu.rs:407:30
[INFO] [stderr]     |
[INFO] [stderr] 407 |     pub fn new<'b>(ram: &'b mut Memory, input: &'b I) -> Cpu<'b, I>
[INFO] [stderr]     |                                 ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/lib.rs:30:6
[INFO] [stderr]    |
[INFO] [stderr] 30 |     let mut ram = &mut Ram::new_from_rom(&rom);
[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: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:460:6
[INFO] [stderr]     |
[INFO] [stderr] 460 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:488:6
[INFO] [stderr]     |
[INFO] [stderr] 488 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:499:6
[INFO] [stderr]     |
[INFO] [stderr] 499 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:515:6
[INFO] [stderr]     |
[INFO] [stderr] 515 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:544:6
[INFO] [stderr]     |
[INFO] [stderr] 544 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:557:6
[INFO] [stderr]     |
[INFO] [stderr] 557 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:574:6
[INFO] [stderr]     |
[INFO] [stderr] 574 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:591:6
[INFO] [stderr]     |
[INFO] [stderr] 591 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:614:6
[INFO] [stderr]     |
[INFO] [stderr] 614 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:633:6
[INFO] [stderr]     |
[INFO] [stderr] 633 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:646:6
[INFO] [stderr]     |
[INFO] [stderr] 646 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:666:6
[INFO] [stderr]     |
[INFO] [stderr] 666 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:681:6
[INFO] [stderr]     |
[INFO] [stderr] 681 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:696:6
[INFO] [stderr]     |
[INFO] [stderr] 696 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:711:6
[INFO] [stderr]     |
[INFO] [stderr] 711 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:728:6
[INFO] [stderr]     |
[INFO] [stderr] 728 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:745:6
[INFO] [stderr]     |
[INFO] [stderr] 745 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:762:6
[INFO] [stderr]     |
[INFO] [stderr] 762 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:779:6
[INFO] [stderr]     |
[INFO] [stderr] 779 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:806:6
[INFO] [stderr]     |
[INFO] [stderr] 806 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:823:6
[INFO] [stderr]     |
[INFO] [stderr] 823 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:840:6
[INFO] [stderr]     |
[INFO] [stderr] 840 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:867:6
[INFO] [stderr]     |
[INFO] [stderr] 867 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:890:6
[INFO] [stderr]     |
[INFO] [stderr] 890 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:905:6
[INFO] [stderr]     |
[INFO] [stderr] 905 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:918:6
[INFO] [stderr]     |
[INFO] [stderr] 918 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:940:6
[INFO] [stderr]     |
[INFO] [stderr] 940 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:966:6
[INFO] [stderr]     |
[INFO] [stderr] 966 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/cpu.rs:992:6
[INFO] [stderr]     |
[INFO] [stderr] 992 |     let mut ram = &mut Ram::new();
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/cpu.rs:1011:6
[INFO] [stderr]      |
[INFO] [stderr] 1011 |     let mut ram = &mut Ram::new();
[INFO] [stderr]      |         ----^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/cpu.rs:1026:6
[INFO] [stderr]      |
[INFO] [stderr] 1026 |     let mut ram = &mut Ram::new();
[INFO] [stderr]      |         ----^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/cpu.rs:1045:6
[INFO] [stderr]      |
[INFO] [stderr] 1045 |     let mut ram = &mut Ram::new();
[INFO] [stderr]      |         ----^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/cpu.rs:1064:6
[INFO] [stderr]      |
[INFO] [stderr] 1064 |     let mut ram = &mut Ram::new();
[INFO] [stderr]      |         ----^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/cpu.rs:1084:6
[INFO] [stderr]      |
[INFO] [stderr] 1084 |     let mut ram = &mut Ram::new();
[INFO] [stderr]      |         ----^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/cpu.rs:1105:6
[INFO] [stderr]      |
[INFO] [stderr] 1105 |     let mut ram = &mut Ram::new();
[INFO] [stderr]      |         ----^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/cpu.rs:1124:6
[INFO] [stderr]      |
[INFO] [stderr] 1124 |     let mut ram = &mut Ram::new();
[INFO] [stderr]      |         ----^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/cpu.rs:1148:6
[INFO] [stderr]      |
[INFO] [stderr] 1148 |     let mut ram = &mut Ram::new();
[INFO] [stderr]      |         ----^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/cpu.rs:1168:6
[INFO] [stderr]      |
[INFO] [stderr] 1168 |     let mut ram = &mut Ram::new();
[INFO] [stderr]      |         ----^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/cpu.rs:1188:6
[INFO] [stderr]      |
[INFO] [stderr] 1188 |     let mut ram = &mut Ram::new();
[INFO] [stderr]      |         ----^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/cpu.rs:1209:6
[INFO] [stderr]      |
[INFO] [stderr] 1209 |     let mut ram = &mut Ram::new();
[INFO] [stderr]      |         ----^^^
[INFO] [stderr]      |         |
[INFO] [stderr]      |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: 120 warnings emitted
[INFO] [stderr] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/chip8-d4b338f579cf275e
[INFO] [stdout] 
[INFO] [stdout] running 40 tests
[INFO] [stdout] test cpu::test_and ... ok
[INFO] [stdout] test cpu::test_ld ... ok
[INFO] [stdout] test cpu::test_ld_i_into_v0_to_vx_terminates_properly ... ok
[INFO] [stdout] test cpu::test_call ... ok
[INFO] [stdout] test cpu::test_dt_into_vx ... ok
[INFO] [stdout] test cpu::test_jp ... ok
[INFO] [stdout] test cpu::test_add_vx ... ok
[INFO] [stdout] test cpu::test_ld_v0_to_vx_into_i_terminates_properly ... ok
[INFO] [stdout] test cpu::test_add_reg ... ok
[INFO] [stdout] test cpu::test_ld_i_into_v0_to_vx ... ok
[INFO] [stdout] test cpu::test_or ... ok
[INFO] [stdout] test cpu::test_jp_v0 ... ok
[INFO] [stdout] test cpu::test_add_byte ... ok
[INFO] [stdout] test cpu::test_ld_v0_to_vx_into_i ... ok
[INFO] [stdout] test cpu::test_rnd ... ok
[INFO] [stdout] test cpu::test_ld_k_into_vx ... ok
[INFO] [stdout] test cpu::test_ld_vx_into_bcd ... ok
[INFO] [stdout] test cpu::test_add_reg_overflows ... ok
[INFO] [stdout] test cpu::test_ld_vx_into_bc_with_smaller_numbers ... ok
[INFO] [stdout] test cpu::test_ld_vx_into_dt ... ok
[INFO] [stdout] test cpu::test_ldx ... ok
[INFO] [stdout] test cpu::test_ld_vx_digit_into_f ... ok
[INFO] [stdout] test cpu::test_ret ... ok
[INFO] [stdout] test cpu::test_shl ... ok
[INFO] [stdout] test cpu::test_sknp ... ok
[INFO] [stdout] test cpu::test_ld_vx_into_st ... ok
[INFO] [stdout] test cpu::test_subn ... ok
[INFO] [stdout] test cpu::test_se ... ok
[INFO] [stdout] test cpu::test_ldi ... ok
[INFO] [stdout] test cpu::test_shr ... ok
[INFO] [stdout] test cpu::test_se_reg ... ok
[INFO] [stdout] test cpu::test_skp ... ok
[INFO] [stdout] test cpu::test_sub_borrow ... ok
[INFO] [stdout] test cpu::test_xor ... ok
[INFO] [stdout] test cpu::test_sne ... ok
[INFO] [stdout] test cpu::test_sub ... ok
[INFO] [stdout] test cpu::test_subn_borrow ... ok
[INFO] [stdout] test cpu::test_sne_reg ... ok
[INFO] [stdout] test cpu::test_call_overflows ... ok
[INFO] [stdout] test cpu::test_ret_panics_with_empty_stack ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
[INFO] [stdout] 
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/chit8-8b8b443f62462288
[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
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests chip8
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:18:16
[INFO] [stderr]     |
[INFO] [stderr] 18  |             op @ 0x0000 ... 0x0FFF => { $this.sys(op & 0xFFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:19:16
[INFO] [stderr]     |
[INFO] [stderr] 19  |             op @ 0x1000 ... 0x1FFF => { $this.jp(op & 0x0FFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:20:16
[INFO] [stderr]     |
[INFO] [stderr] 20  |             op @ 0x2000 ... 0x2FFF => { $this.call(op & 0x0FFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:21:16
[INFO] [stderr]     |
[INFO] [stderr] 21  |             op @ 0x3000 ... 0x3FFF => { $this.se(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:22:16
[INFO] [stderr]     |
[INFO] [stderr] 22  |             op @ 0x4000 ... 0x4FFF => { $this.sne(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:23:16
[INFO] [stderr]     |
[INFO] [stderr] 23  |             op @ 0x5000 ... 0x5FFF => { $this.se_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:24:16
[INFO] [stderr]     |
[INFO] [stderr] 24  |             op @ 0x6000 ... 0x6FFF => { $this.ldx(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:25:16
[INFO] [stderr]     |
[INFO] [stderr] 25  |             op @ 0x7000 ... 0x7FFF => { $this.add_byte(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:26:16
[INFO] [stderr]     |
[INFO] [stderr] 26  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x0 => { $this.ld(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:27:16
[INFO] [stderr]     |
[INFO] [stderr] 27  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x1 => { $this.or(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:28:16
[INFO] [stderr]     |
[INFO] [stderr] 28  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x2 => { $this.and(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:29:16
[INFO] [stderr]     |
[INFO] [stderr] 29  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x3 => { $this.xor(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:30:16
[INFO] [stderr]     |
[INFO] [stderr] 30  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x4 => { $this.add_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:31:16
[INFO] [stderr]     |
[INFO] [stderr] 31  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x5 => { $this.sub(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:32:16
[INFO] [stderr]     |
[INFO] [stderr] 32  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x6 => { $this.shr(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:33:16
[INFO] [stderr]     |
[INFO] [stderr] 33  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x7 => { $this.subn(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:34:16
[INFO] [stderr]     |
[INFO] [stderr] 34  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0xE => { $this.shl(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:35:16
[INFO] [stderr]     |
[INFO] [stderr] 35  |             op @ 0x9000 ... 0x9FFF if (op & 0x000F) == 0x0 => { $this.sne_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:36:16
[INFO] [stderr]     |
[INFO] [stderr] 36  |             op @ 0xA000 ... 0xAFFF => { $this.ldi(op & 0x0FFF)},
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:37:16
[INFO] [stderr]     |
[INFO] [stderr] 37  |             op @ 0xB000 ... 0xBFFF => { $this.jp_v0(op & 0x0FFF)},
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:38:16
[INFO] [stderr]     |
[INFO] [stderr] 38  |             op @ 0xC000 ... 0xCFFF => { $this.rnd(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:39:16
[INFO] [stderr]     |
[INFO] [stderr] 39  |             op @ 0xD000 ... 0xDFFF => { $this.drw(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8, (op & 0x000F) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:40:16
[INFO] [stderr]     |
[INFO] [stderr] 40  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0x9E => { $this.skp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:41:16
[INFO] [stderr]     |
[INFO] [stderr] 41  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0xA1 => { $this.sknp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:42:16
[INFO] [stderr]     |
[INFO] [stderr] 42  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x07 => { $this.ld_dt_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:43:16
[INFO] [stderr]     |
[INFO] [stderr] 43  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x0A => { $this.ld_k_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:44:16
[INFO] [stderr]     |
[INFO] [stderr] 44  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x15 => { $this.ld_vx_into_dt(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:45:16
[INFO] [stderr]     |
[INFO] [stderr] 45  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x18 => { $this.ld_vx_into_st(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:46:16
[INFO] [stderr]     |
[INFO] [stderr] 46  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x1E => { $this.add_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:47:16
[INFO] [stderr]     |
[INFO] [stderr] 47  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x29 => { $this.ld_vx_digit_into_f(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:48:16
[INFO] [stderr]     |
[INFO] [stderr] 48  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x33 => { $this.ld_vx_into_bcd(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:49:16
[INFO] [stderr]     |
[INFO] [stderr] 49  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x55 => { $this.ld_v0_to_vx_into_i(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:50:16
[INFO] [stderr]     |
[INFO] [stderr] 50  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x65 => { $this.ld_i_into_v0_to_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] ...
[INFO] [stderr] 317 |             println!("{:#X}: (0x{:0>4X}) {}", op.0, op.1, decode_opcode!(op.1, self));
[INFO] [stderr]     |                                                           -------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:18:16
[INFO] [stderr]     |
[INFO] [stderr] 18  |             op @ 0x0000 ... 0x0FFF => { $this.sys(op & 0xFFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:19:16
[INFO] [stderr]     |
[INFO] [stderr] 19  |             op @ 0x1000 ... 0x1FFF => { $this.jp(op & 0x0FFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:20:16
[INFO] [stderr]     |
[INFO] [stderr] 20  |             op @ 0x2000 ... 0x2FFF => { $this.call(op & 0x0FFF) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:21:16
[INFO] [stderr]     |
[INFO] [stderr] 21  |             op @ 0x3000 ... 0x3FFF => { $this.se(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:22:16
[INFO] [stderr]     |
[INFO] [stderr] 22  |             op @ 0x4000 ... 0x4FFF => { $this.sne(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:23:16
[INFO] [stderr]     |
[INFO] [stderr] 23  |             op @ 0x5000 ... 0x5FFF => { $this.se_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:24:16
[INFO] [stderr]     |
[INFO] [stderr] 24  |             op @ 0x6000 ... 0x6FFF => { $this.ldx(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:25:16
[INFO] [stderr]     |
[INFO] [stderr] 25  |             op @ 0x7000 ... 0x7FFF => { $this.add_byte(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:26:16
[INFO] [stderr]     |
[INFO] [stderr] 26  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x0 => { $this.ld(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:27:16
[INFO] [stderr]     |
[INFO] [stderr] 27  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x1 => { $this.or(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:28:16
[INFO] [stderr]     |
[INFO] [stderr] 28  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x2 => { $this.and(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:29:16
[INFO] [stderr]     |
[INFO] [stderr] 29  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x3 => { $this.xor(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:30:16
[INFO] [stderr]     |
[INFO] [stderr] 30  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x4 => { $this.add_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:31:16
[INFO] [stderr]     |
[INFO] [stderr] 31  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x5 => { $this.sub(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:32:16
[INFO] [stderr]     |
[INFO] [stderr] 32  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x6 => { $this.shr(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:33:16
[INFO] [stderr]     |
[INFO] [stderr] 33  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0x7 => { $this.subn(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:34:16
[INFO] [stderr]     |
[INFO] [stderr] 34  |             op @ 0x8000 ... 0x8FFF if (op & 0x000F) == 0xE => { $this.shl(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:35:16
[INFO] [stderr]     |
[INFO] [stderr] 35  |             op @ 0x9000 ... 0x9FFF if (op & 0x000F) == 0x0 => { $this.sne_reg(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:36:16
[INFO] [stderr]     |
[INFO] [stderr] 36  |             op @ 0xA000 ... 0xAFFF => { $this.ldi(op & 0x0FFF)},
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:37:16
[INFO] [stderr]     |
[INFO] [stderr] 37  |             op @ 0xB000 ... 0xBFFF => { $this.jp_v0(op & 0x0FFF)},
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:38:16
[INFO] [stderr]     |
[INFO] [stderr] 38  |             op @ 0xC000 ... 0xCFFF => { $this.rnd(((op & 0x0F00) >> 8) as u8, (op & 0x00FF) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:39:16
[INFO] [stderr]     |
[INFO] [stderr] 39  |             op @ 0xD000 ... 0xDFFF => { $this.drw(((op & 0x0F00) >> 8) as u8, ((op & 0x00F0) >> 4) as u8, (op & 0x000F) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:40:16
[INFO] [stderr]     |
[INFO] [stderr] 40  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0x9E => { $this.skp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:41:16
[INFO] [stderr]     |
[INFO] [stderr] 41  |             op @ 0xE000 ... 0xEFFF if (op & 0x00FF) == 0xA1 => { $this.sknp(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:42:16
[INFO] [stderr]     |
[INFO] [stderr] 42  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x07 => { $this.ld_dt_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:43:16
[INFO] [stderr]     |
[INFO] [stderr] 43  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x0A => { $this.ld_k_into_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:44:16
[INFO] [stderr]     |
[INFO] [stderr] 44  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x15 => { $this.ld_vx_into_dt(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:45:16
[INFO] [stderr]     |
[INFO] [stderr] 45  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x18 => { $this.ld_vx_into_st(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:46:16
[INFO] [stderr]     |
[INFO] [stderr] 46  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x1E => { $this.add_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:47:16
[INFO] [stderr]     |
[INFO] [stderr] 47  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x29 => { $this.ld_vx_digit_into_f(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:48:16
[INFO] [stderr]     |
[INFO] [stderr] 48  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x33 => { $this.ld_vx_into_bcd(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:49:16
[INFO] [stderr]     |
[INFO] [stderr] 49  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x55 => { $this.ld_v0_to_vx_into_i(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> /opt/rustwide/workdir/src/disassembler.rs:50:16
[INFO] [stderr]     |
[INFO] [stderr] 50  |             op @ 0xF000 ... 0xFFFF if (op & 0x00FF) == 0x65 => { $this.ld_i_into_v0_to_vx(((op & 0x0F00) >> 8) as u8) },
[INFO] [stderr]     |                         ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     | 
[INFO] [stderr]    ::: /opt/rustwide/workdir/src/cpu.rs:403:9
[INFO] [stderr]     |
[INFO] [stderr] 403 |         decode_opcode!(op, self);
[INFO] [stderr]     |         ------------------------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: 66 warnings emitted
[INFO] [stderr] 
[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
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "8d590f059ee7503f37eae52b9da63b0be6b969b375902e98a3dd4cd1b165bf2e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8d590f059ee7503f37eae52b9da63b0be6b969b375902e98a3dd4cd1b165bf2e", kill_on_drop: false }`
[INFO] [stdout] 8d590f059ee7503f37eae52b9da63b0be6b969b375902e98a3dd4cd1b165bf2e
