[INFO] cloning repository https://github.com/ikornaselur/corrosiones
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ikornaselur/corrosiones" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fikornaselur%2Fcorrosiones", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fikornaselur%2Fcorrosiones'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7455790068b5db3cd0cc955a47e14435dc5faaa2
[INFO] testing ikornaselur/corrosiones against 1.83.0 for beta-1.84.0-4-retry
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fikornaselur%2Fcorrosiones" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/ikornaselur/corrosiones on toolchain 1.83.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.83.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/ikornaselur/corrosiones
[INFO] finished tweaking git repo https://github.com/ikornaselur/corrosiones
[INFO] tweaked toml for git repo https://github.com/ikornaselur/corrosiones written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/ikornaselur/corrosiones already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.83.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+1.83.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 96ac1d16b70d21acb3add0bf138665e7354e56a8dfbac2b59f9063a7f458e174
[INFO] running `Command { std: "docker" "start" "-a" "96ac1d16b70d21acb3add0bf138665e7354e56a8dfbac2b59f9063a7f458e174", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "96ac1d16b70d21acb3add0bf138665e7354e56a8dfbac2b59f9063a7f458e174", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "96ac1d16b70d21acb3add0bf138665e7354e56a8dfbac2b59f9063a7f458e174", kill_on_drop: false }`
[INFO] [stdout] 96ac1d16b70d21acb3add0bf138665e7354e56a8dfbac2b59f9063a7f458e174
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+1.83.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7bb3a91fc1abeb8e8b755f46087e43c800ecbb8146f0e21012ea3d07dfa5dd17
[INFO] running `Command { std: "docker" "start" "-a" "7bb3a91fc1abeb8e8b755f46087e43c800ecbb8146f0e21012ea3d07dfa5dd17", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021
[INFO] [stderr]    Compiling corrosiones v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:118:19
[INFO] [stdout]     |
[INFO] [stdout] 118 |             0x0000...0x1FFF => self.ram[addr % 0x0800],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:119:19
[INFO] [stdout]     |
[INFO] [stdout] 119 |             0x2000...0x3FFF => self.io[(addr - 0x2000) % 0x0008],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:120:19
[INFO] [stdout]     |
[INFO] [stdout] 120 |             0x4000...0x401F => self.io[addr - 0x4000 + 0x0008],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:121:19
[INFO] [stdout]     |
[INFO] [stdout] 121 |             0x4020...0x5FFF => self.expansion_rom[addr - 0x4020],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:122:19
[INFO] [stdout]     |
[INFO] [stdout] 122 |             0x6000...0x7FFF => self.sram[addr - 0x6000],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:123:19
[INFO] [stdout]     |
[INFO] [stdout] 123 |             0x8000...0xFFFF => self.rom[addr - 0x8000],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:152:19
[INFO] [stdout]     |
[INFO] [stdout] 152 |             0x0000...0x1FFF => self.ram[addr % 0x0800] = byte,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:153:19
[INFO] [stdout]     |
[INFO] [stdout] 153 |             0x2000...0x3FFF => self.io[(addr - 0x2000) % 0x0008] = byte,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:154:19
[INFO] [stdout]     |
[INFO] [stdout] 154 |             0x4000...0x401F => self.io[addr - 0x4000 + 0x0008] = byte,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:155:19
[INFO] [stdout]     |
[INFO] [stdout] 155 |             0x6000...0x7FFF => self.sram[addr - 0x6000] = byte,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cpu/mod.rs:231:69
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn load_file(&mut self, filename: String) -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn load_file(&mut self, filename: String) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `break_command` is never read
[INFO] [stdout]  --> src/cpu/flags.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(crate) struct Flags {
[INFO] [stdout]   |                   ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 6 |     pub(crate) break_command: bool,
[INFO] [stdout]   |                ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.96s
[INFO] running `Command { std: "docker" "inspect" "7bb3a91fc1abeb8e8b755f46087e43c800ecbb8146f0e21012ea3d07dfa5dd17", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7bb3a91fc1abeb8e8b755f46087e43c800ecbb8146f0e21012ea3d07dfa5dd17", kill_on_drop: false }`
[INFO] [stdout] 7bb3a91fc1abeb8e8b755f46087e43c800ecbb8146f0e21012ea3d07dfa5dd17
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+1.83.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1568f0b916d9716f45d8d09e69c00b0e3dd2518ab85ef637bbb628b96430323e
[INFO] running `Command { std: "docker" "start" "-a" "1568f0b916d9716f45d8d09e69c00b0e3dd2518ab85ef637bbb628b96430323e", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021
[INFO] [stderr]    Compiling corrosiones v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:118:19
[INFO] [stdout]     |
[INFO] [stdout] 118 |             0x0000...0x1FFF => self.ram[addr % 0x0800],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:119:19
[INFO] [stdout]     |
[INFO] [stdout] 119 |             0x2000...0x3FFF => self.io[(addr - 0x2000) % 0x0008],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:120:19
[INFO] [stdout]     |
[INFO] [stdout] 120 |             0x4000...0x401F => self.io[addr - 0x4000 + 0x0008],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:121:19
[INFO] [stdout]     |
[INFO] [stdout] 121 |             0x4020...0x5FFF => self.expansion_rom[addr - 0x4020],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:122:19
[INFO] [stdout]     |
[INFO] [stdout] 122 |             0x6000...0x7FFF => self.sram[addr - 0x6000],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:123:19
[INFO] [stdout]     |
[INFO] [stdout] 123 |             0x8000...0xFFFF => self.rom[addr - 0x8000],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:152:19
[INFO] [stdout]     |
[INFO] [stdout] 152 |             0x0000...0x1FFF => self.ram[addr % 0x0800] = byte,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:153:19
[INFO] [stdout]     |
[INFO] [stdout] 153 |             0x2000...0x3FFF => self.io[(addr - 0x2000) % 0x0008] = byte,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:154:19
[INFO] [stdout]     |
[INFO] [stdout] 154 |             0x4000...0x401F => self.io[addr - 0x4000 + 0x0008] = byte,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:155:19
[INFO] [stdout]     |
[INFO] [stdout] 155 |             0x6000...0x7FFF => self.sram[addr - 0x6000] = byte,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cpu/mod.rs:231:69
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn load_file(&mut self, filename: String) -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn load_file(&mut self, filename: String) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `break_command` is never read
[INFO] [stdout]  --> src/cpu/flags.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(crate) struct Flags {
[INFO] [stdout]   |                   ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 6 |     pub(crate) break_command: bool,
[INFO] [stdout]   |                ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:118:19
[INFO] [stdout]     |
[INFO] [stdout] 118 |             0x0000...0x1FFF => self.ram[addr % 0x0800],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:119:19
[INFO] [stdout]     |
[INFO] [stdout] 119 |             0x2000...0x3FFF => self.io[(addr - 0x2000) % 0x0008],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:120:19
[INFO] [stdout]     |
[INFO] [stdout] 120 |             0x4000...0x401F => self.io[addr - 0x4000 + 0x0008],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:121:19
[INFO] [stdout]     |
[INFO] [stdout] 121 |             0x4020...0x5FFF => self.expansion_rom[addr - 0x4020],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:122:19
[INFO] [stdout]     |
[INFO] [stdout] 122 |             0x6000...0x7FFF => self.sram[addr - 0x6000],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:123:19
[INFO] [stdout]     |
[INFO] [stdout] 123 |             0x8000...0xFFFF => self.rom[addr - 0x8000],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:152:19
[INFO] [stdout]     |
[INFO] [stdout] 152 |             0x0000...0x1FFF => self.ram[addr % 0x0800] = byte,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:153:19
[INFO] [stdout]     |
[INFO] [stdout] 153 |             0x2000...0x3FFF => self.io[(addr - 0x2000) % 0x0008] = byte,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:154:19
[INFO] [stdout]     |
[INFO] [stdout] 154 |             0x4000...0x401F => self.io[addr - 0x4000 + 0x0008] = byte,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu/memory.rs:155:19
[INFO] [stdout]     |
[INFO] [stdout] 155 |             0x6000...0x7FFF => self.sram[addr - 0x6000] = byte,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cpu/mod.rs:231:69
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn load_file(&mut self, filename: String) -> Result<(), Box<Error>> {
[INFO] [stdout]     |                                                                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn load_file(&mut self, filename: String) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `break_command` is never read
[INFO] [stdout]  --> src/cpu/flags.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(crate) struct Flags {
[INFO] [stdout]   |                   ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 6 |     pub(crate) break_command: bool,
[INFO] [stdout]   |                ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.59s
[INFO] running `Command { std: "docker" "inspect" "1568f0b916d9716f45d8d09e69c00b0e3dd2518ab85ef637bbb628b96430323e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1568f0b916d9716f45d8d09e69c00b0e3dd2518ab85ef637bbb628b96430323e", kill_on_drop: false }`
[INFO] [stdout] 1568f0b916d9716f45d8d09e69c00b0e3dd2518ab85ef637bbb628b96430323e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+1.83.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e01294cab4b0da085fcb4b00536757730ced82afdf76efe9691807ea05ffc3fe
[INFO] running `Command { std: "docker" "start" "-a" "e01294cab4b0da085fcb4b00536757730ced82afdf76efe9691807ea05ffc3fe", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:118:19
[INFO] [stderr]     |
[INFO] [stderr] 118 |             0x0000...0x1FFF => self.ram[addr % 0x0800],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:119:19
[INFO] [stderr]     |
[INFO] [stderr] 119 |             0x2000...0x3FFF => self.io[(addr - 0x2000) % 0x0008],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:120:19
[INFO] [stderr]     |
[INFO] [stderr] 120 |             0x4000...0x401F => self.io[addr - 0x4000 + 0x0008],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:121:19
[INFO] [stderr]     |
[INFO] [stderr] 121 |             0x4020...0x5FFF => self.expansion_rom[addr - 0x4020],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:122:19
[INFO] [stderr]     |
[INFO] [stderr] 122 |             0x6000...0x7FFF => self.sram[addr - 0x6000],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:123:19
[INFO] [stderr]     |
[INFO] [stderr] 123 |             0x8000...0xFFFF => self.rom[addr - 0x8000],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:152:19
[INFO] [stderr]     |
[INFO] [stderr] 152 |             0x0000...0x1FFF => self.ram[addr % 0x0800] = byte,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:153:19
[INFO] [stderr]     |
[INFO] [stderr] 153 |             0x2000...0x3FFF => self.io[(addr - 0x2000) % 0x0008] = byte,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:154:19
[INFO] [stderr]     |
[INFO] [stderr] 154 |             0x4000...0x401F => self.io[addr - 0x4000 + 0x0008] = byte,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:155:19
[INFO] [stderr]     |
[INFO] [stderr] 155 |             0x6000...0x7FFF => self.sram[addr - 0x6000] = byte,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/cpu/mod.rs:231:69
[INFO] [stderr]     |
[INFO] [stderr] 231 |     pub fn load_file(&mut self, filename: String) -> Result<(), Box<Error>> {
[INFO] [stderr]     |                                                                     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 231 |     pub fn load_file(&mut self, filename: String) -> Result<(), Box<dyn Error>> {
[INFO] [stderr]     |                                                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: field `break_command` is never read
[INFO] [stderr]  --> src/cpu/flags.rs:6:16
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub(crate) struct Flags {
[INFO] [stderr]   |                   ----- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 6 |     pub(crate) break_command: bool,
[INFO] [stderr]   |                ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `corrosiones` (lib) generated 12 warnings (run `cargo fix --lib -p corrosiones` to apply 11 suggestions)
[INFO] [stderr] warning: `corrosiones` (lib test) generated 12 warnings (12 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/corrosiones-329db16aa9472d56)
[INFO] [stdout] 
[INFO] [stdout] running 142 tests
[INFO] [stdout] test cpu::memory::test::read_from_lower_io ... ok
[INFO] [stdout] test cpu::flags::test::flags_into_u8 ... ok
[INFO] [stdout] test cpu::memory::test::read_from_ram ... ok
[INFO] [stdout] test cpu::memory::test::load_ram ... ok
[INFO] [stdout] test cpu::memory::test::read_from_expansion_rom ... ok
[INFO] [stdout] test cpu::memory::test::read_from_upper_io ... ok
[INFO] [stdout] test cpu::opcodes::bitwise::rotate::test::ror_rotates_in_memory ... ok
[INFO] [stdout] test cpu::opcodes::bitwise::or::test::eor_xors_accumulator_with_memory ... ok
[INFO] [stdout] test cpu::opcodes::bitwise::or::test::ora_ors_accumulator_with_memory ... ok
[INFO] [stdout] test cpu::opcodes::bitwise::rotate::test::rol_rotates_in_memory ... ok
[INFO] [stdout] test cpu::opcodes::bitwise::rotate::test::rol_rotates_with_carry ... ok
[INFO] [stdout] test cpu::opcodes::bitwise::shift::test::asl_shifts_in_memory ... ok
[INFO] [stdout] test cpu::opcodes::bitwise::shift::test::asl_shifts_into_carry ... ok
[INFO] [stdout] test cpu::opcodes::bitwise::shift::test::lsr_sets_zero_flag ... ok
[INFO] [stdout] test cpu::memory::test::read_from_sram ... ok
[INFO] [stdout] test cpu::memory::test::read_from_rom ... ok
[INFO] [stdout] test cpu::opcodes::branch::carry::test::bcc_applies_offset_if_carry_not_set ... ok
[INFO] [stdout] test cpu::opcodes::branch::carry::test::bcc_doesnt_apply_offset_if_carry_is_set ... ok
[INFO] [stdout] test cpu::opcodes::bitwise::and::test::and_ands_accumulator_with_memory ... ok
[INFO] [stdout] test cpu::opcodes::bitwise::shift::test::lsr_shifts_in_memory ... ok
[INFO] [stdout] test cpu::opcodes::bitwise::shift::test::lsr_shifts_into_carry ... ok
[INFO] [stdout] test cpu::opcodes::bitwise::test::test::bit_copies_overflow_from_bit_6_to_flags ... ok
[INFO] [stdout] test cpu::opcodes::branch::carry::test::bcs_applies_offset_if_carry_is_set ... ok
[INFO] [stdout] test cpu::opcodes::branch::carry::test::bcs_doesnt_apply_offset_if_carry_not_set ... ok
[INFO] [stdout] test cpu::opcodes::branch::negative::test::bmi_doesnt_apply_offset_if_negative_not_set ... ok
[INFO] [stdout] test cpu::opcodes::branch::negative::test::bmi_applies_offset_if_negative_is_set ... ok
[INFO] [stdout] test cpu::opcodes::branch::negative::test::bpl_applies_offset_if_negative_not_set ... ok
[INFO] [stdout] test cpu::opcodes::branch::negative::test::bpl_doesnt_apply_offset_if_negative_is_set ... ok
[INFO] [stdout] test cpu::opcodes::branch::overflow::test::bvc_applies_offset_if_overflow_not_set ... ok
[INFO] [stdout] test cpu::opcodes::branch::overflow::test::bvc_doesnt_apply_offset_if_overflow_is_set ... ok
[INFO] [stdout] test cpu::opcodes::branch::overflow::test::bvs_applies_offset_if_overflow_is_set ... ok
[INFO] [stdout] test cpu::opcodes::branch::overflow::test::bvs_doesnt_apply_offset_if_overflow_not_set ... ok
[INFO] [stdout] test cpu::opcodes::branch::zero::test::beq_applies_offset_if_zero_is_set ... ok
[INFO] [stdout] test cpu::opcodes::branch::zero::test::beq_doesnt_apply_offset_if_zero_not_set ... ok
[INFO] [stdout] test cpu::opcodes::branch::zero::test::bne_doesnt_apply_offset_if_zero_is_set ... ok
[INFO] [stdout] test cpu::opcodes::jump::jmp::test::jmp_absolute ... ok
[INFO] [stdout] test cpu::opcodes::bitwise::rotate::test::ror_rotates_into_carry ... ok
[INFO] [stdout] test cpu::opcodes::branch::zero::test::bne_applies_offset_if_zero_not_set ... ok
[INFO] [stdout] test cpu::opcodes::jump::jmp::test::jmp_indirect ... ok
[INFO] [stdout] test cpu::opcodes::jump::jmp::test::jmp_indirect_boundary_bug ... ok
[INFO] [stdout] test cpu::opcodes::jump::jmp::test::jst_stores_pc_on_stack ... ok
[INFO] [stdout] test cpu::opcodes::jump::ret::test::rti_restores_pc_and_flags ... ok
[INFO] [stdout] test cpu::opcodes::jump::ret::test::rts_restores_pc ... ok
[INFO] [stdout] test cpu::opcodes::math::add::test::adc_absolute ... ok
[INFO] [stdout] test cpu::opcodes::math::add::test::adc_absolute_x ... ok
[INFO] [stdout] test cpu::opcodes::math::add::test::adc_absolute_y ... ok
[INFO] [stdout] test cpu::opcodes::math::add::test::adc_immediate_with_carry ... ok
[INFO] [stdout] test cpu::opcodes::math::add::test::adc_immediate_with_carry_and_max_value ... ok
[INFO] [stdout] test cpu::opcodes::math::add::test::adc_immediate_with_carry_and_max_value_and_max_accumulator ... ok
[INFO] [stdout] test cpu::opcodes::math::add::test::adc_immediate_without_carry_and_max_value_and_max_accumulator ... ok
[INFO] [stdout] test cpu::opcodes::math::add::test::adc_immediate_without_carry ... ok
[INFO] [stdout] test cpu::opcodes::math::add::test::adc_indirect_y ... ok
[INFO] [stdout] test cpu::opcodes::math::add::test::adc_twos_complement_minus_1_plus_1 ... ok
[INFO] [stdout] test cpu::opcodes::math::add::test::adc_zeropage ... ok
[INFO] [stdout] test cpu::opcodes::math::add::test::adc_zeropage_x ... ok
[INFO] [stdout] test cpu::opcodes::math::decrement::test::dcp_decrements_memory ... ok
[INFO] [stdout] test cpu::opcodes::math::decrement::test::dec_decrements_memory_wrapping ... ok
[INFO] [stdout] test cpu::opcodes::math::decrement::test::dex_decrements_x_index ... ok
[INFO] [stdout] test cpu::opcodes::math::decrement::test::dex_decrements_x_index_wrapping ... ok
[INFO] [stdout] test cpu::opcodes::math::decrement::test::dey_decrements_x_index ... ok
[INFO] [stdout] test cpu::opcodes::math::decrement::test::dey_decrements_x_index_wrapping ... ok
[INFO] [stdout] test cpu::opcodes::math::increment::test::inc_increments_memory ... ok
[INFO] [stdout] test cpu::opcodes::math::increment::test::inc_increments_memory_wrapping ... ok
[INFO] [stdout] test cpu::opcodes::math::add::test::adc_indirect_x ... ok
[INFO] [stdout] test cpu::opcodes::bitwise::test::test::bit_uses_mask_for_zero ... ok
[INFO] [stdout] test cpu::opcodes::math::decrement::test::dec_decrements_memory ... ok
[INFO] [stdout] test cpu::opcodes::math::increment::test::inx_increments_x_index ... ok
[INFO] [stdout] test cpu::opcodes::math::increment::test::inx_increments_x_index_wrapping ... ok
[INFO] [stdout] test cpu::opcodes::math::increment::test::iny_increments_x_index ... ok
[INFO] [stdout] test cpu::opcodes::math::subtract::test::sbc_immediate_with_borrow ... ok
[INFO] [stdout] test cpu::opcodes::math::subtract::test::sbc_immediate_with_borrow_and_max_value_and_min_accumulator ... ok
[INFO] [stdout] test cpu::opcodes::math::increment::test::iny_increments_x_index_wrapping ... ok
[INFO] [stdout] test cpu::opcodes::math::subtract::test::sbc_immediate_without_borrow_and_max_value_and_min_accumulator ... ok
[INFO] [stdout] test cpu::opcodes::registers::clear::test::clc_clears_carry_flag ... ok
[INFO] [stdout] test cpu::opcodes::registers::clear::test::cld_clears_decimal_flag ... ok
[INFO] [stdout] test cpu::opcodes::registers::clear::test::clv_clears_overflow_flag ... ok
[INFO] [stdout] test cpu::opcodes::registers::clear::test::cli_clears_interrupt_disable_flag ... ok
[INFO] [stdout] test cpu::opcodes::math::subtract::test::sbc_immediate_without_borrow ... ok
[INFO] [stdout] test cpu::opcodes::registers::compare::test::cmp_sets_carry_if_accumulator_higher_than_memory ... ok
[INFO] [stdout] test cpu::opcodes::registers::compare::test::cmp_sets_negative_if_memory_is_bigger_than_accumulator ... ok
[INFO] [stdout] test cpu::opcodes::registers::compare::test::cmp_sets_zero_if_accumulator_equals_memory ... ok
[INFO] [stdout] test cpu::opcodes::registers::compare::test::cpx_sets_zero_if_x_equals_memory ... ok
[INFO] [stdout] test cpu::opcodes::registers::compare::test::cpx_sets_negative_if_memory_negative ... ok
[INFO] [stdout] test cpu::opcodes::registers::compare::test::cpx_sets_carry_if_a_higher_than_memory ... ok
[INFO] [stdout] test cpu::opcodes::bitwise::test::test::bit_copies_negative_from_bit_7_to_flags ... ok
[INFO] [stdout] test cpu::opcodes::registers::compare::test::cpy_sets_carry_if_a_higher_than_memory ... ok
[INFO] [stdout] test cpu::opcodes::registers::compare::test::cpy_sets_negative_if_memory_negative ... ok
[INFO] [stdout] test cpu::opcodes::stack::push::test::pha_pushes_accumulator_on_stack ... ok
[INFO] [stdout] test cpu::opcodes::stack::push::test::php_pushes_flags_on_stack ... ok
[INFO] [stdout] test cpu::opcodes::registers::compare::test::cpy_sets_zero_if_x_equals_memory ... ok
[INFO] [stdout] test cpu::opcodes::storage::load::test::lax_loads_both_accumulator_and_x_index ... ok
[INFO] [stdout] test cpu::opcodes::registers::set::test::sec_sets_carry_flag ... ok
[INFO] [stdout] test cpu::opcodes::storage::load::test::ldx_loads_x_index ... ok
[INFO] [stdout] test cpu::opcodes::storage::load::test::ldy_loads_y_index ... ok
[INFO] [stdout] test cpu::opcodes::math::subtract::test::sbc_immediate_with_borrow_and_max_value ... ok
[INFO] [stdout] test cpu::opcodes::registers::set::test::sed_sets_decimal_flag ... ok
[INFO] [stdout] test cpu::opcodes::stack::pull::test::plp_pulls_flags_from_stack ... ok
[INFO] [stdout] test cpu::opcodes::storage::store::test::sta_absolute ... ok
[INFO] [stdout] test cpu::opcodes::storage::store::test::sta_absolute_y ... ok
[INFO] [stdout] test cpu::opcodes::storage::store::test::sta_absolute_x ... ok
[INFO] [stdout] test cpu::opcodes::storage::store::test::sta_indirect_x ... ok
[INFO] [stdout] test cpu::opcodes::storage::store::test::sta_zeropage_x ... ok
[INFO] [stdout] test cpu::opcodes::storage::store::test::sta_indirect_y ... ok
[INFO] [stdout] test cpu::opcodes::storage::store::test::stx_zeropage_y ... ok
[INFO] [stdout] test cpu::opcodes::stack::pull::test::pla_pulls_accumulator_from_stack ... ok
[INFO] [stdout] test cpu::opcodes::storage::store::test::sty_zeropage ... ok
[INFO] [stdout] test cpu::opcodes::storage::store::test::sta_zeropage ... ok
[INFO] [stdout] test cpu::opcodes::storage::store::test::sty_absolute ... ok
[INFO] [stdout] test cpu::opcodes::storage::store::test::stx_absolute ... ok
[INFO] [stdout] test cpu::opcodes::storage::store::test::stx_zeropage ... ok
[INFO] [stdout] test cpu::opcodes::storage::store::test::sty_zeropage_y ... ok
[INFO] [stdout] test cpu::opcodes::registers::set::test::sei_sets_interrupt_disable_flag ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::tax_sets_negative_flag ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::tax_transfers_a_to_x ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::tay_sets_zero_flag ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::tay_transfers_a_to_y ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::tsx_sets_zero_flag ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::tsx_transfers_sp_to_x ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::txa_sets_negative_flag ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::txa_sets_zero_flag ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::txa_transfers_x_to_a ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::txs_doesnt_set_negative_flag ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::txs_doesnt_set_zero_flag ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::txs_transfers_x_to_sp ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::tax_sets_zero_flag ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::tay_sets_negative_flag ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::tya_sets_negative_flag ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::tya_sets_zero_flag ... ok
[INFO] [stdout] test cpu::opcodes::system::test::nop_size ... ok
[INFO] [stdout] test cpu::test::offset_pc_by_max_negative ... ok
[INFO] [stdout] test cpu::test::offset_pc_by_max_positive ... ok
[INFO] [stdout] test cpu::test::offset_pc_by_positive_one ... ok
[INFO] [stdout] test cpu::test::offset_pc_by_negative_one ... ok
[INFO] [stdout] test cpu::test::offset_pc_by_zero ... ok
[INFO] [stdout] test cpu::test::pushing_to_the_stack_wraps_the_stack_pointer ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::tya_transfers_y_to_a ... ok
[INFO] [stdout] test cpu::test::pushing_to_the_stack ... ok
[INFO] [stdout] test cpu::test::reading_from_the_stack_wraps_the_stack_pointer ... ok
[INFO] [stdout] test cpu::test::reading_from_the_stack ... ok
[INFO] [stdout] test cpu::test::read_next_byte ... ok
[INFO] [stdout] test cpu::opcodes::storage::transfer::test::tsx_sets_negative_flag ... ok
[INFO] [stdout] test cpu::opcodes::storage::load::test::lda_loads_accumulator ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/corrosiones-51da179dd23e6f0f)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 142 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/mod.rs (/opt/rustwide/target/debug/deps/mod-4cc8bfdcfbaeeb4e)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test instr_test_v5::basics ... ok
[INFO] [stderr]    Doc-tests corrosiones
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:118:19
[INFO] [stderr]     |
[INFO] [stderr] 118 |             0x0000...0x1FFF => self.ram[addr % 0x0800],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:119:19
[INFO] [stderr]     |
[INFO] [stderr] 119 |             0x2000...0x3FFF => self.io[(addr - 0x2000) % 0x0008],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:120:19
[INFO] [stderr]     |
[INFO] [stderr] 120 |             0x4000...0x401F => self.io[addr - 0x4000 + 0x0008],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:121:19
[INFO] [stderr]     |
[INFO] [stderr] 121 |             0x4020...0x5FFF => self.expansion_rom[addr - 0x4020],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:122:19
[INFO] [stderr]     |
[INFO] [stderr] 122 |             0x6000...0x7FFF => self.sram[addr - 0x6000],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:123:19
[INFO] [stderr]     |
[INFO] [stderr] 123 |             0x8000...0xFFFF => self.rom[addr - 0x8000],
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:152:19
[INFO] [stderr]     |
[INFO] [stderr] 152 |             0x0000...0x1FFF => self.ram[addr % 0x0800] = byte,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:153:19
[INFO] [stderr]     |
[INFO] [stderr] 153 |             0x2000...0x3FFF => self.io[(addr - 0x2000) % 0x0008] = byte,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:154:19
[INFO] [stderr]     |
[INFO] [stderr] 154 |             0x4000...0x401F => self.io[addr - 0x4000 + 0x0008] = byte,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: `...` range patterns are deprecated
[INFO] [stderr]    --> src/cpu/memory.rs:155:19
[INFO] [stderr]     |
[INFO] [stderr] 155 |             0x6000...0x7FFF => self.sram[addr - 0x6000] = byte,
[INFO] [stderr]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] 
[INFO] [stderr] warning: unknown attribute `norun`
[INFO] [stderr]   --> src/cpu/addressing.rs:7:5
[INFO] [stderr]    |
[INFO] [stderr] 7  | /     /// # Absolute Addressing
[INFO] [stderr] 8  | |     /// Instructions using absolute addressing contain a full 16 bit address to identify the target location.
[INFO] [stderr] 9  | |     ///
[INFO] [stderr] 10 | |     /// # Example
[INFO] [stderr] ...  |
[INFO] [stderr] 14 | |     /// JSR WIBBLE      ;Call subroutine WIBBLE
[INFO] [stderr] 15 | |     /// ```
[INFO] [stderr]    | |___________^
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `no_run` to compile, but not run, the code sample during testing
[INFO] [stderr]    = help: this code block may be skipped during testing, because unknown attributes are treated as markers for code samples written in other programming languages, unless it is also explicitly marked as `rust`
[INFO] [stderr]    = note: `#[warn(rustdoc::invalid_codeblock_attributes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unknown attribute `norun`
[INFO] [stderr]   --> src/cpu/addressing.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 | /     /// # X Indexed Addressing
[INFO] [stderr] 18 | |     /// Instructions using X indexed absolute addressing contain a full 16-bit address and add the
[INFO] [stderr] 19 | |     /// contents of the X register. If X contains $13 and an instruction provides the address
[INFO] [stderr] 20 | |     /// `$1000`, then `$1013` will be used.
[INFO] [stderr] ...  |
[INFO] [stderr] 25 | |     /// ROR CRC,X       ;Rotate right one bit
[INFO] [stderr] 26 | |     /// ```
[INFO] [stderr]    | |___________^
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `no_run` to compile, but not run, the code sample during testing
[INFO] [stderr]    = help: this code block may be skipped during testing, because unknown attributes are treated as markers for code samples written in other programming languages, unless it is also explicitly marked as `rust`
[INFO] [stderr] 
[INFO] [stderr] warning: unknown attribute `norun`
[INFO] [stderr]   --> src/cpu/addressing.rs:28:5
[INFO] [stderr]    |
[INFO] [stderr] 28 | /     /// Y Indexed Addressing
[INFO] [stderr] 29 | |     /// The Y register indexed absolute addressing mode is the same as the previous mode only with
[INFO] [stderr] 30 | |     /// the contents of the Y register added to the 16 bit address from the instruction.
[INFO] [stderr] 31 | |     ///
[INFO] [stderr] ...  |
[INFO] [stderr] 35 | |     /// STA MEM,Y       ;Store accumulator in memory
[INFO] [stderr] 36 | |     /// ```
[INFO] [stderr]    | |___________^
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `no_run` to compile, but not run, the code sample during testing
[INFO] [stderr]    = help: this code block may be skipped during testing, because unknown attributes are treated as markers for code samples written in other programming languages, unless it is also explicitly marked as `rust`
[INFO] [stderr] 
[INFO] [stderr] warning: unknown attribute `norun`
[INFO] [stderr]   --> src/cpu/addressing.rs:41:5
[INFO] [stderr]    |
[INFO] [stderr] 41 | /     /// # Immediate Addressing
[INFO] [stderr] 42 | |     /// Immediate addressing allows the programmer to directly specify an 8 bit constant within the
[INFO] [stderr] 43 | |     /// instruction. It is indicated by a '#' symbol followed by an numeric expression.
[INFO] [stderr] 44 | |     ///
[INFO] [stderr] ...  |
[INFO] [stderr] 49 | |     /// LDY #HI LABEL   ;Load the MSB of a 16 bit address into Y
[INFO] [stderr] 50 | |     /// ```
[INFO] [stderr]    | |___________^
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `no_run` to compile, but not run, the code sample during testing
[INFO] [stderr]    = help: this code block may be skipped during testing, because unknown attributes are treated as markers for code samples written in other programming languages, unless it is also explicitly marked as `rust`
[INFO] [stderr] 
[INFO] [stderr] warning: unknown attribute `norun`
[INFO] [stderr]   --> src/cpu/addressing.rs:52:5
[INFO] [stderr]    |
[INFO] [stderr] 52 | /     /// # Indirect Addressing
[INFO] [stderr] 53 | |     /// JMP is the only 6502 instruction to support indirection. The instruction contains a 16 bit
[INFO] [stderr] 54 | |     /// address which identifies the location of the least significant byte of another 16 bit
[INFO] [stderr] 55 | |     /// memory address which is the real target of the instruction.
[INFO] [stderr] ...  |
[INFO] [stderr] 64 | |     /// JMP (TARGET)    ;Jump via a labelled memory area
[INFO] [stderr] 65 | |     /// ```
[INFO] [stderr]    | |___________^
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `no_run` to compile, but not run, the code sample during testing
[INFO] [stderr]    = help: this code block may be skipped during testing, because unknown attributes are treated as markers for code samples written in other programming languages, unless it is also explicitly marked as `rust`
[INFO] [stderr] 
[INFO] [stderr] warning: unknown attribute `norun`
[INFO] [stderr]   --> src/cpu/addressing.rs:67:5
[INFO] [stderr]    |
[INFO] [stderr] 67 | /     /// # Pre-Indexed Indirect Addressing
[INFO] [stderr] 68 | |     /// Indexed indirect addressing is normally used in conjunction with a table of address held on
[INFO] [stderr] 69 | |     /// zero page. The address of the table is taken from the instruction and the X register added
[INFO] [stderr] 70 | |     /// to it (with zero page wrap around) to give the location of the least significant byte of
[INFO] [stderr] ...  |
[INFO] [stderr] 76 | |     /// STA (MEM,X)     ;Store accumulator indirectly into memory
[INFO] [stderr] 77 | |     /// ```
[INFO] [stderr]    | |___________^
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `no_run` to compile, but not run, the code sample during testing
[INFO] [stderr]    = help: this code block may be skipped during testing, because unknown attributes are treated as markers for code samples written in other programming languages, unless it is also explicitly marked as `rust`
[INFO] [stderr] 
[INFO] [stderr] warning: unknown attribute `norun`
[INFO] [stderr]   --> src/cpu/addressing.rs:79:5
[INFO] [stderr]    |
[INFO] [stderr] 79 | /     /// # Post-Indexed Indirect Addressing
[INFO] [stderr] 80 | |     /// Indirect indirect addressing is the most common indirection mode used on the 6502. In
[INFO] [stderr] 81 | |     /// instruction contains the zero page location of the least significant byte of 16 bit
[INFO] [stderr] 82 | |     /// address. The Y register is dynamically added to this value to generated the actual target
[INFO] [stderr] ...  |
[INFO] [stderr] 88 | |     /// STA (DST),Y     ;Store accumulator indirectly into memory
[INFO] [stderr] 89 | |     /// ```
[INFO] [stderr]    | |___________^
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `no_run` to compile, but not run, the code sample during testing
[INFO] [stderr]    = help: this code block may be skipped during testing, because unknown attributes are treated as markers for code samples written in other programming languages, unless it is also explicitly marked as `rust`
[INFO] [stderr] 
[INFO] [stderr] warning: unknown attribute `norun`
[INFO] [stderr]    --> src/cpu/addressing.rs:91:5
[INFO] [stderr]     |
[INFO] [stderr] 91  | /     /// # Relative addressing
[INFO] [stderr] 92  | |     /// Relative addressing mode is used by branch instructions (e.g. `BEQ`, `BNE`, etc.) which
[INFO] [stderr] 93  | |     /// contain a signed 8 bit relative offset (e.g. `-128` to `+127`) which is added to program
[INFO] [stderr] 94  | |     /// counter if the condition is true. As the program counter itself is incremented during
[INFO] [stderr] ...   |
[INFO] [stderr] 101 | |     /// BNE *+4         ;Skip over the following 2 byte instruction
[INFO] [stderr] 102 | |     /// ```
[INFO] [stderr]     | |___________^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `no_run` to compile, but not run, the code sample during testing
[INFO] [stderr]     = help: this code block may be skipped during testing, because unknown attributes are treated as markers for code samples written in other programming languages, unless it is also explicitly marked as `rust`
[INFO] [stderr] 
[INFO] [stderr] warning: unknown attribute `norun`
[INFO] [stderr]    --> src/cpu/addressing.rs:104:5
[INFO] [stderr]     |
[INFO] [stderr] 104 | /     /// # Zero-Page Addressing
[INFO] [stderr] 105 | |     /// An instruction using zero page addressing mode has only an 8 bit address operand. This
[INFO] [stderr] 106 | |     /// limits it to addressing only the first 256 bytes of memory (e.g. `$0000` to `$00FF`) where
[INFO] [stderr] 107 | |     /// the most significant byte of the address is always zero. In zero page mode only the least
[INFO] [stderr] ...   |
[INFO] [stderr] 118 | |     /// ASL ANSWER      ;Shift labelled location ANSWER left
[INFO] [stderr] 119 | |     /// ```
[INFO] [stderr]     | |___________^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `no_run` to compile, but not run, the code sample during testing
[INFO] [stderr]     = help: this code block may be skipped during testing, because unknown attributes are treated as markers for code samples written in other programming languages, unless it is also explicitly marked as `rust`
[INFO] [stderr] 
[INFO] [stderr] warning: unknown attribute `norun`
[INFO] [stderr]    --> src/cpu/addressing.rs:121:5
[INFO] [stderr]     |
[INFO] [stderr] 121 | /     /// # Zero-Page X Indexed Addressing
[INFO] [stderr] 122 | |     /// The address to be accessed by an instruction using indexed zero page addressing is
[INFO] [stderr] 123 | |     /// calculated by taking the 8 bit zero page address from the instruction and adding the
[INFO] [stderr] 124 | |     /// current value of the X register to it. For example if the X register contains `$0F` and the
[INFO] [stderr] ...   |
[INFO] [stderr] 135 | |     /// AND TEMP,X      ;Logical AND accumulator with a zero page value
[INFO] [stderr] 136 | |     /// ```
[INFO] [stderr]     | |___________^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `no_run` to compile, but not run, the code sample during testing
[INFO] [stderr]     = help: this code block may be skipped during testing, because unknown attributes are treated as markers for code samples written in other programming languages, unless it is also explicitly marked as `rust`
[INFO] [stderr] 
[INFO] [stderr] warning: unknown attribute `norun`
[INFO] [stderr]    --> src/cpu/addressing.rs:138:5
[INFO] [stderr]     |
[INFO] [stderr] 138 | /     /// # Zero-Page Y Indexed Addressing
[INFO] [stderr] 139 | |     /// The address to be accessed by an instruction using indexed zero page addressing is
[INFO] [stderr] 140 | |     /// calculated by taking the 8 bit zero page address from the instruction and adding the
[INFO] [stderr] 141 | |     /// current value of the Y register to it. This mode can only be used with the LDX and STX
[INFO] [stderr] ...   |
[INFO] [stderr] 147 | |     /// STX TEMP,Y      ;Store the X register in a location on zero page
[INFO] [stderr] 148 | |     /// ```
[INFO] [stderr]     | |___________^
[INFO] [stderr]     |
[INFO] [stderr]     = help: use `no_run` to compile, but not run, the code sample during testing
[INFO] [stderr]     = help: this code block may be skipped during testing, because unknown attributes are treated as markers for code samples written in other programming languages, unless it is also explicitly marked as `rust`
[INFO] [stderr] 
[INFO] [stderr] warning: 21 warnings emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test src/cpu/memory.rs - cpu::memory::Memory::write (line 139) ... ok
[INFO] [stdout] test src/cpu/memory.rs - cpu::memory::Memory::read (line 107) ... ok
[INFO] [stdout] test src/cpu/memory.rs - cpu::memory::Memory::load_rom (line 82) ... ok
[INFO] [stdout] test src/cpu/memory.rs - cpu::memory::Memory::load_ram (line 47) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.66s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "e01294cab4b0da085fcb4b00536757730ced82afdf76efe9691807ea05ffc3fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e01294cab4b0da085fcb4b00536757730ced82afdf76efe9691807ea05ffc3fe", kill_on_drop: false }`
[INFO] [stdout] e01294cab4b0da085fcb4b00536757730ced82afdf76efe9691807ea05ffc3fe
