[INFO] cloning repository https://github.com/stianeklund/pacman-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/stianeklund/pacman-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstianeklund%2Fpacman-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstianeklund%2Fpacman-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1f14cba485b261fee48bcaad2d11325ec509ad2a
[INFO] testing stianeklund/pacman-rs against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstianeklund%2Fpacman-rs" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/stianeklund/pacman-rs
[INFO] finished tweaking git repo https://github.com/stianeklund/pacman-rs
[INFO] tweaked toml for git repo https://github.com/stianeklund/pacman-rs written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/stianeklund/pacman-rs on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/stianeklund/pacman-rs 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" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/stianeklund/z80-rs`
[INFO] [stderr]      Locking 121 packages to latest compatible versions
[INFO] [stderr]       Adding aho-corasick v1.1.4
[INFO] [stderr]       Adding android_system_properties v0.1.5
[INFO] [stderr]       Adding ansi_term v0.12.1
[INFO] [stderr]       Adding anyhow v1.0.102
[INFO] [stderr]       Adding atty v0.2.14
[INFO] [stderr]       Adding bindgen v0.56.0
[INFO] [stderr]       Adding bitflags v2.11.0
[INFO] [stderr]       Adding bumpalo v3.20.2
[INFO] [stderr]     Updating cc v1.0.52 -> v1.2.58
[INFO] [stderr]       Adding cexpr v0.4.0
[INFO] [stderr]       Adding cfg-if v1.0.4
[INFO] [stderr]       Adding chrono v0.4.44
[INFO] [stderr]       Adding clang-sys v1.8.1
[INFO] [stderr]       Adding clap v2.34.0
[INFO] [stderr]       Adding core-foundation-sys v0.8.7
[INFO] [stderr]       Adding cty v0.2.2
[INFO] [stderr]       Adding downcast-rs v1.2.1
[INFO] [stderr]       Adding env_logger v0.8.4
[INFO] [stderr]       Adding equivalent v1.0.2
[INFO] [stderr]       Adding errno v0.3.14
[INFO] [stderr]       Adding fastrand v2.3.0
[INFO] [stderr]       Adding find-msvc-tools v0.1.9
[INFO] [stderr]       Adding flexi_logger v0.15.12 (available: v0.31.8)
[INFO] [stderr]       Adding foldhash v0.1.5
[INFO] [stderr]       Adding getrandom v0.4.2
[INFO] [stderr]       Adding glob v0.3.3
[INFO] [stderr]       Adding hashbrown v0.15.5
[INFO] [stderr]       Adding hashbrown v0.16.1
[INFO] [stderr]       Adding heck v0.5.0
[INFO] [stderr]       Adding hermit-abi v0.1.19
[INFO] [stderr]       Adding humantime v2.3.0
[INFO] [stderr]       Adding iana-time-zone v0.1.65
[INFO] [stderr]       Adding iana-time-zone-haiku v0.1.2
[INFO] [stderr]       Adding id-arena v2.3.0
[INFO] [stderr]       Adding indexmap v2.13.0
[INFO] [stderr]       Adding itoa v1.0.18
[INFO] [stderr]       Adding js-sys v0.3.92
[INFO] [stderr]       Adding lazycell v1.3.0
[INFO] [stderr]       Adding leb128fmt v0.1.0
[INFO] [stderr]     Updating libc v0.2.69 -> v0.2.183
[INFO] [stderr]       Adding libloading v0.8.9
[INFO] [stderr]       Adding linux-raw-sys v0.12.1
[INFO] [stderr]       Adding log v0.4.29
[INFO] [stderr]       Adding memchr v2.8.0
[INFO] [stderr]       Adding memoffset v0.6.5
[INFO] [stderr]     Updating minifb v0.10.7 -> v0.19.3 (available: v0.28.0)
[INFO] [stderr]       Adding nix v0.20.2
[INFO] [stderr]       Adding nom v5.1.3
[INFO] [stderr]       Adding once_cell v1.21.4
[INFO] [stderr]       Adding peeking_take_while v0.1.2
[INFO] [stderr]     Updating pkg-config v0.3.17 -> v0.3.32
[INFO] [stderr]       Adding prettyplease v0.2.37
[INFO] [stderr]       Adding proc-macro2 v1.0.106
[INFO] [stderr]       Adding quote v1.0.45
[INFO] [stderr]       Adding r-efi v6.0.0
[INFO] [stderr]       Adding raw-window-handle v0.3.4
[INFO] [stderr]       Adding raw-window-handle v0.4.3
[INFO] [stderr]       Adding regex v1.12.3
[INFO] [stderr]       Adding regex-automata v0.4.14
[INFO] [stderr]       Adding regex-syntax v0.8.10
[INFO] [stderr]       Adding rustc-hash v1.1.0
[INFO] [stderr]       Adding rustix v1.1.4
[INFO] [stderr]       Adding rustversion v1.0.22
[INFO] [stderr]       Adding semver v1.0.27
[INFO] [stderr]       Adding serde v1.0.228
[INFO] [stderr]       Adding serde_core v1.0.228
[INFO] [stderr]       Adding serde_derive v1.0.228
[INFO] [stderr]       Adding serde_json v1.0.149
[INFO] [stderr]       Adding shlex v0.1.1
[INFO] [stderr]       Adding shlex v1.3.0
[INFO] [stderr]       Adding smallvec v1.15.1
[INFO] [stderr]       Adding strsim v0.8.0
[INFO] [stderr]       Adding syn v2.0.117
[INFO] [stderr]       Adding tempfile v3.27.0
[INFO] [stderr]       Adding termcolor v1.4.1
[INFO] [stderr]       Adding textwrap v0.11.0
[INFO] [stderr]       Adding thiserror v1.0.69
[INFO] [stderr]       Adding thiserror-impl v1.0.69
[INFO] [stderr]       Adding unicode-ident v1.0.24
[INFO] [stderr]       Adding unicode-width v0.1.14
[INFO] [stderr]       Adding unicode-xid v0.2.6
[INFO] [stderr]       Adding vec_map v0.8.2
[INFO] [stderr]       Adding version_check v0.9.5
[INFO] [stderr]       Adding wasip2 v1.0.2+wasi-0.2.9
[INFO] [stderr]       Adding wasip3 v0.4.0+wasi-0.3.0-rc-2026-01-06
[INFO] [stderr]       Adding wasm-bindgen v0.2.115
[INFO] [stderr]       Adding wasm-bindgen-macro v0.2.115
[INFO] [stderr]       Adding wasm-bindgen-macro-support v0.2.115
[INFO] [stderr]       Adding wasm-bindgen-shared v0.2.115
[INFO] [stderr]       Adding wasm-encoder v0.244.0
[INFO] [stderr]       Adding wasm-metadata v0.244.0
[INFO] [stderr]       Adding wasmparser v0.244.0
[INFO] [stderr]       Adding wayland-client v0.28.6
[INFO] [stderr]       Adding wayland-commons v0.28.6
[INFO] [stderr]       Adding wayland-cursor v0.28.6
[INFO] [stderr]       Adding wayland-protocols v0.28.6
[INFO] [stderr]       Adding wayland-scanner v0.28.6
[INFO] [stderr]       Adding wayland-sys v0.28.6
[INFO] [stderr]       Adding which v3.1.1
[INFO] [stderr]       Adding winapi-util v0.1.11
[INFO] [stderr]       Adding windows-core v0.62.2
[INFO] [stderr]       Adding windows-implement v0.60.2
[INFO] [stderr]       Adding windows-interface v0.59.3
[INFO] [stderr]       Adding windows-link v0.2.1
[INFO] [stderr]       Adding windows-result v0.4.1
[INFO] [stderr]       Adding windows-strings v0.5.1
[INFO] [stderr]       Adding windows-sys v0.61.2
[INFO] [stderr]       Adding wit-bindgen v0.51.0
[INFO] [stderr]       Adding wit-bindgen-core v0.51.0
[INFO] [stderr]       Adding wit-bindgen-rust v0.51.0
[INFO] [stderr]       Adding wit-bindgen-rust-macro v0.51.0
[INFO] [stderr]       Adding wit-component v0.244.0
[INFO] [stderr]       Adding wit-parser v0.244.0
[INFO] [stderr]     Updating x11-dl v2.14.0 -> v2.21.0
[INFO] [stderr]       Adding xcursor v0.3.10
[INFO] [stderr]       Adding xkb v0.2.1
[INFO] [stderr]       Adding xkbcommon-sys v0.7.5
[INFO] [stderr]       Adding xml-rs v0.8.28
[INFO] [stderr]       Adding yansi v0.5.1
[INFO] [stderr]       Adding z80-rs v0.1.0 (https://github.com/stianeklund/z80-rs?branch=master#563f6195)
[INFO] [stderr]       Adding zmij v1.0.21
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded num-iter v0.1.40
[INFO] [stderr]   Downloaded minifb v0.19.3
[INFO] [stderr]   Downloaded sdl2 v0.32.2
[INFO] [stderr]   Downloaded flexi_logger v0.15.12
[INFO] [stderr]   Downloaded sdl2-sys v0.32.6
[INFO] [stderr]   Downloaded nix v0.20.2
[INFO] [stderr]   Downloaded orbclient v0.3.27
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a8b9e9492175bff8df5e83b9d8c1e1bade81804d834c0cde4e7e1bfe853c0e7a
[INFO] running `Command { std: "docker" "start" "-a" "a8b9e9492175bff8df5e83b9d8c1e1bade81804d834c0cde4e7e1bfe853c0e7a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a8b9e9492175bff8df5e83b9d8c1e1bade81804d834c0cde4e7e1bfe853c0e7a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a8b9e9492175bff8df5e83b9d8c1e1bade81804d834c0cde4e7e1bfe853c0e7a", kill_on_drop: false }`
[INFO] [stdout] a8b9e9492175bff8df5e83b9d8c1e1bade81804d834c0cde4e7e1bfe853c0e7a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c25cb037565de291a3f4eb8b0e5534e2d18ffe428e5649a5683e578692f526a9
[INFO] running `Command { std: "docker" "start" "-a" "c25cb037565de291a3f4eb8b0e5534e2d18ffe428e5649a5683e578692f526a9", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling xml-rs v0.8.28
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]    Compiling nom v5.1.3
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling wayland-sys v0.28.6
[INFO] [stderr]    Compiling humantime v2.3.0
[INFO] [stderr]    Compiling num-traits v0.2.11
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling minifb v0.19.3
[INFO] [stderr]    Compiling yansi v0.5.1
[INFO] [stderr]    Compiling z80-rs v0.1.0 (https://github.com/stianeklund/z80-rs?branch=master#563f6195)
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling bindgen v0.56.0
[INFO] [stderr]    Compiling wayland-scanner v0.28.6
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling wayland-client v0.28.6
[INFO] [stderr]    Compiling wayland-protocols v0.28.6
[INFO] [stderr]    Compiling cexpr v0.4.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling which v3.1.1
[INFO] [stderr]    Compiling nix v0.20.2
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling raw-window-handle v0.3.4
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling env_logger v0.8.4
[INFO] [stderr]    Compiling wayland-commons v0.28.6
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling flexi_logger v0.15.12
[INFO] [stderr]    Compiling wayland-cursor v0.28.6
[INFO] [stderr]    Compiling xkbcommon-sys v0.7.5
[INFO] [stderr]    Compiling xkb v0.2.1
[INFO] [stderr]    Compiling pacman-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::info;
[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: `std::time::Duration`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread`
[INFO] [stdout]  --> src/pacman_arcade/display.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt, thread};
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/pacman_arcade/display.rs:2:33
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/pacman_arcade/display.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/pacman_arcade/display.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KeyRepeat` and `Key`
[INFO] [stdout]  --> src/pacman_arcade/keypad.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use minifb::{Key, KeyRepeat, Window};
[INFO] [stdout]   |              ^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/pacman_arcade/pacman.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{debug, error, info, warn};
[INFO] [stdout]   |                  ^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/pacman_arcade/pacman.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{Error, Read};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::z80_rs::memory::MemoryRW`
[INFO] [stdout]  --> src/pacman_arcade/pacman.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use crate::z80_rs::memory::MemoryRW;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/display.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout] 142 |             let mut x = x.wrapping_add(7 - (byte_number % 8));
[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/pacman_arcade/display.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |             let mut byte = self.tile_rom[tile_number as usize * 16 + byte_number as usize];
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/display.rs:149:17
[INFO] [stdout]     |
[INFO] [stdout] 149 |             let mut strip: Vec<u8> = self.decode_vertical_strip(byte);
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/display.rs:157:44
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn draw_slice(&mut self, x: usize, mut y: usize, mut index: usize, pal: usize) {
[INFO] [stdout]     |                                            ----^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/display.rs:157:58
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn draw_slice(&mut self, x: usize, mut y: usize, mut index: usize, pal: usize) {
[INFO] [stdout]     |                                                          ----^^^^^
[INFO] [stdout]     |                                                          |
[INFO] [stdout]     |                                                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/display.rs:162:17
[INFO] [stdout]     |
[INFO] [stdout] 162 |             let mut x = x.wrapping_add(7 - (byte_number % 8));
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pal`
[INFO] [stdout]    --> src/pacman_arcade/display.rs:157:76
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn draw_slice(&mut self, x: usize, mut y: usize, mut index: usize, pal: usize) {
[INFO] [stdout]     |                                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_pal`
[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/pacman_arcade/display.rs:177:36
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub fn create_slice(&mut self, mut index: usize) -> HashMap<u8, Vec<u8>> {
[INFO] [stdout]     |                                    ----^^^^^
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/display.rs:188:45
[INFO] [stdout]     |
[INFO] [stdout] 188 |     pub fn draw_sprite(&mut self, x: usize, mut y: usize, mut sprite: usize, offset: usize, pal_no: usize) {
[INFO] [stdout]     |                                             ----^
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/display.rs:188:59
[INFO] [stdout]     |
[INFO] [stdout] 188 |     pub fn draw_sprite(&mut self, x: usize, mut y: usize, mut sprite: usize, offset: usize, pal_no: usize) {
[INFO] [stdout]     |                                                           ----^^^^^^
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/pacman_arcade/display.rs:235:66
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn draw_pixel(&mut self, pixel_number: u8, x: u8, y: u8, offset: usize) {
[INFO] [stdout]     |                                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:137:37
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn render_sprite(&mut self, x: usize, y: usize, mut index: usize) {
[INFO] [stdout]     |                                     ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:137:47
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn render_sprite(&mut self, x: usize, y: usize, mut index: usize) {
[INFO] [stdout]     |                                               ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pal_no`
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let pal_no = self.read(0x4400);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_pal_no`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:200:17
[INFO] [stdout]     |
[INFO] [stdout] 200 |             let mut x = (i & 0x1F) * 8;
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:201:17
[INFO] [stdout]     |
[INFO] [stdout] 201 |             let mut y = ((i & 0x20) >> 5) * 8 + 34;
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pal_no`
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:194:13
[INFO] [stdout]     |
[INFO] [stdout] 194 |         let pal_no = 1;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_pal_no`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:199:17
[INFO] [stdout]     |
[INFO] [stdout] 199 |             let addr = self.fb.sprite_rom[i] * 64;
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:202:17
[INFO] [stdout]     |
[INFO] [stdout] 202 |             for row in 0..HEIGHT {
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let mut sprite = 1;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let mut x = 0;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pal_no`
[INFO] [stdout]   --> src/main.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let pal_no = 1;
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_pal_no`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `buf` and `vblank` are never read
[INFO] [stdout]   --> src/pacman_arcade/display.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Display {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 37 |     pub raster: Vec<u32>,
[INFO] [stdout] 38 |     pub buf: Vec<u8>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub vblank: 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: method `draw_tile` is never used
[INFO] [stdout]    --> src/pacman_arcade/display.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl Display {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn draw_tile(&mut self, tile_number: u8, x: u8, y: u8, pal_no: u8) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Keypad` is never constructed
[INFO] [stdout]   --> src/pacman_arcade/keypad.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Keypad {}
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Input` is never used
[INFO] [stdout]   --> src/pacman_arcade/keypad.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub trait Input {
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/pacman_arcade/keypad.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Keypad {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 43 |     pub fn new() -> Keypad {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/pacman_arcade/pacman.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Pacman {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 11 |     pub int_vector: u8,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 12 |     // IO port 0x00 to write interrupt vector for CPU
[INFO] [stdout] 13 |     pub int_enable: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 14 |     // Vblank or CPU interrupt
[INFO] [stdout] 15 |     pub port_in: u8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 16 |     pub port_out: u8,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub dip: Dip,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 20 |     pub in0: IN0,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 21 |     pub in1: IN1,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 22 |     pub c_lockout: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 23 |     pub c_counter: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `coins_per_game`, `lives_per_game`, `bonus_extra_life`, `difficulty`, and `ghost_names` are never read
[INFO] [stdout]   --> src/pacman_arcade/pacman.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Dip {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 28 |     coins_per_game: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     lives_per_game: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 30 |     bonus_extra_life: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     difficulty: bool,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 32 |     ghost_names: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `joy_up`, `joy_left`, `joy_right`, and `joy_down` are never read
[INFO] [stdout]   --> src/pacman_arcade/pacman.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct IN0 {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 37 |     joy_up: bool,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 38 |     joy_left: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 39 |     joy_right: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 40 |     joy_down: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `joy_up`, `joy_left`, `joy_right`, and `joy_down` are never read
[INFO] [stdout]   --> src/pacman_arcade/pacman.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct IN1 {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 45 |     joy_up: bool,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 46 |     joy_left: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 47 |     joy_right: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 48 |     joy_down: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Ram` is never constructed
[INFO] [stdout]   --> src/pacman_arcade/pacman.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | enum Map {
[INFO] [stdout]    |      --- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 58 |     Ram,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Map` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `render_sprite`, `render_tiles`, `draw_screen`, and `draw_fruits` are never used
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout]  61 | impl Pacman {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn render_sprite(&mut self, x: usize, y: usize, mut index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub(crate) fn render_tiles(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn draw_screen(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn draw_fruits(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Mapper` is never used
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:212:11
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub trait Mapper {
[INFO] [stdout]     |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:133:24
[INFO] [stdout]     |
[INFO] [stdout] 133 |                 panic!(format!("Attempted to load: {}", path.display()));
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 133 -                 panic!(format!("Attempted to load: {}", path.display()));
[INFO] [stdout] 133 +                 panic!("Attempted to load: {}", path.display());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |         self.fb.window.update_with_buffer(&self.fb.raster, WIDTH, HEIGHT);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let _ = self.fb.window.update_with_buffer(&self.fb.raster, WIDTH, HEIGHT);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 41.07s
[INFO] running `Command { std: "docker" "inspect" "c25cb037565de291a3f4eb8b0e5534e2d18ffe428e5649a5683e578692f526a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c25cb037565de291a3f4eb8b0e5534e2d18ffe428e5649a5683e578692f526a9", kill_on_drop: false }`
[INFO] [stdout] c25cb037565de291a3f4eb8b0e5534e2d18ffe428e5649a5683e578692f526a9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 623bd0e8936df430e34b285689307aee086399f9794e1d95e3d45394d3870b1b
[INFO] running `Command { std: "docker" "start" "-a" "623bd0e8936df430e34b285689307aee086399f9794e1d95e3d45394d3870b1b", kill_on_drop: false }`
[INFO] [stderr]    Compiling pacman-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::info;
[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: `std::time::Duration`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread`
[INFO] [stdout]  --> src/pacman_arcade/display.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt, thread};
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/pacman_arcade/display.rs:2:33
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/pacman_arcade/display.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/pacman_arcade/display.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KeyRepeat` and `Key`
[INFO] [stdout]  --> src/pacman_arcade/keypad.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use minifb::{Key, KeyRepeat, Window};
[INFO] [stdout]   |              ^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/pacman_arcade/pacman.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{debug, error, info, warn};
[INFO] [stdout]   |                  ^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/pacman_arcade/pacman.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{Error, Read};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::z80_rs::memory::MemoryRW`
[INFO] [stdout]  --> src/pacman_arcade/pacman.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use crate::z80_rs::memory::MemoryRW;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/display.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout] 142 |             let mut x = x.wrapping_add(7 - (byte_number % 8));
[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/pacman_arcade/display.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |             let mut byte = self.tile_rom[tile_number as usize * 16 + byte_number as usize];
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/display.rs:149:17
[INFO] [stdout]     |
[INFO] [stdout] 149 |             let mut strip: Vec<u8> = self.decode_vertical_strip(byte);
[INFO] [stdout]     |                 ----^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/display.rs:157:44
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn draw_slice(&mut self, x: usize, mut y: usize, mut index: usize, pal: usize) {
[INFO] [stdout]     |                                            ----^
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/display.rs:157:58
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn draw_slice(&mut self, x: usize, mut y: usize, mut index: usize, pal: usize) {
[INFO] [stdout]     |                                                          ----^^^^^
[INFO] [stdout]     |                                                          |
[INFO] [stdout]     |                                                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/display.rs:162:17
[INFO] [stdout]     |
[INFO] [stdout] 162 |             let mut x = x.wrapping_add(7 - (byte_number % 8));
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pal`
[INFO] [stdout]    --> src/pacman_arcade/display.rs:157:76
[INFO] [stdout]     |
[INFO] [stdout] 157 |     pub fn draw_slice(&mut self, x: usize, mut y: usize, mut index: usize, pal: usize) {
[INFO] [stdout]     |                                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_pal`
[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/pacman_arcade/display.rs:177:36
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub fn create_slice(&mut self, mut index: usize) -> HashMap<u8, Vec<u8>> {
[INFO] [stdout]     |                                    ----^^^^^
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/display.rs:188:45
[INFO] [stdout]     |
[INFO] [stdout] 188 |     pub fn draw_sprite(&mut self, x: usize, mut y: usize, mut sprite: usize, offset: usize, pal_no: usize) {
[INFO] [stdout]     |                                             ----^
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/display.rs:188:59
[INFO] [stdout]     |
[INFO] [stdout] 188 |     pub fn draw_sprite(&mut self, x: usize, mut y: usize, mut sprite: usize, offset: usize, pal_no: usize) {
[INFO] [stdout]     |                                                           ----^^^^^^
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/pacman_arcade/display.rs:235:66
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn draw_pixel(&mut self, pixel_number: u8, x: u8, y: u8, offset: usize) {
[INFO] [stdout]     |                                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:137:37
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn render_sprite(&mut self, x: usize, y: usize, mut index: usize) {
[INFO] [stdout]     |                                     ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:137:47
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn render_sprite(&mut self, x: usize, y: usize, mut index: usize) {
[INFO] [stdout]     |                                               ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pal_no`
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let pal_no = self.read(0x4400);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_pal_no`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:200:17
[INFO] [stdout]     |
[INFO] [stdout] 200 |             let mut x = (i & 0x1F) * 8;
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:201:17
[INFO] [stdout]     |
[INFO] [stdout] 201 |             let mut y = ((i & 0x20) >> 5) * 8 + 34;
[INFO] [stdout]     |                 ----^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pal_no`
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:194:13
[INFO] [stdout]     |
[INFO] [stdout] 194 |         let pal_no = 1;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_pal_no`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:199:17
[INFO] [stdout]     |
[INFO] [stdout] 199 |             let addr = self.fb.sprite_rom[i] * 64;
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:202:17
[INFO] [stdout]     |
[INFO] [stdout] 202 |             for row in 0..HEIGHT {
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let mut sprite = 1;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let mut x = 0;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pal_no`
[INFO] [stdout]   --> src/main.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let pal_no = 1;
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_pal_no`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `buf` and `vblank` are never read
[INFO] [stdout]   --> src/pacman_arcade/display.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Display {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 37 |     pub raster: Vec<u32>,
[INFO] [stdout] 38 |     pub buf: Vec<u8>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub vblank: 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: method `draw_tile` is never used
[INFO] [stdout]    --> src/pacman_arcade/display.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl Display {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn draw_tile(&mut self, tile_number: u8, x: u8, y: u8, pal_no: u8) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Keypad` is never constructed
[INFO] [stdout]   --> src/pacman_arcade/keypad.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Keypad {}
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Input` is never used
[INFO] [stdout]   --> src/pacman_arcade/keypad.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub trait Input {
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/pacman_arcade/keypad.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Keypad {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 43 |     pub fn new() -> Keypad {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/pacman_arcade/pacman.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Pacman {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 11 |     pub int_vector: u8,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 12 |     // IO port 0x00 to write interrupt vector for CPU
[INFO] [stdout] 13 |     pub int_enable: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 14 |     // Vblank or CPU interrupt
[INFO] [stdout] 15 |     pub port_in: u8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 16 |     pub port_out: u8,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub dip: Dip,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 20 |     pub in0: IN0,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 21 |     pub in1: IN1,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 22 |     pub c_lockout: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 23 |     pub c_counter: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `coins_per_game`, `lives_per_game`, `bonus_extra_life`, `difficulty`, and `ghost_names` are never read
[INFO] [stdout]   --> src/pacman_arcade/pacman.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Dip {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 28 |     coins_per_game: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     lives_per_game: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 30 |     bonus_extra_life: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     difficulty: bool,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 32 |     ghost_names: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `joy_up`, `joy_left`, `joy_right`, and `joy_down` are never read
[INFO] [stdout]   --> src/pacman_arcade/pacman.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct IN0 {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 37 |     joy_up: bool,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 38 |     joy_left: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 39 |     joy_right: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 40 |     joy_down: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `joy_up`, `joy_left`, `joy_right`, and `joy_down` are never read
[INFO] [stdout]   --> src/pacman_arcade/pacman.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct IN1 {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 45 |     joy_up: bool,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 46 |     joy_left: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 47 |     joy_right: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 48 |     joy_down: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Ram` is never constructed
[INFO] [stdout]   --> src/pacman_arcade/pacman.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | enum Map {
[INFO] [stdout]    |      --- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 58 |     Ram,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Map` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `render_sprite`, `render_tiles`, `draw_screen`, and `draw_fruits` are never used
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout]  61 | impl Pacman {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn render_sprite(&mut self, x: usize, y: usize, mut index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub(crate) fn render_tiles(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn draw_screen(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn draw_fruits(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Mapper` is never used
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:212:11
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub trait Mapper {
[INFO] [stdout]     |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:133:24
[INFO] [stdout]     |
[INFO] [stdout] 133 |                 panic!(format!("Attempted to load: {}", path.display()));
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 133 -                 panic!(format!("Attempted to load: {}", path.display()));
[INFO] [stdout] 133 +                 panic!("Attempted to load: {}", path.display());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/pacman_arcade/pacman.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |         self.fb.window.update_with_buffer(&self.fb.raster, WIDTH, HEIGHT);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let _ = self.fb.window.update_with_buffer(&self.fb.raster, WIDTH, HEIGHT);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.51s
[INFO] running `Command { std: "docker" "inspect" "623bd0e8936df430e34b285689307aee086399f9794e1d95e3d45394d3870b1b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "623bd0e8936df430e34b285689307aee086399f9794e1d95e3d45394d3870b1b", kill_on_drop: false }`
[INFO] [stdout] 623bd0e8936df430e34b285689307aee086399f9794e1d95e3d45394d3870b1b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 1e88fb39281c242714e207cdbaeafd6e6a5bf5bd808bede9eb94d20d95a60e28
[INFO] running `Command { std: "docker" "start" "-a" "1e88fb39281c242714e207cdbaeafd6e6a5bf5bd808bede9eb94d20d95a60e28", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `log::info`
[INFO] [stderr]  --> src/main.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use log::info;
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> src/main.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::time::Duration;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `thread`
[INFO] [stderr]  --> src/pacman_arcade/display.rs:1:16
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{fmt, thread};
[INFO] [stderr]   |                ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `HashSet`
[INFO] [stderr]  --> src/pacman_arcade/display.rs:2:33
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::collections::{HashMap, HashSet};
[INFO] [stderr]   |                                 ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::hash::Hash`
[INFO] [stderr]  --> src/pacman_arcade/display.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::hash::Hash;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> src/pacman_arcade/display.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::time::Duration;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `KeyRepeat` and `Key`
[INFO] [stderr]  --> src/pacman_arcade/keypad.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use minifb::{Key, KeyRepeat, Window};
[INFO] [stderr]   |              ^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `error` and `warn`
[INFO] [stderr]  --> src/pacman_arcade/pacman.rs:1:18
[INFO] [stderr]   |
[INFO] [stderr] 1 | use log::{debug, error, info, warn};
[INFO] [stderr]   |                  ^^^^^        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Error`
[INFO] [stderr]  --> src/pacman_arcade/pacman.rs:3:15
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::io::{Error, Read};
[INFO] [stderr]   |               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::z80_rs::memory::MemoryRW`
[INFO] [stderr]  --> src/pacman_arcade/pacman.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub use crate::z80_rs::memory::MemoryRW;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/pacman_arcade/display.rs:142:17
[INFO] [stderr]     |
[INFO] [stderr] 142 |             let mut x = x.wrapping_add(7 - (byte_number % 8));
[INFO] [stderr]     |                 ----^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/pacman_arcade/display.rs:148:17
[INFO] [stderr]     |
[INFO] [stderr] 148 |             let mut byte = self.tile_rom[tile_number as usize * 16 + byte_number as usize];
[INFO] [stderr]     |                 ----^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/pacman_arcade/display.rs:149:17
[INFO] [stderr]     |
[INFO] [stderr] 149 |             let mut strip: Vec<u8> = self.decode_vertical_strip(byte);
[INFO] [stderr]     |                 ----^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/pacman_arcade/display.rs:157:44
[INFO] [stderr]     |
[INFO] [stderr] 157 |     pub fn draw_slice(&mut self, x: usize, mut y: usize, mut index: usize, pal: usize) {
[INFO] [stderr]     |                                            ----^
[INFO] [stderr]     |                                            |
[INFO] [stderr]     |                                            help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/pacman_arcade/display.rs:157:58
[INFO] [stderr]     |
[INFO] [stderr] 157 |     pub fn draw_slice(&mut self, x: usize, mut y: usize, mut index: usize, pal: usize) {
[INFO] [stderr]     |                                                          ----^^^^^
[INFO] [stderr]     |                                                          |
[INFO] [stderr]     |                                                          help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/pacman_arcade/display.rs:162:17
[INFO] [stderr]     |
[INFO] [stderr] 162 |             let mut x = x.wrapping_add(7 - (byte_number % 8));
[INFO] [stderr]     |                 ----^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pal`
[INFO] [stderr]    --> src/pacman_arcade/display.rs:157:76
[INFO] [stderr]     |
[INFO] [stderr] 157 |     pub fn draw_slice(&mut self, x: usize, mut y: usize, mut index: usize, pal: usize) {
[INFO] [stderr]     |                                                                            ^^^ help: if this is intentional, prefix it with an underscore: `_pal`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/pacman_arcade/display.rs:177:36
[INFO] [stderr]     |
[INFO] [stderr] 177 |     pub fn create_slice(&mut self, mut index: usize) -> HashMap<u8, Vec<u8>> {
[INFO] [stderr]     |                                    ----^^^^^
[INFO] [stderr]     |                                    |
[INFO] [stderr]     |                                    help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/pacman_arcade/display.rs:188:45
[INFO] [stderr]     |
[INFO] [stderr] 188 |     pub fn draw_sprite(&mut self, x: usize, mut y: usize, mut sprite: usize, offset: usize, pal_no: usize) {
[INFO] [stderr]     |                                             ----^
[INFO] [stderr]     |                                             |
[INFO] [stderr]     |                                             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/pacman_arcade/display.rs:188:59
[INFO] [stderr]     |
[INFO] [stderr] 188 |     pub fn draw_sprite(&mut self, x: usize, mut y: usize, mut sprite: usize, offset: usize, pal_no: usize) {
[INFO] [stderr]     |                                                           ----^^^^^^
[INFO] [stderr]     |                                                           |
[INFO] [stderr]     |                                                           help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `offset`
[INFO] [stderr]    --> src/pacman_arcade/display.rs:235:66
[INFO] [stderr]     |
[INFO] [stderr] 235 |     pub fn draw_pixel(&mut self, pixel_number: u8, x: u8, y: u8, offset: usize) {
[INFO] [stderr]     |                                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/pacman_arcade/pacman.rs:137:37
[INFO] [stderr]     |
[INFO] [stderr] 137 |     pub fn render_sprite(&mut self, x: usize, y: usize, mut index: usize) {
[INFO] [stderr]     |                                     ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `y`
[INFO] [stderr]    --> src/pacman_arcade/pacman.rs:137:47
[INFO] [stderr]     |
[INFO] [stderr] 137 |     pub fn render_sprite(&mut self, x: usize, y: usize, mut index: usize) {
[INFO] [stderr]     |                                               ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pal_no`
[INFO] [stderr]    --> src/pacman_arcade/pacman.rs:158:13
[INFO] [stderr]     |
[INFO] [stderr] 158 |         let pal_no = self.read(0x4400);
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_pal_no`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/pacman_arcade/pacman.rs:200:17
[INFO] [stderr]     |
[INFO] [stderr] 200 |             let mut x = (i & 0x1F) * 8;
[INFO] [stderr]     |                 ----^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/pacman_arcade/pacman.rs:201:17
[INFO] [stderr]     |
[INFO] [stderr] 201 |             let mut y = ((i & 0x20) >> 5) * 8 + 34;
[INFO] [stderr]     |                 ----^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pal_no`
[INFO] [stderr]    --> src/pacman_arcade/pacman.rs:194:13
[INFO] [stderr]     |
[INFO] [stderr] 194 |         let pal_no = 1;
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_pal_no`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `addr`
[INFO] [stderr]    --> src/pacman_arcade/pacman.rs:199:17
[INFO] [stderr]     |
[INFO] [stderr] 199 |             let addr = self.fb.sprite_rom[i] * 64;
[INFO] [stderr]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `row`
[INFO] [stderr]    --> src/pacman_arcade/pacman.rs:202:17
[INFO] [stderr]     |
[INFO] [stderr] 202 |             for row in 0..HEIGHT {
[INFO] [stderr]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:33:9
[INFO] [stderr]    |
[INFO] [stderr] 33 |     let mut sprite = 1;
[INFO] [stderr]    |         ----^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:35:9
[INFO] [stderr]    |
[INFO] [stderr] 35 |     let mut x = 0;
[INFO] [stderr]    |         ----^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pal_no`
[INFO] [stderr]   --> src/main.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 34 |     let pal_no = 1;
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_pal_no`
[INFO] [stderr] 
[INFO] [stderr] warning: fields `buf` and `vblank` are never read
[INFO] [stderr]   --> src/pacman_arcade/display.rs:38:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct Display {
[INFO] [stderr]    |            ------- fields in this struct
[INFO] [stderr] 37 |     pub raster: Vec<u32>,
[INFO] [stderr] 38 |     pub buf: Vec<u8>,
[INFO] [stderr]    |         ^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub vblank: bool,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `draw_tile` is never used
[INFO] [stderr]    --> src/pacman_arcade/display.rs:137:12
[INFO] [stderr]     |
[INFO] [stderr] 101 | impl Display {
[INFO] [stderr]     | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 137 |     pub fn draw_tile(&mut self, tile_number: u8, x: u8, y: u8, pal_no: u8) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Keypad` is never constructed
[INFO] [stderr]   --> src/pacman_arcade/keypad.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub struct Keypad {}
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Input` is never used
[INFO] [stderr]   --> src/pacman_arcade/keypad.rs:35:11
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub trait Input {
[INFO] [stderr]    |           ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/pacman_arcade/keypad.rs:43:12
[INFO] [stderr]    |
[INFO] [stderr] 42 | impl Keypad {
[INFO] [stderr]    | ----------- associated function in this implementation
[INFO] [stderr] 43 |     pub fn new() -> Keypad {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/pacman_arcade/pacman.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct Pacman {
[INFO] [stderr]    |            ------ fields in this struct
[INFO] [stderr] 11 |     pub int_vector: u8,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 12 |     // IO port 0x00 to write interrupt vector for CPU
[INFO] [stderr] 13 |     pub int_enable: bool,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 14 |     // Vblank or CPU interrupt
[INFO] [stderr] 15 |     pub port_in: u8,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 16 |     pub port_out: u8,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 19 |     pub dip: Dip,
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 20 |     pub in0: IN0,
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 21 |     pub in1: IN1,
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 22 |     pub c_lockout: bool,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 23 |     pub c_counter: bool,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `coins_per_game`, `lives_per_game`, `bonus_extra_life`, `difficulty`, and `ghost_names` are never read
[INFO] [stderr]   --> src/pacman_arcade/pacman.rs:28:5
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub struct Dip {
[INFO] [stderr]    |            --- fields in this struct
[INFO] [stderr] 28 |     coins_per_game: u8,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 29 |     lives_per_game: u8,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 30 |     bonus_extra_life: u8,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 31 |     difficulty: bool,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 32 |     ghost_names: bool,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `joy_up`, `joy_left`, `joy_right`, and `joy_down` are never read
[INFO] [stderr]   --> src/pacman_arcade/pacman.rs:37:5
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct IN0 {
[INFO] [stderr]    |            --- fields in this struct
[INFO] [stderr] 37 |     joy_up: bool,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 38 |     joy_left: bool,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 39 |     joy_right: bool,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 40 |     joy_down: bool,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `joy_up`, `joy_left`, `joy_right`, and `joy_down` are never read
[INFO] [stderr]   --> src/pacman_arcade/pacman.rs:45:5
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub struct IN1 {
[INFO] [stderr]    |            --- fields in this struct
[INFO] [stderr] 45 |     joy_up: bool,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 46 |     joy_left: bool,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 47 |     joy_right: bool,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 48 |     joy_down: bool,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Ram` is never constructed
[INFO] [stderr]   --> src/pacman_arcade/pacman.rs:58:5
[INFO] [stderr]    |
[INFO] [stderr] 52 | enum Map {
[INFO] [stderr]    |      --- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 58 |     Ram,
[INFO] [stderr]    |     ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Map` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `render_sprite`, `render_tiles`, `draw_screen`, and `draw_fruits` are never used
[INFO] [stderr]    --> src/pacman_arcade/pacman.rs:137:12
[INFO] [stderr]     |
[INFO] [stderr]  61 | impl Pacman {
[INFO] [stderr]     | ----------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 137 |     pub fn render_sprite(&mut self, x: usize, y: usize, mut index: usize) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 150 |     pub(crate) fn render_tiles(&mut self) {
[INFO] [stderr]     |                   ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 167 |     pub fn draw_screen(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 192 |     pub fn draw_fruits(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Mapper` is never used
[INFO] [stderr]    --> src/pacman_arcade/pacman.rs:212:11
[INFO] [stderr]     |
[INFO] [stderr] 212 | pub trait Mapper {
[INFO] [stderr]     |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/pacman_arcade/pacman.rs:133:24
[INFO] [stderr]     |
[INFO] [stderr] 133 |                 panic!(format!("Attempted to load: {}", path.display()));
[INFO] [stderr]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]     |
[INFO] [stderr] 133 -                 panic!(format!("Attempted to load: {}", path.display()));
[INFO] [stderr] 133 +                 panic!("Attempted to load: {}", path.display());
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/pacman_arcade/pacman.rs:144:9
[INFO] [stderr]     |
[INFO] [stderr] 144 |         self.fb.window.update_with_buffer(&self.fb.raster, WIDTH, HEIGHT);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 144 |         let _ = self.fb.window.update_with_buffer(&self.fb.raster, WIDTH, HEIGHT);
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `pacman-rs` (bin "pacman-rs" test) generated 46 warnings (run `cargo fix --bin "pacman-rs" -p pacman-rs --tests` to apply 33 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/pacman_rs-19bed9277a8c12ce)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "1e88fb39281c242714e207cdbaeafd6e6a5bf5bd808bede9eb94d20d95a60e28", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1e88fb39281c242714e207cdbaeafd6e6a5bf5bd808bede9eb94d20d95a60e28", kill_on_drop: false }`
[INFO] [stdout] 1e88fb39281c242714e207cdbaeafd6e6a5bf5bd808bede9eb94d20d95a60e28
