[INFO] cloning repository https://github.com/dfinder/rust_gb
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dfinder/rust_gb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdfinder%2Frust_gb", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdfinder%2Frust_gb'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1bc8a274f716fd70d7bf962ab9cef2494532b9d8
[INFO] checking dfinder/rust_gb against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdfinder%2Frust_gb" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dfinder/rust_gb
[INFO] finished tweaking git repo https://github.com/dfinder/rust_gb
[INFO] tweaked toml for git repo https://github.com/dfinder/rust_gb written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dfinder/rust_gb 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/dfinder/rust_gb 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-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 558d42021eb2fd14fa4978aa7751e5847629a57d7fae7ba61bd73516294d9732
[INFO] running `Command { std: "docker" "start" "558d42021eb2fd14fa4978aa7751e5847629a57d7fae7ba61bd73516294d9732", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "558d42021eb2fd14fa4978aa7751e5847629a57d7fae7ba61bd73516294d9732", 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" "558d42021eb2fd14fa4978aa7751e5847629a57d7fae7ba61bd73516294d9732" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "558d42021eb2fd14fa4978aa7751e5847629a57d7fae7ba61bd73516294d9732", 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" "558d42021eb2fd14fa4978aa7751e5847629a57d7fae7ba61bd73516294d9732" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]    Compiling sdl2 v0.37.0
[INFO] [stderr]     Checking jiff v0.2.17
[INFO] [stderr]     Checking fern v0.6.2
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]    Compiling sdl2-sys v0.37.0
[INFO] [stderr]     Checking imagine v0.0.5
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking env_filter v0.1.4
[INFO] [stderr]     Checking env_logger v0.11.8
[INFO] [stderr]    Compiling unit-enum v1.4.3
[INFO] [stderr]     Checking rust_gb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `info` and `trace`
[INFO] [stdout]   --> src/cpu/mod.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 |     use log::{info, trace};
[INFO] [stdout]    |               ^^^^  ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/cpu/mod.rs:844:16
[INFO] [stdout]     |
[INFO] [stdout] 844 |             if (result== 0xc182){
[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] 844 -             if (result== 0xc182){
[INFO] [stdout] 844 +             if result== 0xc182 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/memory/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     use log::info;
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::RangeFrom`
[INFO] [stdout]  --> src/screen/vram.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 |     use std::{fmt::Debug, ops::RangeFrom};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::pixels::Color`
[INFO] [stdout]  --> src/screen/vram.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use sdl2::pixels::Color;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `info`
[INFO] [stdout]   --> src/screen/mod.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 |     use log::{debug, info};
[INFO] [stdout]    |               ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `pixels::Color` and `rect::Point`
[INFO] [stdout]   --> src/screen/mod.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 |     use sdl2::{pixels::Color, rect::Point, render::Canvas, video::Window};
[INFO] [stdout]    |                ^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/screen/mod.rs:17:53
[INFO] [stdout]    |
[INFO] [stdout] 17 |             oam::oam::OamStruct, video_controller::{self, video_controller::VideoController},
[INFO] [stdout]    |                                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::vram::vram::Block`
[INFO] [stdout]   --> src/screen/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     use super::vram::vram::Block;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `env_logger::Builder`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use env_logger::Builder;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `std::u8`: all constants in this module replaced by associated constants on the type
[INFO] [stdout]   --> src/cpu/mod.rs:18:14
[INFO] [stdout]    |
[INFO] [stdout] 18 |     use std::u8;
[INFO] [stdout]    |              ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Keycode` and `event::Event`
[INFO] [stdout]  --> src/cpu/test.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use sdl2::{EventPump, event::Event, keyboard::{Keycode, Scancode}, pixels::Color};
[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: `info` and `trace`
[INFO] [stdout]   --> src/cpu/mod.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 |     use log::{info, trace};
[INFO] [stdout]    |               ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/cpu/mod.rs:844:16
[INFO] [stdout]     |
[INFO] [stdout] 844 |             if (result== 0xc182){
[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] 844 -             if (result== 0xc182){
[INFO] [stdout] 844 +             if result== 0xc182 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/memory/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     use log::info;
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::RangeFrom`
[INFO] [stdout]  --> src/screen/vram.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 |     use std::{fmt::Debug, ops::RangeFrom};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::pixels::Color`
[INFO] [stdout]  --> src/screen/vram.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use sdl2::pixels::Color;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `info`
[INFO] [stdout]   --> src/screen/mod.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 |     use log::{debug, info};
[INFO] [stdout]    |               ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `pixels::Color` and `rect::Point`
[INFO] [stdout]   --> src/screen/mod.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 |     use sdl2::{pixels::Color, rect::Point, render::Canvas, video::Window};
[INFO] [stdout]    |                ^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/screen/mod.rs:17:53
[INFO] [stdout]    |
[INFO] [stdout] 17 |             oam::oam::OamStruct, video_controller::{self, video_controller::VideoController},
[INFO] [stdout]    |                                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::vram::vram::Block`
[INFO] [stdout]   --> src/screen/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     use super::vram::vram::Block;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `env_logger::Builder`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use env_logger::Builder;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `std::u8`: all constants in this module replaced by associated constants on the type
[INFO] [stdout]   --> src/cpu/mod.rs:18:14
[INFO] [stdout]    |
[INFO] [stdout] 18 |     use std::u8;
[INFO] [stdout]    |              ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `i` is never read
[INFO] [stdout]    --> src/joypad/mod.rs:114:17
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 i.state = is_pressed
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret`
[INFO] [stdout]    --> src/screen/mod.rs:139:17
[INFO] [stdout]     |
[INFO] [stdout] 139 |             let ret = [GBColor::Transparent;160];
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_ret`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `v_key` is never read
[INFO] [stdout]   --> src/joypad/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     struct KeyWrapper {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 25 |         v_key: GBKey,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `KeyWrapper` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `queue` is never read
[INFO] [stdout]    --> src/audio/mod.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |     pub struct SquareWave {
[INFO] [stdout]     |                ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 207 |         queue: AudioQueue<u8>
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `queue` is never read
[INFO] [stdout]    --> src/audio/mod.rs:254:9
[INFO] [stdout]     |
[INFO] [stdout] 247 |     pub struct Wave {
[INFO] [stdout]     |                ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 254 |         queue: AudioQueue<u8>
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `queue` is never read
[INFO] [stdout]    --> src/audio/mod.rs:304:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |     pub struct Noise {
[INFO] [stdout]     |                ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 304 |         queue: AudioQueue<u8>
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `canvas` and `objs` are never read
[INFO] [stdout]   --> src/screen/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub struct Screen {
[INFO] [stdout]    |                ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |         canvas: Canvas<Window>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 31 |         dots: u16,
[INFO] [stdout] 32 |         objs: ([Option<u8>; 10], u8),
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `usize`
[INFO] [stdout]    --> src/memory/mod.rs:284:57
[INFO] [stdout]     |
[INFO] [stdout] 284 |                 0x0000..=0x7FFF => self.cart.memory_map(addr.into()), //ROM
[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] 284 -                 0x0000..=0x7FFF => self.cart.memory_map(addr.into()), //ROM
[INFO] [stdout] 284 +                 0x0000..=0x7FFF => self.cart.memory_map(addr), //ROM
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 284 -                 0x0000..=0x7FFF => self.cart.memory_map(addr.into()), //ROM
[INFO] [stdout] 284 +                 0x0000..=0x7FFF => self.cart.memory_map(<usize as Into<_>>::into(addr)), //ROM
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `usize`
[INFO] [stdout]    --> src/memory/mod.rs:285:61
[INFO] [stdout]     |
[INFO] [stdout] 285 |                 0x8000..=0x9FFF => self.ppu.vram.memory_map((addr - 0x8000).into()), //VRAM
[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] 285 -                 0x8000..=0x9FFF => self.ppu.vram.memory_map((addr - 0x8000).into()), //VRAM
[INFO] [stdout] 285 +                 0x8000..=0x9FFF => self.ppu.vram.memory_map((addr - 0x8000)), //VRAM
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 285 -                 0x8000..=0x9FFF => self.ppu.vram.memory_map((addr - 0x8000).into()), //VRAM
[INFO] [stdout] 285 +                 0x8000..=0x9FFF => self.ppu.vram.memory_map(<usize as Into<_>>::into((addr - 0x8000))), //VRAM
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `usize`
[INFO] [stdout]    --> src/memory/mod.rs:286:57
[INFO] [stdout]     |
[INFO] [stdout] 286 |                 0xA000..=0xBFFF => self.cart.memory_map(addr.into()), //External bus
[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] 286 -                 0xA000..=0xBFFF => self.cart.memory_map(addr.into()), //External bus
[INFO] [stdout] 286 +                 0xA000..=0xBFFF => self.cart.memory_map(addr), //External bus
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 286 -                 0xA000..=0xBFFF => self.cart.memory_map(addr.into()), //External bus
[INFO] [stdout] 286 +                 0xA000..=0xBFFF => self.cart.memory_map(<usize as Into<_>>::into(addr)), //External bus
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust_gb` (bin "rust_gb") due to 3 previous errors; 18 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: value assigned to `i` is never read
[INFO] [stdout]    --> src/joypad/mod.rs:114:17
[INFO] [stdout]     |
[INFO] [stdout] 114 |                 i.state = is_pressed
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/cpu/test.rs:48:20
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 Ok(e)=> (),
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/cpu/test.rs:49:21
[INFO] [stdout]    |
[INFO] [stdout] 49 |                 Err(err)=>break 'running
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret`
[INFO] [stdout]    --> src/screen/mod.rs:139:17
[INFO] [stdout]     |
[INFO] [stdout] 139 |             let ret = [GBColor::Transparent;160];
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_ret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `v_key` is never read
[INFO] [stdout]   --> src/joypad/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     struct KeyWrapper {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 25 |         v_key: GBKey,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `KeyWrapper` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `queue` is never read
[INFO] [stdout]    --> src/audio/mod.rs:207:9
[INFO] [stdout]     |
[INFO] [stdout] 201 |     pub struct SquareWave {
[INFO] [stdout]     |                ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 207 |         queue: AudioQueue<u8>
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `queue` is never read
[INFO] [stdout]    --> src/audio/mod.rs:254:9
[INFO] [stdout]     |
[INFO] [stdout] 247 |     pub struct Wave {
[INFO] [stdout]     |                ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 254 |         queue: AudioQueue<u8>
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `queue` is never read
[INFO] [stdout]    --> src/audio/mod.rs:304:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |     pub struct Noise {
[INFO] [stdout]     |                ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 304 |         queue: AudioQueue<u8>
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `canvas` and `objs` are never read
[INFO] [stdout]   --> src/screen/mod.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub struct Screen {
[INFO] [stdout]    |                ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |         canvas: Canvas<Window>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 31 |         dots: u16,
[INFO] [stdout] 32 |         objs: ([Option<u8>; 10], u8),
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `usize`
[INFO] [stdout]    --> src/memory/mod.rs:284:57
[INFO] [stdout]     |
[INFO] [stdout] 284 |                 0x0000..=0x7FFF => self.cart.memory_map(addr.into()), //ROM
[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] 284 -                 0x0000..=0x7FFF => self.cart.memory_map(addr.into()), //ROM
[INFO] [stdout] 284 +                 0x0000..=0x7FFF => self.cart.memory_map(addr), //ROM
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 284 -                 0x0000..=0x7FFF => self.cart.memory_map(addr.into()), //ROM
[INFO] [stdout] 284 +                 0x0000..=0x7FFF => self.cart.memory_map(<usize as Into<_>>::into(addr)), //ROM
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `usize`
[INFO] [stdout]    --> src/memory/mod.rs:285:61
[INFO] [stdout]     |
[INFO] [stdout] 285 |                 0x8000..=0x9FFF => self.ppu.vram.memory_map((addr - 0x8000).into()), //VRAM
[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] 285 -                 0x8000..=0x9FFF => self.ppu.vram.memory_map((addr - 0x8000).into()), //VRAM
[INFO] [stdout] 285 +                 0x8000..=0x9FFF => self.ppu.vram.memory_map((addr - 0x8000)), //VRAM
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 285 -                 0x8000..=0x9FFF => self.ppu.vram.memory_map((addr - 0x8000).into()), //VRAM
[INFO] [stdout] 285 +                 0x8000..=0x9FFF => self.ppu.vram.memory_map(<usize as Into<_>>::into((addr - 0x8000))), //VRAM
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `usize`
[INFO] [stdout]    --> src/memory/mod.rs:286:57
[INFO] [stdout]     |
[INFO] [stdout] 286 |                 0xA000..=0xBFFF => self.cart.memory_map(addr.into()), //External bus
[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] 286 -                 0xA000..=0xBFFF => self.cart.memory_map(addr.into()), //External bus
[INFO] [stdout] 286 +                 0xA000..=0xBFFF => self.cart.memory_map(addr), //External bus
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 286 -                 0xA000..=0xBFFF => self.cart.memory_map(addr.into()), //External bus
[INFO] [stdout] 286 +                 0xA000..=0xBFFF => self.cart.memory_map(<usize as Into<_>>::into(addr)), //External bus
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust_gb` (bin "rust_gb" test) due to 3 previous errors; 21 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "558d42021eb2fd14fa4978aa7751e5847629a57d7fae7ba61bd73516294d9732", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "558d42021eb2fd14fa4978aa7751e5847629a57d7fae7ba61bd73516294d9732", kill_on_drop: false }`
[INFO] [stdout] 558d42021eb2fd14fa4978aa7751e5847629a57d7fae7ba61bd73516294d9732
