[INFO] cloning repository https://github.com/SapphireAmoeba5/rust-cpu-emulator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/SapphireAmoeba5/rust-cpu-emulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSapphireAmoeba5%2Frust-cpu-emulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSapphireAmoeba5%2Frust-cpu-emulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5536e14d416f2dd27c738a3def840c9c840cef93
[INFO] checking SapphireAmoeba5/rust-cpu-emulator against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSapphireAmoeba5%2Frust-cpu-emulator" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/SapphireAmoeba5/rust-cpu-emulator
[INFO] finished tweaking git repo https://github.com/SapphireAmoeba5/rust-cpu-emulator
[INFO] tweaked toml for git repo https://github.com/SapphireAmoeba5/rust-cpu-emulator written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/SapphireAmoeba5/rust-cpu-emulator on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/SapphireAmoeba5/rust-cpu-emulator 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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded os_str_bytes v6.3.0
[INFO] [stderr]   Downloaded path-dedot v3.0.18
[INFO] [stderr]   Downloaded path-absolutize v3.0.14
[INFO] [stderr]   Downloaded unicode-ident v1.0.4
[INFO] [stderr]   Downloaded clap_derive v3.2.18
[INFO] [stderr]   Downloaded iset v0.1.1
[INFO] [stderr]   Downloaded proc-macro2 v1.0.44
[INFO] [stderr]   Downloaded textwrap v0.15.1
[INFO] [stderr]   Downloaded syn v1.0.101
[INFO] [stderr]   Downloaded clap v3.2.22
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] be314bcd02b09cd6e08f1db20b29a0cdc767f3abf55b0e8b3d3c9191320f3834
[INFO] running `Command { std: "docker" "start" "-a" "be314bcd02b09cd6e08f1db20b29a0cdc767f3abf55b0e8b3d3c9191320f3834", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "be314bcd02b09cd6e08f1db20b29a0cdc767f3abf55b0e8b3d3c9191320f3834", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "be314bcd02b09cd6e08f1db20b29a0cdc767f3abf55b0e8b3d3c9191320f3834", kill_on_drop: false }`
[INFO] [stdout] be314bcd02b09cd6e08f1db20b29a0cdc767f3abf55b0e8b3d3c9191320f3834
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a4c62d30059cdfa7b39da594871aed1953de6d0cafd76cb3118d1d7cabaa13af
[INFO] running `Command { std: "docker" "start" "-a" "a4c62d30059cdfa7b39da594871aed1953de6d0cafd76cb3118d1d7cabaa13af", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.44
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]    Compiling unicode-ident v1.0.4
[INFO] [stderr]    Compiling syn v1.0.101
[INFO] [stderr]    Compiling libc v0.2.137
[INFO] [stderr]     Checking once_cell v1.15.0
[INFO] [stderr]     Checking os_str_bytes v6.3.0
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]     Checking textwrap v0.15.1
[INFO] [stderr]     Checking iset v0.1.1
[INFO] [stderr]     Checking libloading v0.7.3
[INFO] [stderr]     Checking clap_lex v0.2.4
[INFO] [stderr]     Checking path-dedot v3.0.18
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking path-absolutize v3.0.14
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling clap_derive v3.2.18
[INFO] [stderr]     Checking clap v3.2.22
[INFO] [stderr]     Checking rust-cpu-emulator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/cpu/register_id.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Debug, Copy, Clone, FromPrimitive)]
[INFO] [stdout]   |                              ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `FromPrimitive` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = help: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::debug_println`
[INFO] [stdout]  --> src/config_file_parse/try_parse.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::debug_println;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PortBusDevice` and `debug_println`
[INFO] [stdout]  --> src/config_file_parse.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     debug_println, library_device::LibraryPortDevice, AddressBus, LibraryAddressDevice, PortBus,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 5 |     PortBusDevice,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf`, `cell::RefCell`, `ffi::OsStr`, `fs`, `ops::Add`, `rc::Rc`, and `self`
[INFO] [stdout]   --> src/config_file_parse.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     cell::RefCell,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 10 |     env,
[INFO] [stdout] 11 |     ffi::OsStr,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 12 |     fs,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 13 |     ops::Add,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 14 |     path::{self, Path, PathBuf},
[INFO] [stdout]    |            ^^^^        ^^^^^^^
[INFO] [stdout] 15 |     rc::Rc,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_derive::FromPrimitive`
[INFO] [stdout]  --> src/cpu/instructions.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use num_derive::FromPrimitive;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/cpu/instructions.rs:321:12
[INFO] [stdout]     |
[INFO] [stdout] 321 |         if (rhs_value == 0) {
[INFO] [stdout]     |            ^              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 321 -         if (rhs_value == 0) {
[INFO] [stdout] 321 +         if rhs_value == 0  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LookupEntry`
[INFO] [stdout]  --> src/cpu.rs:9:32
[INFO] [stdout]   |
[INFO] [stdout] 9 | use self::instruction_lookup::{LookupEntry, LOOKUP_TABLE};
[INFO] [stdout]   |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fmt::Display` and `ops::Add`
[INFO] [stdout]   --> src/cpu.rs:17:26
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::{cell::RefCell, fmt::Display, ops::Add, rc::Rc, time::Duration};
[INFO] [stdout]    |                          ^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `Symbol`
[INFO] [stdout]  --> src/library_device.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use libloading::{Error, Library, Symbol};
[INFO] [stdout]   |                  ^^^^^           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `Instant`
[INFO] [stdout]   --> src/main.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/cpu/register_id.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Debug, Copy, Clone, FromPrimitive)]
[INFO] [stdout]   |                              ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `FromPrimitive` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = help: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::debug_println`
[INFO] [stdout]  --> src/config_file_parse/try_parse.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::debug_println;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PortBusDevice` and `debug_println`
[INFO] [stdout]  --> src/config_file_parse.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     debug_println, library_device::LibraryPortDevice, AddressBus, LibraryAddressDevice, PortBus,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 5 |     PortBusDevice,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf`, `cell::RefCell`, `ffi::OsStr`, `fs`, `ops::Add`, `rc::Rc`, and `self`
[INFO] [stdout]   --> src/config_file_parse.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     cell::RefCell,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 10 |     env,
[INFO] [stdout] 11 |     ffi::OsStr,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 12 |     fs,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 13 |     ops::Add,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 14 |     path::{self, Path, PathBuf},
[INFO] [stdout]    |            ^^^^        ^^^^^^^
[INFO] [stdout] 15 |     rc::Rc,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_derive::FromPrimitive`
[INFO] [stdout]  --> src/cpu/instructions.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use num_derive::FromPrimitive;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/cpu/instructions.rs:321:12
[INFO] [stdout]     |
[INFO] [stdout] 321 |         if (rhs_value == 0) {
[INFO] [stdout]     |            ^              ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 321 -         if (rhs_value == 0) {
[INFO] [stdout] 321 +         if rhs_value == 0  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LookupEntry`
[INFO] [stdout]  --> src/cpu.rs:9:32
[INFO] [stdout]   |
[INFO] [stdout] 9 | use self::instruction_lookup::{LookupEntry, LOOKUP_TABLE};
[INFO] [stdout]   |                                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fmt::Display` and `ops::Add`
[INFO] [stdout]   --> src/cpu.rs:17:26
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::{cell::RefCell, fmt::Display, ops::Add, rc::Rc, time::Duration};
[INFO] [stdout]    |                          ^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `Symbol`
[INFO] [stdout]  --> src/library_device.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use libloading::{Error, Library, Symbol};
[INFO] [stdout]   |                  ^^^^^           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `Instant`
[INFO] [stdout]   --> src/main.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]    --> src/cpu/instructions.rs:580:13
[INFO] [stdout]     |
[INFO] [stdout] 580 |         let size: Size = Size::try_from(1 << (fetched_byte >> 6 & 0b11))
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]    --> src/cpu/instructions.rs:580:13
[INFO] [stdout]     |
[INFO] [stdout] 580 |         let size: Size = Size::try_from(1 << (fetched_byte >> 6 & 0b11))
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let mut address_bus: Rc<RefCell<AddressBus>> = Rc::new(RefCell::new(AddressBus::new()));
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut port_bus: Rc<RefCell<PortBus>> = Rc::new(RefCell::new(PortBus::new()));
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `valid_identifier_character` is never used
[INFO] [stdout]   --> src/config_file_parse/try_parse.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn valid_identifier_character(ch: char) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `push_byte`, `push_word`, `push_dword`, `pop_byte`, `pop_word`, and `pop_dword` are never used
[INFO] [stdout]    --> src/cpu.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl Cpu {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn push_byte(&mut self, value: u8) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn push_word(&mut self, value: u16) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn push_dword(&mut self, value: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn pop_byte(&mut self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn pop_word(&mut self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     fn pop_dword(&mut self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_register` is never used
[INFO] [stdout]    --> src/cpu.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 230 | impl Cpu {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] 231 |     fn is_register(&self, idx: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `does_signed_div_overflow` is never used
[INFO] [stdout]   --> src/cpu/instructions.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn does_signed_div_overflow(lhs: u64, rhs: u64, size: Size) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GENERAL_PROTECTION_FAULT` is never used
[INFO] [stdout]  --> src/cpu/reserved_idt_entries.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const GENERAL_PROTECTION_FAULT: u8 = 2;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `library` is never read
[INFO] [stdout]  --> src/library_device.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct LibraryAddressDevice {
[INFO] [stdout]   |            -------------------- field in this struct
[INFO] [stdout] 8 |     library: Library,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `library` is never read
[INFO] [stdout]    --> src/library_device.rs:162:5
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub struct LibraryPortDevice {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 162 |     library: Library,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remove_device` is never used
[INFO] [stdout]   --> src/port_bus.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl PortBus {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn remove_device(&mut self, port: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/config_file_parse/try_parse.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn try_parse_number(mut number: &str) -> Result<u64, Cow<str>> {
[INFO] [stdout]   |                                     ^^^^                 ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]   |                                     |
[INFO] [stdout]   |                                     the lifetime is elided here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn try_parse_number(mut number: &str) -> Result<u64, Cow<'_, str>> {
[INFO] [stdout]   |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/config_file_parse/try_parse.rs:29:23
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn try_parse_hex(hex: &str) -> Result<Option<u64>, Cow<str>> {
[INFO] [stdout]    |                       ^^^^                         ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn try_parse_hex(hex: &str) -> Result<Option<u64>, Cow<'_, str>> {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/config_file_parse/try_parse.rs:46:26
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn try_parse_binary(bin: &str) -> Result<Option<u64>, Cow<str>> {
[INFO] [stdout]    |                          ^^^^                         ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn try_parse_binary(bin: &str) -> Result<Option<u64>, Cow<'_, str>> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/config_file_parse/try_parse.rs:63:27
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn try_parse_decimal(bin: &str) -> Result<u64, Cow<str>> {
[INFO] [stdout]    |                           ^^^^                 ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn try_parse_decimal(bin: &str) -> Result<u64, Cow<'_, str>> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/cpu/register_id.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Debug, Copy, Clone, FromPrimitive)]
[INFO] [stdout]   |                              ^------------
[INFO] [stdout]   |                              |
[INFO] [stdout]   |                              `FromPrimitive` is not local
[INFO] [stdout]   |                              move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_RegisterId`
[INFO] [stdout] 4 | pub enum RegisterId {
[INFO] [stdout]   |          ---------- `RegisterId` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let mut address_bus: Rc<RefCell<AddressBus>> = Rc::new(RefCell::new(AddressBus::new()));
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut port_bus: Rc<RefCell<PortBus>> = Rc::new(RefCell::new(PortBus::new()));
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `valid_identifier_character` is never used
[INFO] [stdout]   --> src/config_file_parse/try_parse.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn valid_identifier_character(ch: char) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `push_byte`, `push_word`, `push_dword`, `pop_byte`, `pop_word`, and `pop_dword` are never used
[INFO] [stdout]    --> src/cpu.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl Cpu {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn push_byte(&mut self, value: u8) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn push_word(&mut self, value: u16) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn push_dword(&mut self, value: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn pop_byte(&mut self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn pop_word(&mut self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     fn pop_dword(&mut self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_register` is never used
[INFO] [stdout]    --> src/cpu.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 230 | impl Cpu {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] 231 |     fn is_register(&self, idx: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `does_signed_div_overflow` is never used
[INFO] [stdout]   --> src/cpu/instructions.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn does_signed_div_overflow(lhs: u64, rhs: u64, size: Size) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GENERAL_PROTECTION_FAULT` is never used
[INFO] [stdout]  --> src/cpu/reserved_idt_entries.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const GENERAL_PROTECTION_FAULT: u8 = 2;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `library` is never read
[INFO] [stdout]  --> src/library_device.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct LibraryAddressDevice {
[INFO] [stdout]   |            -------------------- field in this struct
[INFO] [stdout] 8 |     library: Library,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `library` is never read
[INFO] [stdout]    --> src/library_device.rs:162:5
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub struct LibraryPortDevice {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 162 |     library: Library,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remove_device` is never used
[INFO] [stdout]   --> src/port_bus.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl PortBus {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn remove_device(&mut self, port: u16) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]  --> src/config_file_parse/try_parse.rs:4:37
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn try_parse_number(mut number: &str) -> Result<u64, Cow<str>> {
[INFO] [stdout]   |                                     ^^^^                 ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]   |                                     |
[INFO] [stdout]   |                                     the lifetime is elided here
[INFO] [stdout]   |
[INFO] [stdout]   = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn try_parse_number(mut number: &str) -> Result<u64, Cow<'_, str>> {
[INFO] [stdout]   |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/config_file_parse/try_parse.rs:29:23
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn try_parse_hex(hex: &str) -> Result<Option<u64>, Cow<str>> {
[INFO] [stdout]    |                       ^^^^                         ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn try_parse_hex(hex: &str) -> Result<Option<u64>, Cow<'_, str>> {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/config_file_parse/try_parse.rs:46:26
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn try_parse_binary(bin: &str) -> Result<Option<u64>, Cow<str>> {
[INFO] [stdout]    |                          ^^^^                         ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn try_parse_binary(bin: &str) -> Result<Option<u64>, Cow<'_, str>> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/config_file_parse/try_parse.rs:63:27
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn try_parse_decimal(bin: &str) -> Result<u64, Cow<str>> {
[INFO] [stdout]    |                           ^^^^                 ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn try_parse_decimal(bin: &str) -> Result<u64, Cow<'_, str>> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/cpu/register_id.rs:3:30
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Debug, Copy, Clone, FromPrimitive)]
[INFO] [stdout]   |                              ^------------
[INFO] [stdout]   |                              |
[INFO] [stdout]   |                              `FromPrimitive` is not local
[INFO] [stdout]   |                              move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_RegisterId`
[INFO] [stdout] 4 | pub enum RegisterId {
[INFO] [stdout]   |          ---------- `RegisterId` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.11s
[INFO] running `Command { std: "docker" "inspect" "a4c62d30059cdfa7b39da594871aed1953de6d0cafd76cb3118d1d7cabaa13af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a4c62d30059cdfa7b39da594871aed1953de6d0cafd76cb3118d1d7cabaa13af", kill_on_drop: false }`
[INFO] [stdout] a4c62d30059cdfa7b39da594871aed1953de6d0cafd76cb3118d1d7cabaa13af
