[INFO] cloning repository https://github.com/Thermatix/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/Thermatix/cpu_emulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThermatix%2Fcpu_emulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThermatix%2Fcpu_emulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3e4aafaf480cd0342b562d011c0f9d9d2b87b638
[INFO] checking Thermatix/cpu_emulator against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThermatix%2Fcpu_emulator" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Thermatix/cpu_emulator
[INFO] finished tweaking git repo https://github.com/Thermatix/cpu_emulator
[INFO] tweaked toml for git repo https://github.com/Thermatix/cpu_emulator written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Thermatix/cpu_emulator on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Thermatix/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" "+a5689b034ad287112f709693384a37f1377eb9cc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f23cb49118fa023e4186fef1ac3d7c4547ed920986e39898ea0178011829ff7a
[INFO] running `Command { std: "docker" "start" "f23cb49118fa023e4186fef1ac3d7c4547ed920986e39898ea0178011829ff7a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f23cb49118fa023e4186fef1ac3d7c4547ed920986e39898ea0178011829ff7a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f23cb49118fa023e4186fef1ac3d7c4547ed920986e39898ea0178011829ff7a" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f23cb49118fa023e4186fef1ac3d7c4547ed920986e39898ea0178011829ff7a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f23cb49118fa023e4186fef1ac3d7c4547ed920986e39898ea0178011829ff7a" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking cpu_emulator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `TryFrom`
[INFO] [stdout]  --> src/processor.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::convert::{From, TryFrom};
[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 import: `BYTE`
[INFO] [stdout]  --> src/processor.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::opcodes::{BYTE, NIBBLE, OPCODELENGTH, OpCode};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TryFrom`
[INFO] [stdout]  --> src/processor.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::convert::{From, TryFrom};
[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 import: `BYTE`
[INFO] [stdout]  --> src/processor.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use super::opcodes::{BYTE, NIBBLE, OPCODELENGTH, OpCode};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NIBBLE`
[INFO] [stdout]  --> src/tests.rs:1:60
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{processor, address::Address, opcodes::{OpCode, NIBBLE, BYTE}};
[INFO] [stdout]   |                                                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n1`
[INFO] [stdout]    --> src/processor.rs:127:23
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 (0xB, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                       ^^ help: if this is intentional, prefix it with an underscore: `_n1`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n2`
[INFO] [stdout]    --> src/processor.rs:127:27
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 (0xB, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                           ^^ help: if this is intentional, prefix it with an underscore: `_n2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n3`
[INFO] [stdout]    --> src/processor.rs:127:31
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 (0xB, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                               ^^ help: if this is intentional, prefix it with an underscore: `_n3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n1`
[INFO] [stdout]    --> src/processor.rs:128:23
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 (0xC, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                       ^^ help: if this is intentional, prefix it with an underscore: `_n1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n2`
[INFO] [stdout]    --> src/processor.rs:128:27
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 (0xC, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                           ^^ help: if this is intentional, prefix it with an underscore: `_n2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n3`
[INFO] [stdout]    --> src/processor.rs:128:31
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 (0xC, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                               ^^ help: if this is intentional, prefix it with an underscore: `_n3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n1`
[INFO] [stdout]    --> src/processor.rs:129:23
[INFO] [stdout]     |
[INFO] [stdout] 129 |                 (0xD, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                       ^^ help: if this is intentional, prefix it with an underscore: `_n1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n2`
[INFO] [stdout]    --> src/processor.rs:129:27
[INFO] [stdout]     |
[INFO] [stdout] 129 |                 (0xD, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                           ^^ help: if this is intentional, prefix it with an underscore: `_n2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n3`
[INFO] [stdout]    --> src/processor.rs:129:31
[INFO] [stdout]     |
[INFO] [stdout] 129 |                 (0xD, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                               ^^ help: if this is intentional, prefix it with an underscore: `_n3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:130:23
[INFO] [stdout]     |
[INFO] [stdout] 130 |                 (0xE, x, 0x9, 0xE) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:131:23
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 (0xF, x, 0x0, 0x7) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:132:23
[INFO] [stdout]     |
[INFO] [stdout] 132 |                 (0xF, x, 0x0, 0xA) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:133:23
[INFO] [stdout]     |
[INFO] [stdout] 133 |                 (0xF, x, 0x1, 0x5) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:134:23
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 (0xF, x, 0x1, 0x8) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:135:23
[INFO] [stdout]     |
[INFO] [stdout] 135 |                 (0xF, x, 0x1, 0xE) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:136:23
[INFO] [stdout]     |
[INFO] [stdout] 136 |                 (0xF, x, 0x2, 0x9) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:137:23
[INFO] [stdout]     |
[INFO] [stdout] 137 |                 (0xF, x, 0x3, 0x3) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:138:23
[INFO] [stdout]     |
[INFO] [stdout] 138 |                 (0xF, x, 0x5, 0x5) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:139:23
[INFO] [stdout]     |
[INFO] [stdout] 139 |                 (0xF, x, 0x6, 0x5) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BASE` is never used
[INFO] [stdout]  --> src/rand.rs:1:7
[INFO] [stdout]   |
[INFO] [stdout] 1 | const BASE: u32 = 0b0_01111110_00000000000000000000000;
[INFO] [stdout]   |       ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fake` is never used
[INFO] [stdout]  --> src/rand.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn fake(seed: u8) -> f32 {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NamedRegister` is never used
[INFO] [stdout]  --> src/processor.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 |     enum NamedRegister {
[INFO] [stdout]   |          ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: this warning originates in the macro `back_to_enum` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CPU` is never constructed
[INFO] [stdout]   --> src/processor.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct CPU {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DecodedOpcode` is never used
[INFO] [stdout]   --> src/processor.rs:21:6
[INFO] [stdout]    |
[INFO] [stdout] 21 | type DecodedOpcode = (u8, u8, u8, u8);
[INFO] [stdout]    |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/processor.rs:59:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl CPU {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout]  59 |     pub fn copy_to_mem(&mut self, loc: usize, data: &[OpCode]) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn raw_copy_to_mem(&mut self, loc: usize, data: &[u8]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn add_to_mem(&mut self, loc: usize, oc: &OpCode) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn raw_add_to_mem(&mut self, loc: usize, high: u8, low: u8) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     fn read_opcode(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn decode(&mut self, code: u16) -> DecodedOpcode {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn run(&mut self) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn set_xy(&mut self, x: &usize, y: &usize) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     fn or_xy(&mut self, x: &usize, y: &usize) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     fn and_xy(&mut self, x: &usize, y: &usize) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn xor_xy(&mut self, x: &usize, y: &usize) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     fn add_xy(&mut self, x: &usize, y: &usize) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     fn  sub_xy(&mut self, x: &usize, y: &usize) {
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn  shift_right(&mut self, x: &usize, _y: &usize) {
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     fn  sub_yx(&mut self, x: &usize, y: &usize) {
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     fn  shift_left(&mut self, x: &usize, _y: &usize) {
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     fn goto(&mut self, addr: Address) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     fn skip_x_eq_nn(&mut self, x: &usize, nn: ByteConstant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     fn skip_x_neq_nn(&mut self, x: &usize, nn: ByteConstant) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     fn skip_x_eq_y(&mut self, x: &usize, y: &usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     fn set_x_to_nn(&mut self, x: &usize, nn: ByteConstant) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     fn add_nn_to_x(&mut self, x: &usize, nn: ByteConstant) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     fn skip_x_neq_y(&mut self, x: &usize, y: &usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     fn set_i_to_nnn(&mut self, addr: Address) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     fn call(&mut self, addr: Address) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     fn ret(&mut self) {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPCODELENGTH` is never used
[INFO] [stdout]  --> src/opcodes.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const OPCODELENGTH: usize = 2;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u8, u8, u8, u8)`
[INFO] [stdout]    --> src/processor.rs:104:20
[INFO] [stdout]     |
[INFO] [stdout] 104 |             match &opcode.into() {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 104 -             match &opcode.into() {
[INFO] [stdout] 104 +             match &opcode {
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 104 -             match &opcode.into() {
[INFO] [stdout] 104 +             match &<(u8, u8, u8, u8) as Into<_>>::into(opcode) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Address`
[INFO] [stdout]    --> src/processor.rs:217:32
[INFO] [stdout]     |
[INFO] [stdout] 217 |         self.program_counter = addr.into();
[INFO] [stdout]     |                                ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 217 -         self.program_counter = addr.into();
[INFO] [stdout] 217 +         self.program_counter = addr;
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 217 -         self.program_counter = addr.into();
[INFO] [stdout] 217 +         self.program_counter = <Address as Into<_>>::into(addr);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Address`
[INFO] [stdout]    --> src/processor.rs:262:42
[INFO] [stdout]     |
[INFO] [stdout] 262 |         self.stack[self.stack_pointer] = self.program_counter.into();
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 262 -         self.stack[self.stack_pointer] = self.program_counter.into();
[INFO] [stdout] 262 +         self.stack[self.stack_pointer] = self.program_counter;
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 262 -         self.stack[self.stack_pointer] = self.program_counter.into();
[INFO] [stdout] 262 +         self.stack[self.stack_pointer] = <Address as Into<_>>::into(self.program_counter);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Address`
[INFO] [stdout]    --> src/processor.rs:264:32
[INFO] [stdout]     |
[INFO] [stdout] 264 |         self.program_counter = addr.into();
[INFO] [stdout]     |                                ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 264 -         self.program_counter = addr.into();
[INFO] [stdout] 264 +         self.program_counter = addr;
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 264 -         self.program_counter = addr.into();
[INFO] [stdout] 264 +         self.program_counter = <Address as Into<_>>::into(addr);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Address`
[INFO] [stdout]    --> src/processor.rs:274:32
[INFO] [stdout]     |
[INFO] [stdout] 274 |         self.program_counter = call_addr.into();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 274 -         self.program_counter = call_addr.into();
[INFO] [stdout] 274 +         self.program_counter = call_addr;
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 274 -         self.program_counter = call_addr.into();
[INFO] [stdout] 274 +         self.program_counter = <Address as Into<_>>::into(call_addr);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `cpu_emulator` (bin "cpu_emulator") due to 5 previous errors; 28 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `n1`
[INFO] [stdout]    --> src/processor.rs:127:23
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 (0xB, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                       ^^ help: if this is intentional, prefix it with an underscore: `_n1`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n2`
[INFO] [stdout]    --> src/processor.rs:127:27
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 (0xB, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                           ^^ help: if this is intentional, prefix it with an underscore: `_n2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n3`
[INFO] [stdout]    --> src/processor.rs:127:31
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 (0xB, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                               ^^ help: if this is intentional, prefix it with an underscore: `_n3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n1`
[INFO] [stdout]    --> src/processor.rs:128:23
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 (0xC, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                       ^^ help: if this is intentional, prefix it with an underscore: `_n1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n2`
[INFO] [stdout]    --> src/processor.rs:128:27
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 (0xC, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                           ^^ help: if this is intentional, prefix it with an underscore: `_n2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n3`
[INFO] [stdout]    --> src/processor.rs:128:31
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 (0xC, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                               ^^ help: if this is intentional, prefix it with an underscore: `_n3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n1`
[INFO] [stdout]    --> src/processor.rs:129:23
[INFO] [stdout]     |
[INFO] [stdout] 129 |                 (0xD, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                       ^^ help: if this is intentional, prefix it with an underscore: `_n1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n2`
[INFO] [stdout]    --> src/processor.rs:129:27
[INFO] [stdout]     |
[INFO] [stdout] 129 |                 (0xD, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                           ^^ help: if this is intentional, prefix it with an underscore: `_n2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n3`
[INFO] [stdout]    --> src/processor.rs:129:31
[INFO] [stdout]     |
[INFO] [stdout] 129 |                 (0xD, n1, n2, n3) => unimplemented!(),
[INFO] [stdout]     |                               ^^ help: if this is intentional, prefix it with an underscore: `_n3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:130:23
[INFO] [stdout]     |
[INFO] [stdout] 130 |                 (0xE, x, 0x9, 0xE) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:131:23
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 (0xF, x, 0x0, 0x7) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:132:23
[INFO] [stdout]     |
[INFO] [stdout] 132 |                 (0xF, x, 0x0, 0xA) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:133:23
[INFO] [stdout]     |
[INFO] [stdout] 133 |                 (0xF, x, 0x1, 0x5) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:134:23
[INFO] [stdout]     |
[INFO] [stdout] 134 |                 (0xF, x, 0x1, 0x8) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:135:23
[INFO] [stdout]     |
[INFO] [stdout] 135 |                 (0xF, x, 0x1, 0xE) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:136:23
[INFO] [stdout]     |
[INFO] [stdout] 136 |                 (0xF, x, 0x2, 0x9) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:137:23
[INFO] [stdout]     |
[INFO] [stdout] 137 |                 (0xF, x, 0x3, 0x3) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:138:23
[INFO] [stdout]     |
[INFO] [stdout] 138 |                 (0xF, x, 0x5, 0x5) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/processor.rs:139:23
[INFO] [stdout]     |
[INFO] [stdout] 139 |                 (0xF, x, 0x6, 0x5) => unimplemented!(),
[INFO] [stdout]     |                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BASE` is never used
[INFO] [stdout]  --> src/rand.rs:1:7
[INFO] [stdout]   |
[INFO] [stdout] 1 | const BASE: u32 = 0b0_01111110_00000000000000000000000;
[INFO] [stdout]   |       ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fake` is never used
[INFO] [stdout]  --> src/rand.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn fake(seed: u8) -> f32 {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `(u8, u8, u8, u8)`
[INFO] [stdout]    --> src/processor.rs:104:20
[INFO] [stdout]     |
[INFO] [stdout] 104 |             match &opcode.into() {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 104 -             match &opcode.into() {
[INFO] [stdout] 104 +             match &opcode {
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 104 -             match &opcode.into() {
[INFO] [stdout] 104 +             match &<(u8, u8, u8, u8) as Into<_>>::into(opcode) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Address`
[INFO] [stdout]    --> src/processor.rs:217:32
[INFO] [stdout]     |
[INFO] [stdout] 217 |         self.program_counter = addr.into();
[INFO] [stdout]     |                                ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 217 -         self.program_counter = addr.into();
[INFO] [stdout] 217 +         self.program_counter = addr;
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 217 -         self.program_counter = addr.into();
[INFO] [stdout] 217 +         self.program_counter = <Address as Into<_>>::into(addr);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Address`
[INFO] [stdout]    --> src/processor.rs:262:42
[INFO] [stdout]     |
[INFO] [stdout] 262 |         self.stack[self.stack_pointer] = self.program_counter.into();
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 262 -         self.stack[self.stack_pointer] = self.program_counter.into();
[INFO] [stdout] 262 +         self.stack[self.stack_pointer] = self.program_counter;
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 262 -         self.stack[self.stack_pointer] = self.program_counter.into();
[INFO] [stdout] 262 +         self.stack[self.stack_pointer] = <Address as Into<_>>::into(self.program_counter);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Address`
[INFO] [stdout]    --> src/processor.rs:264:32
[INFO] [stdout]     |
[INFO] [stdout] 264 |         self.program_counter = addr.into();
[INFO] [stdout]     |                                ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 264 -         self.program_counter = addr.into();
[INFO] [stdout] 264 +         self.program_counter = addr;
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 264 -         self.program_counter = addr.into();
[INFO] [stdout] 264 +         self.program_counter = <Address as Into<_>>::into(addr);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Address`
[INFO] [stdout]    --> src/processor.rs:274:32
[INFO] [stdout]     |
[INFO] [stdout] 274 |         self.program_counter = call_addr.into();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 274 -         self.program_counter = call_addr.into();
[INFO] [stdout] 274 +         self.program_counter = call_addr;
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 274 -         self.program_counter = call_addr.into();
[INFO] [stdout] 274 +         self.program_counter = <Address as Into<_>>::into(call_addr);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `cpu_emulator` (bin "cpu_emulator" test) due to 5 previous errors; 24 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f23cb49118fa023e4186fef1ac3d7c4547ed920986e39898ea0178011829ff7a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f23cb49118fa023e4186fef1ac3d7c4547ed920986e39898ea0178011829ff7a", kill_on_drop: false }`
[INFO] [stdout] f23cb49118fa023e4186fef1ac3d7c4547ed920986e39898ea0178011829ff7a
