[INFO] updating cached repository https://github.com/murphm8/zaty
[INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"`
[INFO] running `"git" "rev-parse" "HEAD"`
[INFO] [stdout] 628805e3596548d5980150b3590ee7cdbc4ef310
[INFO] checking murphm8/zaty against master#bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc for pr-70917
[INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmurphm8%2Fzaty" "/workspace/builds/worker-5/source"`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/murphm8/zaty on toolchain bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "read-manifest" "--manifest-path" "Cargo.toml"`
[INFO] started tweaking git repo https://github.com/murphm8/zaty
[INFO] finished tweaking git repo https://github.com/murphm8/zaty
[INFO] tweaked toml for git repo https://github.com/murphm8/zaty written to /workspace/builds/worker-5/source/Cargo.toml
[INFO] crate git repo https://github.com/murphm8/zaty already has a lockfile, it will not be regenerated
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] [stderr] error: the lock file /workspace/builds/worker-5/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 `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"`
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stdout] ae9475efc40a7b67e579a9971828624dcb42190f15ae71711cb4ec4bd34458c2
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `"docker" "start" "-a" "ae9475efc40a7b67e579a9971828624dcb42190f15ae71711cb4ec4bd34458c2"`
[INFO] [stderr]     Checking num-integer v0.1.42
[INFO] [stderr]     Checking num-complex v0.2.4
[INFO] [stderr]     Checking num-bigint v0.2.6
[INFO] [stderr]     Checking num-iter v0.1.40
[INFO] [stderr]     Checking num-rational v0.2.4
[INFO] [stderr]     Checking num v0.2.1
[INFO] [stderr]     Checking zaty v0.0.1 (/opt/rustwide/workdir)
[INFO] [stderr] error[E0557]: feature has been removed
[INFO] [stderr]  --> src/main.rs:2:12
[INFO] [stderr]   |
[INFO] [stderr] 2 | #![feature(negate_unsigned)]
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^ feature has been removed
[INFO] [stderr] 
[INFO] [stderr] error[E0557]: feature has been removed
[INFO] [stderr]  --> src/main.rs:2:12
[INFO] [stderr]   |
[INFO] [stderr] 2 | #![feature(negate_unsigned)]
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^ feature has been removed
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `Memory`, `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]  --> src/ops/mod.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^  ^^^^^^  ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/mod.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CarryFlag`, `Flags`, `HalfCarryFlag`, `Register`, `SubtractFlag`, `ZeroFlag`
[INFO] [stderr]  --> src/ops/mod.rs:3:11
[INFO] [stderr]   |
[INFO] [stderr] 3 | use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]   |           ^^^^^^^^  ^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EmptyMemory`
[INFO] [stderr]  --> src/ops/add.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/add.rs:47:35
[INFO] [stderr]    |
[INFO] [stderr] 47 | pub fn add_value_at_address(mem: &Memory, reg: &mut Register<u8>, hb: u8, lb: u8, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                   ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/add.rs:56:35
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub fn adc_value_at_address(mem: &Memory, reg: &mut Register<u8>, address: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                   ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/add.rs:61:31
[INFO] [stderr]    |
[INFO] [stderr] 61 | pub fn add_u8_immediate(mem: &Memory, pc: &mut Register<u16>, reg: &mut Register<u8>, freg: &mut Register<Flags>, with_carry: bool) {
[INFO] [stderr]    |                               ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/add.rs:120:45
[INFO] [stderr]     |
[INFO] [stderr] 120 | pub fn increment_value_at_address(mem: &mut Memory, hb: u8, lb: u8, freg: &mut Register<Flags>) {
[INFO] [stderr]     |                                             ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]  --> src/ops/boolean.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^          ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/boolean.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `CarryFlag`
[INFO] [stderr]  --> src/ops/boolean.rs:3:28
[INFO] [stderr]   |
[INFO] [stderr] 3 | use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]   |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/boolean.rs:31:35
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub fn and_value_at_address(mem: &Memory, reg: &mut Register<u8>, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                   ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/boolean.rs:36:35
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub fn xor_value_at_address(mem: &Memory, reg: &mut Register<u8>, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                   ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/boolean.rs:55:34
[INFO] [stderr]    |
[INFO] [stderr] 55 | pub fn or_value_at_address(mem: &Memory, reg: &mut Register<u8>, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                  ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]  --> src/ops/jp.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^          ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CarryFlag`, `Flags`, `HalfCarryFlag`, `SubtractFlag`, `ZeroFlag`
[INFO] [stderr]  --> src/ops/jp.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]   |                     ^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/ops/jp.rs:7:39
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn jump_by_signed_immediate(mem: &Memory, pc: &mut Register<u16>) {
[INFO] [stderr]   |                                       ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/jp.rs:22:55
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub fn relative_jmp_by_signed_immediate_if_true(mem: &Memory, pc: &mut Register<u16>, should_jump: bool) {
[INFO] [stderr]    |                                                       ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/jp.rs:30:31
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub fn jp_u16_immediate(mem: &Memory, pc: &mut Register<u16>) {
[INFO] [stderr]    |                               ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/jp.rs:36:39
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub fn jp_u16_immediate_if_true(mem: &Memory,pc: &mut Register<u16>, should_jump: bool) {
[INFO] [stderr]    |                                       ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `high_nibble`, `low_nibble`
[INFO] [stderr]  --> src/ops/ld.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^                                         ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/ld.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CarryFlag`, `Flags`, `HalfCarryFlag`, `SubtractFlag`, `ZeroFlag`
[INFO] [stderr]  --> src/ops/ld.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]   |                     ^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:15:30
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub fn ld_u8_immediate(mem: &Memory, pc: &mut Register<u16>, reg: &mut Register<u8>) {
[INFO] [stderr]    |                              ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:22:31
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub fn ld_u16_immediate(mem: &Memory, pc: &mut Register<u16>,
[INFO] [stderr]    |                               ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:30:30
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub fn ld_from_address(mem: &Memory, reg: &mut Register<u8>, addr: u16) {
[INFO] [stderr]    |                              ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:35:74
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub fn write_value_to_memory_at_address_and_increment_register(mem: &mut Memory, val: u8, high_reg: &mut Register<u8>, low_reg: &mut Register<u8>) {
[INFO] [stderr]    |                                                                          ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:43:74
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub fn write_value_to_memory_at_address_and_decrement_register(mem: &mut Memory, val: u8, high_reg: &mut Register<u8>, low_reg: &mut Register<u8>) {
[INFO] [stderr]    |                                                                          ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:51:86
[INFO] [stderr]    |
[INFO] [stderr] 51 | pub fn ld_from_address_pointed_to_by_register_pair_and_increment_register_pair(mem: &Memory, reg: &mut Register<u8>, high_byte: &mut Register<u8>, low_byte: &mut Register<u8>) {
[INFO] [stderr]    |                                                                                      ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:60:47
[INFO] [stderr]    |
[INFO] [stderr] 60 | pub fn ld_u8_immediate_into_address(mem: &mut Memory, pc: &mut Register<u16>, hb: u8, lb: u8) {
[INFO] [stderr]    |                                               ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:66:86
[INFO] [stderr]    |
[INFO] [stderr] 66 | pub fn ld_from_address_pointed_to_by_register_pair_and_decrement_register_pair(mem: &Memory, reg: &mut Register<u8>, high_byte: &mut Register<u8>, low_byte: &mut Register<u8>) {
[INFO] [stderr]    |                                                                                      ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:76:41
[INFO] [stderr]    |
[INFO] [stderr] 76 | pub fn ld_next_two_bytes_into_reg(mem: &Memory, pc: &mut Register<u16>, reg: &mut Register<u16>) {
[INFO] [stderr]    |                                         ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:82:43
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub fn load_val_FF00_plus_immediate(mem: &Memory, pc: &mut Register<u16>, reg: &mut Register<u8>) {
[INFO] [stderr]    |                                           ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:90:47
[INFO] [stderr]    |
[INFO] [stderr] 90 | pub fn write_value_to_u16_immediate(mem: &mut Memory, pc: &mut Register<u16>, val: u8) {
[INFO] [stderr]    |                                               ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:96:48
[INFO] [stderr]    |
[INFO] [stderr] 96 | pub fn write_val_FF00_plus_immediate(mem: &mut Memory, pc: &mut Register<u16>, val: u8) {
[INFO] [stderr]    |                                                ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/ld.rs:104:46
[INFO] [stderr]     |
[INFO] [stderr] 104 | pub fn write_u16_immediate_address(mem: &mut Memory, pc: &mut Register<u16>, val: u16){
[INFO] [stderr]     |                                              ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/ld.rs:117:51
[INFO] [stderr]     |
[INFO] [stderr] 117 | pub fn write_value_to_memory_at_address(mem: &mut Memory, val: u8, addr_msb: u8, addr_lsb: u8) {
[INFO] [stderr]     |                                                   ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]  --> src/ops/shift.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^          ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/shift.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `HalfCarryFlag`, `SubtractFlag`
[INFO] [stderr]  --> src/ops/shift.rs:3:39
[INFO] [stderr]   |
[INFO] [stderr] 3 | use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]   |                                       ^^^^^^^^^^^^^            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/shift.rs:40:33
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub fn srl_at_address(mem: &mut Memory, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                 ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/shift.rs:52:33
[INFO] [stderr]    |
[INFO] [stderr] 52 | pub fn sla_at_address(mem: &mut Memory, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                 ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/shift.rs:79:33
[INFO] [stderr]    |
[INFO] [stderr] 79 | pub fn sra_at_address(mem: &mut Memory, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                 ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `pack_u16`
[INFO] [stderr]  --> src/ops/special.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/special.rs:24:23
[INFO] [stderr]    |
[INFO] [stderr] 24 | fn pop_internal(mem: &Memory, sp: &mut Register<u16>) -> u16 {
[INFO] [stderr]    |                       ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/special.rs:31:18
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub fn pop(mem: &Memory, sp: &mut Register<u16>, hb: &mut Register<u8>, lb: &mut Register<u8>) {
[INFO] [stderr]    |                  ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/special.rs:38:18
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub fn ret(mem: &Memory, pc: &mut Register<u16>, sp: &mut Register<u16>, should_execute: bool) {
[INFO] [stderr]    |                  ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/special.rs:46:23
[INFO] [stderr]    |
[INFO] [stderr] 46 | pub fn push(mem: &mut Memory, sp: &mut Register<u16>, val: u16) {
[INFO] [stderr]    |                       ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/special.rs:53:41
[INFO] [stderr]    |
[INFO] [stderr] 53 | pub fn call_immediate_if_true(mem: &mut Memory, pc: &mut Register<u16>, sp: &mut Register<u16>, should_jump: bool) {
[INFO] [stderr]    |                                         ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/special.rs:63:23
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub fn call(mem: &mut Memory, pc: &mut Register<u16>, sp: &mut Register<u16>, addr: u16) {
[INFO] [stderr]    |                       ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/special.rs:68:19
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub fn reti(mem: &Memory, pc: &mut Register<u16>, sp: &mut Register<u16>, ime: &mut bool) {
[INFO] [stderr]    |                   ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/special.rs:91:30
[INFO] [stderr]    |
[INFO] [stderr] 91 | pub fn byte_at_address(mem: &Memory, addr: u16) -> u8 {
[INFO] [stderr]    |                              ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/special.rs:102:30
[INFO] [stderr]     |
[INFO] [stderr] 102 | pub fn res_at_addr(mem: &mut Memory, address: u16, pos: u8) {
[INFO] [stderr]     |                              ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/special.rs:116:30
[INFO] [stderr]     |
[INFO] [stderr] 116 | pub fn set_at_addr(mem: &mut Memory, address: u16, pos: u8) {
[INFO] [stderr]     |                              ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/special.rs:139:34
[INFO] [stderr]     |
[INFO] [stderr] 139 | pub fn swap_at_address(mem: &mut Memory, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]     |                                  ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/special.rs:149:24
[INFO] [stderr]     |
[INFO] [stderr] 149 | pub fn pop_flags(mem: &Memory, sp: &mut Register<u16>, a: &mut Register<u8>, f: &mut Register<Flags>) {
[INFO] [stderr]     |                        ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `high_nibble`
[INFO] [stderr]  --> src/ops/sub.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^                                                     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/sub.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/sub.rs:10:31
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub fn sub_u8_immediate(mem: &Memory, pc: &mut Register<u16>, reg: &mut Register<u8>, freg: &mut Register<Flags>, with_carry: bool) {
[INFO] [stderr]    |                               ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/sub.rs:55:35
[INFO] [stderr]    |
[INFO] [stderr] 55 | pub fn sub_value_at_address(mem: &Memory, reg: &mut Register<u8>, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                   ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/sub.rs:60:35
[INFO] [stderr]    |
[INFO] [stderr] 60 | pub fn sbc_value_at_address(mem: &Memory, reg: &mut Register<u8>, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                   ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/sub.rs:70:39
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub fn compare_value_at_address(mem: &Memory, reg: &mut Register<u8>, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                       ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/sub.rs:87:45
[INFO] [stderr]    |
[INFO] [stderr] 87 | pub fn decrement_value_at_address(mem: &mut Memory, hb: u8, lb: u8, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                             ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]  --> src/ops/rotate.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^          ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/rotate.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `HalfCarryFlag`, `SubtractFlag`
[INFO] [stderr]  --> src/ops/rotate.rs:3:39
[INFO] [stderr]   |
[INFO] [stderr] 3 | use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]   |                                       ^^^^^^^^^^^^^            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/rotate.rs:18:41
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub fn rotate_left_at_address(mem: &mut Memory, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                         ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/rotate.rs:71:42
[INFO] [stderr]    |
[INFO] [stderr] 71 | pub fn rotate_right_at_address(mem: &mut Memory, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                          ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/ops/rotate.rs:103:18
[INFO] [stderr]     |
[INFO] [stderr] 103 |     let result = ((val >> 1) | bit_1);
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/rotate.rs:129:53
[INFO] [stderr]     |
[INFO] [stderr] 129 | pub fn rotate_right_with_carry_at_address(mem: &mut Memory, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]     |                                                     ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/rotate.rs:141:52
[INFO] [stderr]     |
[INFO] [stderr] 141 | pub fn rotate_left_with_carry_at_address(mem: &mut Memory, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]     |                                                    ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]  --> src/ops/utils.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^          ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CarryFlag`, `Flags`, `HalfCarryFlag`, `SubtractFlag`, `ZeroFlag`
[INFO] [stderr]  --> src/ops/utils.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]   |                     ^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/ops/utils.rs:5:27
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub fn u8_immediate(mem: &Memory, pc: &mut Register<u16>) -> u8 {
[INFO] [stderr]   |                           ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/utils.rs:11:28
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub fn u16_immediate(mem: &Memory, pc: &mut Register<u16>) -> u16 {
[INFO] [stderr]    |                            ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rand::*`
[INFO] [stderr]  --> src/memory.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use rand::*;
[INFO] [stderr]   |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `num::iter::range_inclusive`
[INFO] [stderr]  --> src/memory.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use num::iter::range_inclusive;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `num::iter::range_step_inclusive`
[INFO] [stderr]  --> src/memory.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use num::iter::range_step_inclusive;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::path::Path`
[INFO] [stderr]  --> src/memory.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::path::Path;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]   --> src/memory.rs:92:19
[INFO] [stderr]    |
[INFO] [stderr] 92 |             0x0000...0x1FFF => {
[INFO] [stderr]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]   --> src/memory.rs:95:19
[INFO] [stderr]    |
[INFO] [stderr] 95 |             0x2000...0x3FFF => {
[INFO] [stderr]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:102:19
[INFO] [stderr]     |
[INFO] [stderr] 102 |             0x4000...0x5FFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:105:19
[INFO] [stderr]     |
[INFO] [stderr] 105 |             0x6000...0x7FFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:114:19
[INFO] [stderr]     |
[INFO] [stderr] 114 |             0x0000...0x00FF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:118:19
[INFO] [stderr]     |
[INFO] [stderr] 118 |             0x0100...0x014F => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:122:19
[INFO] [stderr]     |
[INFO] [stderr] 122 |             0x0150...0x3FFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:126:19
[INFO] [stderr]     |
[INFO] [stderr] 126 |             0x4000...0x7FFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:131:19
[INFO] [stderr]     |
[INFO] [stderr] 131 |             0x8000...0x97FF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:135:19
[INFO] [stderr]     |
[INFO] [stderr] 135 |             0x9800...0x9BFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:139:19
[INFO] [stderr]     |
[INFO] [stderr] 139 |             0x9C00...0x9FFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:143:19
[INFO] [stderr]     |
[INFO] [stderr] 143 |             0xA000...0xBFFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:148:19
[INFO] [stderr]     |
[INFO] [stderr] 148 |             0xC000...0xCFFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:152:19
[INFO] [stderr]     |
[INFO] [stderr] 152 |             0xD000...0xDFFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:156:19
[INFO] [stderr]     |
[INFO] [stderr] 156 |             0xE000...0xFDFF => panic!("Echo RAM Do Not Use"),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:157:19
[INFO] [stderr]     |
[INFO] [stderr] 157 |             0xFE00...0xFE9F => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:161:19
[INFO] [stderr]     |
[INFO] [stderr] 161 |             0xFEA0...0xFEFF => panic!("Unusable memory"),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:162:19
[INFO] [stderr]     |
[INFO] [stderr] 162 |             0xFF00...0xFF7F => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:166:19
[INFO] [stderr]     |
[INFO] [stderr] 166 |             0xFF80...0xFFFE => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `high_nibble`, `low_nibble`
[INFO] [stderr]  --> src/cpu.rs:1:22
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{Memory, low_nibble, high_nibble, low_byte, high_byte, pack_u16};
[INFO] [stderr]   |                      ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Signed`, `Unsigned`
[INFO] [stderr]  --> src/cpu.rs:4:11
[INFO] [stderr]   |
[INFO] [stderr] 4 | use num::{Unsigned, Signed};
[INFO] [stderr]   |           ^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/cpu.rs:26:14
[INFO] [stderr]    |
[INFO] [stderr] 26 |     mem: Box<Memory + 'a>
[INFO] [stderr]    |              ^^^^^^^^^^^ help: use `dyn`: `dyn Memory + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/cpu.rs:30:28
[INFO] [stderr]    |
[INFO] [stderr] 30 |     pub fn new(memory: Box<Memory + 'a>) -> Cpu<'a> {
[INFO] [stderr]    |                            ^^^^^^^^^^^ help: use `dyn`: `dyn Memory + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `Memory`, `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]  --> src/ops/mod.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^  ^^^^^^  ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/mod.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CarryFlag`, `Flags`, `HalfCarryFlag`, `Register`, `SubtractFlag`, `ZeroFlag`
[INFO] [stderr]  --> src/ops/mod.rs:3:11
[INFO] [stderr]   |
[INFO] [stderr] 3 | use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]   |           ^^^^^^^^  ^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EmptyMemory`
[INFO] [stderr]  --> src/ops/add.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/add.rs:47:35
[INFO] [stderr]    |
[INFO] [stderr] 47 | pub fn add_value_at_address(mem: &Memory, reg: &mut Register<u8>, hb: u8, lb: u8, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                   ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/add.rs:56:35
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub fn adc_value_at_address(mem: &Memory, reg: &mut Register<u8>, address: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                   ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/add.rs:61:31
[INFO] [stderr]    |
[INFO] [stderr] 61 | pub fn add_u8_immediate(mem: &Memory, pc: &mut Register<u16>, reg: &mut Register<u8>, freg: &mut Register<Flags>, with_carry: bool) {
[INFO] [stderr]    |                               ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/add.rs:120:45
[INFO] [stderr]     |
[INFO] [stderr] 120 | pub fn increment_value_at_address(mem: &mut Memory, hb: u8, lb: u8, freg: &mut Register<Flags>) {
[INFO] [stderr]     |                                             ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `high_byte`, `high_nibble`, `low_byte`, `low_nibble`
[INFO] [stderr]    --> src/ops/add.rs:139:49
[INFO] [stderr]     |
[INFO] [stderr] 139 |     use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]     |                                                 ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]    --> src/ops/add.rs:140:9
[INFO] [stderr]     |
[INFO] [stderr] 140 |     use extensions::Incrementor;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]  --> src/ops/boolean.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^          ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/boolean.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `CarryFlag`
[INFO] [stderr]  --> src/ops/boolean.rs:3:28
[INFO] [stderr]   |
[INFO] [stderr] 3 | use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]   |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/boolean.rs:31:35
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub fn and_value_at_address(mem: &Memory, reg: &mut Register<u8>, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                   ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/boolean.rs:36:35
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub fn xor_value_at_address(mem: &Memory, reg: &mut Register<u8>, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                   ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/boolean.rs:55:34
[INFO] [stderr]    |
[INFO] [stderr] 55 | pub fn or_value_at_address(mem: &Memory, reg: &mut Register<u8>, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                  ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]   --> src/ops/boolean.rs:73:39
[INFO] [stderr]    |
[INFO] [stderr] 73 |     use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]    |                                       ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]   --> src/ops/boolean.rs:74:9
[INFO] [stderr]    |
[INFO] [stderr] 74 |     use extensions::Incrementor;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]  --> src/ops/jp.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^          ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CarryFlag`, `Flags`, `HalfCarryFlag`, `SubtractFlag`, `ZeroFlag`
[INFO] [stderr]  --> src/ops/jp.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]   |                     ^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/ops/jp.rs:7:39
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn jump_by_signed_immediate(mem: &Memory, pc: &mut Register<u16>) {
[INFO] [stderr]   |                                       ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/jp.rs:22:55
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub fn relative_jmp_by_signed_immediate_if_true(mem: &Memory, pc: &mut Register<u16>, should_jump: bool) {
[INFO] [stderr]    |                                                       ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/jp.rs:30:31
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub fn jp_u16_immediate(mem: &Memory, pc: &mut Register<u16>) {
[INFO] [stderr]    |                               ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/jp.rs:36:39
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub fn jp_u16_immediate_if_true(mem: &Memory,pc: &mut Register<u16>, should_jump: bool) {
[INFO] [stderr]    |                                       ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]   --> src/ops/jp.rs:52:39
[INFO] [stderr]    |
[INFO] [stderr] 52 |     use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]    |                                       ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]   --> src/ops/jp.rs:53:9
[INFO] [stderr]    |
[INFO] [stderr] 53 |     use extensions::Incrementor;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CarryFlag`, `Flags`, `HalfCarryFlag`, `SubtractFlag`, `ZeroFlag`
[INFO] [stderr]   --> src/ops/jp.rs:54:25
[INFO] [stderr]    |
[INFO] [stderr] 54 |     use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]    |                         ^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `high_nibble`, `low_nibble`
[INFO] [stderr]  --> src/ops/ld.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^                                         ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/ld.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CarryFlag`, `Flags`, `HalfCarryFlag`, `SubtractFlag`, `ZeroFlag`
[INFO] [stderr]  --> src/ops/ld.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]   |                     ^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:15:30
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub fn ld_u8_immediate(mem: &Memory, pc: &mut Register<u16>, reg: &mut Register<u8>) {
[INFO] [stderr]    |                              ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:22:31
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub fn ld_u16_immediate(mem: &Memory, pc: &mut Register<u16>,
[INFO] [stderr]    |                               ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:30:30
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub fn ld_from_address(mem: &Memory, reg: &mut Register<u8>, addr: u16) {
[INFO] [stderr]    |                              ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:35:74
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub fn write_value_to_memory_at_address_and_increment_register(mem: &mut Memory, val: u8, high_reg: &mut Register<u8>, low_reg: &mut Register<u8>) {
[INFO] [stderr]    |                                                                          ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:43:74
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub fn write_value_to_memory_at_address_and_decrement_register(mem: &mut Memory, val: u8, high_reg: &mut Register<u8>, low_reg: &mut Register<u8>) {
[INFO] [stderr]    |                                                                          ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:51:86
[INFO] [stderr]    |
[INFO] [stderr] 51 | pub fn ld_from_address_pointed_to_by_register_pair_and_increment_register_pair(mem: &Memory, reg: &mut Register<u8>, high_byte: &mut Register<u8>, low_byte: &mut Register<u8>) {
[INFO] [stderr]    |                                                                                      ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:60:47
[INFO] [stderr]    |
[INFO] [stderr] 60 | pub fn ld_u8_immediate_into_address(mem: &mut Memory, pc: &mut Register<u16>, hb: u8, lb: u8) {
[INFO] [stderr]    |                                               ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:66:86
[INFO] [stderr]    |
[INFO] [stderr] 66 | pub fn ld_from_address_pointed_to_by_register_pair_and_decrement_register_pair(mem: &Memory, reg: &mut Register<u8>, high_byte: &mut Register<u8>, low_byte: &mut Register<u8>) {
[INFO] [stderr]    |                                                                                      ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:76:41
[INFO] [stderr]    |
[INFO] [stderr] 76 | pub fn ld_next_two_bytes_into_reg(mem: &Memory, pc: &mut Register<u16>, reg: &mut Register<u16>) {
[INFO] [stderr]    |                                         ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:82:43
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub fn load_val_FF00_plus_immediate(mem: &Memory, pc: &mut Register<u16>, reg: &mut Register<u8>) {
[INFO] [stderr]    |                                           ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:90:47
[INFO] [stderr]    |
[INFO] [stderr] 90 | pub fn write_value_to_u16_immediate(mem: &mut Memory, pc: &mut Register<u16>, val: u8) {
[INFO] [stderr]    |                                               ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/ld.rs:96:48
[INFO] [stderr]    |
[INFO] [stderr] 96 | pub fn write_val_FF00_plus_immediate(mem: &mut Memory, pc: &mut Register<u16>, val: u8) {
[INFO] [stderr]    |                                                ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/ld.rs:104:46
[INFO] [stderr]     |
[INFO] [stderr] 104 | pub fn write_u16_immediate_address(mem: &mut Memory, pc: &mut Register<u16>, val: u16){
[INFO] [stderr]     |                                              ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/ld.rs:117:51
[INFO] [stderr]     |
[INFO] [stderr] 117 | pub fn write_value_to_memory_at_address(mem: &mut Memory, val: u8, addr_msb: u8, addr_lsb: u8) {
[INFO] [stderr]     |                                                   ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `high_byte`, `high_nibble`, `low_byte`, `low_nibble`
[INFO] [stderr]    --> src/ops/ld.rs:126:49
[INFO] [stderr]     |
[INFO] [stderr] 126 |     use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]     |                                                 ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]    --> src/ops/ld.rs:127:9
[INFO] [stderr]     |
[INFO] [stderr] 127 |     use extensions::Incrementor;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CarryFlag`, `Flags`, `HalfCarryFlag`, `SubtractFlag`, `ZeroFlag`
[INFO] [stderr]    --> src/ops/ld.rs:128:25
[INFO] [stderr]     |
[INFO] [stderr] 128 |     use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]     |                         ^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]  --> src/ops/shift.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^          ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/shift.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `HalfCarryFlag`, `SubtractFlag`
[INFO] [stderr]  --> src/ops/shift.rs:3:39
[INFO] [stderr]   |
[INFO] [stderr] 3 | use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]   |                                       ^^^^^^^^^^^^^            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/shift.rs:40:33
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub fn srl_at_address(mem: &mut Memory, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                 ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/shift.rs:52:33
[INFO] [stderr]    |
[INFO] [stderr] 52 | pub fn sla_at_address(mem: &mut Memory, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                 ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/shift.rs:79:33
[INFO] [stderr]    |
[INFO] [stderr] 79 | pub fn sra_at_address(mem: &mut Memory, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                 ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]   --> src/ops/shift.rs:87:39
[INFO] [stderr]    |
[INFO] [stderr] 87 |     use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]    |                                       ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]   --> src/ops/shift.rs:88:9
[INFO] [stderr]    |
[INFO] [stderr] 88 |     use extensions::Incrementor;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `pack_u16`
[INFO] [stderr]  --> src/ops/special.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/special.rs:24:23
[INFO] [stderr]    |
[INFO] [stderr] 24 | fn pop_internal(mem: &Memory, sp: &mut Register<u16>) -> u16 {
[INFO] [stderr]    |                       ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/special.rs:31:18
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub fn pop(mem: &Memory, sp: &mut Register<u16>, hb: &mut Register<u8>, lb: &mut Register<u8>) {
[INFO] [stderr]    |                  ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/special.rs:38:18
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub fn ret(mem: &Memory, pc: &mut Register<u16>, sp: &mut Register<u16>, should_execute: bool) {
[INFO] [stderr]    |                  ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/special.rs:46:23
[INFO] [stderr]    |
[INFO] [stderr] 46 | pub fn push(mem: &mut Memory, sp: &mut Register<u16>, val: u16) {
[INFO] [stderr]    |                       ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/special.rs:53:41
[INFO] [stderr]    |
[INFO] [stderr] 53 | pub fn call_immediate_if_true(mem: &mut Memory, pc: &mut Register<u16>, sp: &mut Register<u16>, should_jump: bool) {
[INFO] [stderr]    |                                         ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/special.rs:63:23
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub fn call(mem: &mut Memory, pc: &mut Register<u16>, sp: &mut Register<u16>, addr: u16) {
[INFO] [stderr]    |                       ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/special.rs:68:19
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub fn reti(mem: &Memory, pc: &mut Register<u16>, sp: &mut Register<u16>, ime: &mut bool) {
[INFO] [stderr]    |                   ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/special.rs:91:30
[INFO] [stderr]    |
[INFO] [stderr] 91 | pub fn byte_at_address(mem: &Memory, addr: u16) -> u8 {
[INFO] [stderr]    |                              ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/special.rs:102:30
[INFO] [stderr]     |
[INFO] [stderr] 102 | pub fn res_at_addr(mem: &mut Memory, address: u16, pos: u8) {
[INFO] [stderr]     |                              ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/special.rs:116:30
[INFO] [stderr]     |
[INFO] [stderr] 116 | pub fn set_at_addr(mem: &mut Memory, address: u16, pos: u8) {
[INFO] [stderr]     |                              ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/special.rs:139:34
[INFO] [stderr]     |
[INFO] [stderr] 139 | pub fn swap_at_address(mem: &mut Memory, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]     |                                  ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/special.rs:149:24
[INFO] [stderr]     |
[INFO] [stderr] 149 | pub fn pop_flags(mem: &Memory, sp: &mut Register<u16>, a: &mut Register<u8>, f: &mut Register<Flags>) {
[INFO] [stderr]     |                        ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]    --> src/ops/special.rs:159:39
[INFO] [stderr]     |
[INFO] [stderr] 159 |     use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]     |                                       ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]    --> src/ops/special.rs:160:9
[INFO] [stderr]     |
[INFO] [stderr] 160 |     use extensions::Incrementor;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `high_nibble`
[INFO] [stderr]  --> src/ops/sub.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^                                                     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/sub.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/sub.rs:10:31
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub fn sub_u8_immediate(mem: &Memory, pc: &mut Register<u16>, reg: &mut Register<u8>, freg: &mut Register<Flags>, with_carry: bool) {
[INFO] [stderr]    |                               ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/sub.rs:55:35
[INFO] [stderr]    |
[INFO] [stderr] 55 | pub fn sub_value_at_address(mem: &Memory, reg: &mut Register<u8>, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                   ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/sub.rs:60:35
[INFO] [stderr]    |
[INFO] [stderr] 60 | pub fn sbc_value_at_address(mem: &Memory, reg: &mut Register<u8>, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                   ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/sub.rs:70:39
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub fn compare_value_at_address(mem: &Memory, reg: &mut Register<u8>, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                       ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/sub.rs:87:45
[INFO] [stderr]    |
[INFO] [stderr] 87 | pub fn decrement_value_at_address(mem: &mut Memory, hb: u8, lb: u8, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                             ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]   --> src/ops/sub.rs:99:39
[INFO] [stderr]    |
[INFO] [stderr] 99 |     use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]    |                                       ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]    --> src/ops/sub.rs:100:9
[INFO] [stderr]     |
[INFO] [stderr] 100 |     use extensions::Incrementor;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]  --> src/ops/rotate.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^          ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/rotate.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `HalfCarryFlag`, `SubtractFlag`
[INFO] [stderr]  --> src/ops/rotate.rs:3:39
[INFO] [stderr]   |
[INFO] [stderr] 3 | use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]   |                                       ^^^^^^^^^^^^^            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/rotate.rs:18:41
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub fn rotate_left_at_address(mem: &mut Memory, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                         ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/rotate.rs:71:42
[INFO] [stderr]    |
[INFO] [stderr] 71 | pub fn rotate_right_at_address(mem: &mut Memory, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]    |                                          ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/ops/rotate.rs:103:18
[INFO] [stderr]     |
[INFO] [stderr] 103 |     let result = ((val >> 1) | bit_1);
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/rotate.rs:129:53
[INFO] [stderr]     |
[INFO] [stderr] 129 | pub fn rotate_right_with_carry_at_address(mem: &mut Memory, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]     |                                                     ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/ops/rotate.rs:141:52
[INFO] [stderr]     |
[INFO] [stderr] 141 | pub fn rotate_left_with_carry_at_address(mem: &mut Memory, addr: u16, freg: &mut Register<Flags>) {
[INFO] [stderr]     |                                                    ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]    --> src/ops/rotate.rs:157:39
[INFO] [stderr]     |
[INFO] [stderr] 157 |     use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]     |                                       ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]    --> src/ops/rotate.rs:158:5
[INFO] [stderr]     |
[INFO] [stderr] 158 | use extensions::Incrementor;
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EmptyMemory`, `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]  --> src/ops/utils.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]   |              ^^^^^^^^^^^          ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CarryFlag`, `Flags`, `HalfCarryFlag`, `SubtractFlag`, `ZeroFlag`
[INFO] [stderr]  --> src/ops/utils.rs:3:21
[INFO] [stderr]   |
[INFO] [stderr] 3 | use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]   |                     ^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/ops/utils.rs:5:27
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub fn u8_immediate(mem: &Memory, pc: &mut Register<u16>) -> u8 {
[INFO] [stderr]   |                           ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ops/utils.rs:11:28
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub fn u16_immediate(mem: &Memory, pc: &mut Register<u16>) -> u16 {
[INFO] [stderr]    |                            ^^^^^^ help: use `dyn`: `dyn Memory`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `high_byte`, `high_nibble`, `low_byte`, `low_nibble`, `pack_u16`
[INFO] [stderr]   --> src/ops/utils.rs:21:39
[INFO] [stderr]    |
[INFO] [stderr] 21 |     use memory::{EmptyMemory, Memory, pack_u16, high_byte, low_byte, low_nibble, high_nibble};
[INFO] [stderr]    |                                       ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]   --> src/ops/utils.rs:22:9
[INFO] [stderr]    |
[INFO] [stderr] 22 |     use extensions::Incrementor;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CarryFlag`, `Flags`, `HalfCarryFlag`, `SubtractFlag`, `ZeroFlag`
[INFO] [stderr]   --> src/ops/utils.rs:23:25
[INFO] [stderr]    |
[INFO] [stderr] 23 |     use cpu::{Register, Flags, CarryFlag, HalfCarryFlag, ZeroFlag, SubtractFlag};
[INFO] [stderr]    |                         ^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rand::*`
[INFO] [stderr]  --> src/memory.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use rand::*;
[INFO] [stderr]   |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `num::iter::range_inclusive`
[INFO] [stderr]  --> src/memory.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use num::iter::range_inclusive;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `num::iter::range_step_inclusive`
[INFO] [stderr]  --> src/memory.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use num::iter::range_step_inclusive;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::path::Path`
[INFO] [stderr]  --> src/memory.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::path::Path;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]   --> src/memory.rs:92:19
[INFO] [stderr]    |
[INFO] [stderr] 92 |             0x0000...0x1FFF => {
[INFO] [stderr]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]   --> src/memory.rs:95:19
[INFO] [stderr]    |
[INFO] [stderr] 95 |             0x2000...0x3FFF => {
[INFO] [stderr]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:102:19
[INFO] [stderr]     |
[INFO] [stderr] 102 |             0x4000...0x5FFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:105:19
[INFO] [stderr]     |
[INFO] [stderr] 105 |             0x6000...0x7FFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:114:19
[INFO] [stderr]     |
[INFO] [stderr] 114 |             0x0000...0x00FF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:118:19
[INFO] [stderr]     |
[INFO] [stderr] 118 |             0x0100...0x014F => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:122:19
[INFO] [stderr]     |
[INFO] [stderr] 122 |             0x0150...0x3FFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:126:19
[INFO] [stderr]     |
[INFO] [stderr] 126 |             0x4000...0x7FFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:131:19
[INFO] [stderr]     |
[INFO] [stderr] 131 |             0x8000...0x97FF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:135:19
[INFO] [stderr]     |
[INFO] [stderr] 135 |             0x9800...0x9BFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:139:19
[INFO] [stderr]     |
[INFO] [stderr] 139 |             0x9C00...0x9FFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:143:19
[INFO] [stderr]     |
[INFO] [stderr] 143 |             0xA000...0xBFFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:148:19
[INFO] [stderr]     |
[INFO] [stderr] 148 |             0xC000...0xCFFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:152:19
[INFO] [stderr]     |
[INFO] [stderr] 152 |             0xD000...0xDFFF => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:156:19
[INFO] [stderr]     |
[INFO] [stderr] 156 |             0xE000...0xFDFF => panic!("Echo RAM Do Not Use"),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:157:19
[INFO] [stderr]     |
[INFO] [stderr] 157 |             0xFE00...0xFE9F => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:161:19
[INFO] [stderr]     |
[INFO] [stderr] 161 |             0xFEA0...0xFEFF => panic!("Unusable memory"),
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:162:19
[INFO] [stderr]     |
[INFO] [stderr] 162 |             0xFF00...0xFF7F => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/memory.rs:166:19
[INFO] [stderr]     |
[INFO] [stderr] 166 |             0xFF80...0xFFFE => {
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `high_nibble`, `low_nibble`
[INFO] [stderr]  --> src/cpu.rs:1:22
[INFO] [stderr]   |
[INFO] [stderr] 1 | use memory::{Memory, low_nibble, high_nibble, low_byte, high_byte, pack_u16};
[INFO] [stderr]   |                      ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Signed`, `Unsigned`
[INFO] [stderr]  --> src/cpu.rs:4:11
[INFO] [stderr]   |
[INFO] [stderr] 4 | use num::{Unsigned, Signed};
[INFO] [stderr]   |           ^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/cpu.rs:26:14
[INFO] [stderr]    |
[INFO] [stderr] 26 |     mem: Box<Memory + 'a>
[INFO] [stderr]    |              ^^^^^^^^^^^ help: use `dyn`: `dyn Memory + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/cpu.rs:30:28
[INFO] [stderr]    |
[INFO] [stderr] 30 |     pub fn new(memory: Box<Memory + 'a>) -> Cpu<'a> {
[INFO] [stderr]    |                            ^^^^^^^^^^^ help: use `dyn`: `dyn Memory + 'a`
[INFO] [stderr] 
[INFO] [stderr] error[E0600]: cannot apply unary operator `-` to type `u8`
[INFO] [stderr]   --> src/ops/jp.rs:86:32
[INFO] [stderr]    |
[INFO] [stderr] 86 |         mem.write_byte(0x0101, -10 as u8);
[INFO] [stderr]    |                                ^^^ cannot apply unary operator `-`
[INFO] [stderr]    |
[INFO] [stderr]    = note: unsigned values cannot be negated
[INFO] [stderr] 
[INFO] [stderr] error[E0600]: cannot apply unary operator `-` to type `u8`
[INFO] [stderr]    --> src/ops/jp.rs:110:32
[INFO] [stderr]     |
[INFO] [stderr] 110 |         mem.write_byte(0x128A, -10 as u8);
[INFO] [stderr]     |                                ^^^ cannot apply unary operator `-`
[INFO] [stderr]     |
[INFO] [stderr]     = note: unsigned values cannot be negated
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/add.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/jp.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/special.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/utils.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/cpu.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 3 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0557, E0600.
[INFO] [stderr] For more information about an error, try `rustc --explain E0557`.
[INFO] [stderr] error: could not compile `zaty`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/add.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/jp.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/special.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/ops/utils.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `extensions::Incrementor`
[INFO] [stderr]  --> src/cpu.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use extensions::Incrementor;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to previous error
[INFO] [stderr] 
[INFO] [stderr] For more information about this error, try `rustc --explain E0557`.
[INFO] [stderr] error: could not compile `zaty`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `"docker" "inspect" "ae9475efc40a7b67e579a9971828624dcb42190f15ae71711cb4ec4bd34458c2"`
[INFO] running `"docker" "rm" "-f" "ae9475efc40a7b67e579a9971828624dcb42190f15ae71711cb4ec4bd34458c2"`
[INFO] [stdout] ae9475efc40a7b67e579a9971828624dcb42190f15ae71711cb4ec4bd34458c2
