[INFO] cloning repository https://github.com/jordan-schnur/cave-crawler-terminal
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jordan-schnur/cave-crawler-terminal" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjordan-schnur%2Fcave-crawler-terminal", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjordan-schnur%2Fcave-crawler-terminal'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dfd78ea6a8384d247f786377b9a3dc409b29388d
[INFO] testing jordan-schnur/cave-crawler-terminal against 1.98.0-beta.8+cargoflags=--release for beta-release-1.99-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjordan-schnur%2Fcave-crawler-terminal" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jordan-schnur/cave-crawler-terminal
[INFO] finished tweaking git repo https://github.com/jordan-schnur/cave-crawler-terminal
[INFO] tweaked toml for git repo https://github.com/jordan-schnur/cave-crawler-terminal written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jordan-schnur/cave-crawler-terminal on toolchain 1.98.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jordan-schnur/cave-crawler-terminal already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded textwrap v0.16.1
[INFO] [stderr]   Downloaded smawk v0.3.2
[INFO] [stderr]   Downloaded unicode-linebreak v0.1.5
[INFO] [stderr]   Downloaded rand v0.8.5
[INFO] [stderr]   Downloaded errno v0.3.10
[INFO] [stderr]   Downloaded windows-targets v0.52.6
[INFO] [stderr]   Downloaded rand_chacha v0.3.1
[INFO] [stderr]   Downloaded signal-hook-mio v0.2.4
[INFO] [stderr]   Downloaded crossterm_winapi v0.9.1
[INFO] [stderr]   Downloaded scopeguard v1.2.0
[INFO] [stderr]   Downloaded byteorder v1.5.0
[INFO] [stderr]   Downloaded lock_api v0.4.12
[INFO] [stderr]   Downloaded autocfg v1.4.0
[INFO] [stderr]   Downloaded wasi v0.11.0+wasi-snapshot-preview1
[INFO] [stderr]   Downloaded redox_syscall v0.5.8
[INFO] [stderr]   Downloaded quote v1.0.38
[INFO] [stderr]   Downloaded rand_core v0.6.4
[INFO] [stderr]   Downloaded ppv-lite86 v0.2.20
[INFO] [stderr]   Downloaded signal-hook-registry v1.4.2
[INFO] [stderr]   Downloaded log v0.4.25
[INFO] [stderr]   Downloaded bitflags v2.8.0
[INFO] [stderr]   Downloaded parking_lot v0.12.3
[INFO] [stderr]   Downloaded parking_lot_core v0.9.10
[INFO] [stderr]   Downloaded smallvec v1.13.2
[INFO] [stderr]   Downloaded getrandom v0.2.15
[INFO] [stderr]   Downloaded unicode-ident v1.0.15
[INFO] [stderr]   Downloaded zerocopy-derive v0.7.35
[INFO] [stderr]   Downloaded proc-macro2 v1.0.93
[INFO] [stderr]   Downloaded signal-hook v0.3.17
[INFO] [stderr]   Downloaded mio v1.0.3
[INFO] [stderr]   Downloaded unicode-width v0.1.14
[INFO] [stderr]   Downloaded crossterm v0.28.1
[INFO] [stderr]   Downloaded zerocopy v0.7.35
[INFO] [stderr]   Downloaded syn v2.0.96
[INFO] [stderr]   Downloaded rustix v0.38.43
[INFO] [stderr]   Downloaded windows_aarch64_gnullvm v0.52.6
[INFO] [stderr]   Downloaded windows_x86_64_gnullvm v0.52.6
[INFO] [stderr]   Downloaded windows_i686_gnullvm v0.52.6
[INFO] [stderr]   Downloaded libc v0.2.169
[INFO] [stderr]   Downloaded windows_aarch64_msvc v0.52.6
[INFO] [stderr]   Downloaded windows_x86_64_msvc v0.52.6
[INFO] [stderr]   Downloaded windows_x86_64_gnu v0.52.6
[INFO] [stderr]   Downloaded windows_i686_gnu v0.52.6
[INFO] [stderr]   Downloaded windows_i686_msvc v0.52.6
[INFO] [stderr]   Downloaded winapi v0.3.9
[INFO] [stderr]   Downloaded linux-raw-sys v0.4.15
[INFO] [stderr]   Downloaded windows-sys v0.59.0
[INFO] [stderr]   Downloaded windows-sys v0.52.0
[INFO] [stderr]   Downloaded winapi-i686-pc-windows-gnu v0.4.0
[INFO] [stderr]   Downloaded winapi-x86_64-pc-windows-gnu v0.4.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 64e613ade9227ba0c720d0d6100bc57af286ee860aab4a725e86ec3f7f89854b
[INFO] running `Command { std: "docker" "start" "64e613ade9227ba0c720d0d6100bc57af286ee860aab4a725e86ec3f7f89854b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "64e613ade9227ba0c720d0d6100bc57af286ee860aab4a725e86ec3f7f89854b", 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" "64e613ade9227ba0c720d0d6100bc57af286ee860aab4a725e86ec3f7f89854b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "64e613ade9227ba0c720d0d6100bc57af286ee860aab4a725e86ec3f7f89854b", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "64e613ade9227ba0c720d0d6100bc57af286ee860aab4a725e86ec3f7f89854b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling unicode-ident v1.0.15
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling signal-hook v0.3.17
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling log v0.4.25
[INFO] [stderr]    Compiling rustix v0.38.43
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling bitflags v2.8.0
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling smawk v0.3.2
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling unicode-linebreak v0.1.5
[INFO] [stderr]    Compiling textwrap v0.16.1
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling syn v2.0.96
[INFO] [stderr]    Compiling signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling mio v1.0.3
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling cave-diver-terminal v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::camera::Camera`
[INFO] [stdout]  --> src/enemy/goblin.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::camera::Camera;
[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: `crate::camera::Camera`
[INFO] [stdout]  --> src/frame.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::camera::Camera;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/frame.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::camera::Camera`
[INFO] [stdout]  --> src/player.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::camera::Camera;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::frame::Frame`
[INFO] [stdout]  --> src/player.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::frame::Frame;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tile.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `KeyCode`, `cursor::MoveTo`, `poll`, `read`, and `style::Print`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     cursor::MoveTo,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     event::{poll, read, Event, KeyCode},
[INFO] [stdout]    |             ^^^^  ^^^^  ^^^^^  ^^^^^^^
[INFO] [stdout] 23 |     execute,
[INFO] [stdout] 24 |     style::Print,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x` is never read
[INFO] [stdout]   --> src/main.rs:85:17
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let mut x = 0;
[INFO] [stdout]    |                 ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 89 |         x = (i as u16) % frame.width;
[INFO] [stdout]    |         ---------------------------- `x` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y` is never read
[INFO] [stdout]   --> src/main.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 |     let mut y = 0;
[INFO] [stdout]    |                 ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 90 |         y = (i as u16) / frame.width;
[INFO] [stdout]    |         ---------------------------- `y` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_visible` is never used
[INFO] [stdout]   --> src/camera.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Camera {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn is_visible(&self, world_x: i32, world_y: i32, width: u16, height: u16) -> 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 `as_any` is never used
[INFO] [stdout]   --> src/drawable.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait Drawable {
[INFO] [stdout]    |           -------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 15 |     fn as_any(&self) -> &dyn std::any::Any;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `downcast_ref` and `downcast_mut` are never used
[INFO] [stdout]   --> src/drawable.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl dyn Drawable {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 20 |     pub fn downcast_ref<T: Drawable + 'static>(&self) -> Option<&T> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn downcast_mut<T: Drawable + 'static>(&mut self) -> Option<&mut T> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `attack` is never used
[INFO] [stdout]   --> src/enemy/goblin.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Goblin {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn attack(&self, player: &mut Player) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_walkable` and `get_char` are never used
[INFO] [stdout]   --> src/frame.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Frame {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn is_walkable(&self, x: u16, y: u16) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn get_char(&self, x: u16, y: u16) -> Option<Cell> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_walkable` is never read
[INFO] [stdout]    --> src/frame.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub struct Cell {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub is_walkable: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Cell` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALPHABET` is never used
[INFO] [stdout]   --> src/game.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const ALPHABET: &[u8] = b"ABCDEFGHIJKLMN OPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `heal` and `is_alive` are never used
[INFO] [stdout]   --> src/health.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Health {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn heal(&mut self, amount: i32) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn is_alive(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/activity_log.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout]  26 | impl ActivityLog {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 7.41s
[INFO] running `Command { std: "docker" "inspect" "64e613ade9227ba0c720d0d6100bc57af286ee860aab4a725e86ec3f7f89854b", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "64e613ade9227ba0c720d0d6100bc57af286ee860aab4a725e86ec3f7f89854b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling cave-diver-terminal v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::camera::Camera`
[INFO] [stdout]  --> src/enemy/goblin.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::camera::Camera;
[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: `crate::camera::Camera`
[INFO] [stdout]  --> src/frame.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::camera::Camera;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/frame.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::camera::Camera`
[INFO] [stdout]  --> src/player.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::camera::Camera;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::frame::Frame`
[INFO] [stdout]  --> src/player.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::frame::Frame;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tile.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `KeyCode`, `cursor::MoveTo`, `poll`, `read`, and `style::Print`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     cursor::MoveTo,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     event::{poll, read, Event, KeyCode},
[INFO] [stdout]    |             ^^^^  ^^^^  ^^^^^  ^^^^^^^
[INFO] [stdout] 23 |     execute,
[INFO] [stdout] 24 |     style::Print,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x` is never read
[INFO] [stdout]   --> src/main.rs:85:17
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let mut x = 0;
[INFO] [stdout]    |                 ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 89 |         x = (i as u16) % frame.width;
[INFO] [stdout]    |         ---------------------------- `x` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y` is never read
[INFO] [stdout]   --> src/main.rs:86:17
[INFO] [stdout]    |
[INFO] [stdout] 86 |     let mut y = 0;
[INFO] [stdout]    |                 ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 90 |         y = (i as u16) / frame.width;
[INFO] [stdout]    |         ---------------------------- `y` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_visible` is never used
[INFO] [stdout]   --> src/camera.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Camera {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn is_visible(&self, world_x: i32, world_y: i32, width: u16, height: u16) -> 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 `as_any` is never used
[INFO] [stdout]   --> src/drawable.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait Drawable {
[INFO] [stdout]    |           -------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 15 |     fn as_any(&self) -> &dyn std::any::Any;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `downcast_ref` and `downcast_mut` are never used
[INFO] [stdout]   --> src/drawable.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl dyn Drawable {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 20 |     pub fn downcast_ref<T: Drawable + 'static>(&self) -> Option<&T> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn downcast_mut<T: Drawable + 'static>(&mut self) -> Option<&mut T> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `attack` is never used
[INFO] [stdout]   --> src/enemy/goblin.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Goblin {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn attack(&self, player: &mut Player) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_walkable` and `get_char` are never used
[INFO] [stdout]   --> src/frame.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Frame {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn is_walkable(&self, x: u16, y: u16) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn get_char(&self, x: u16, y: u16) -> Option<Cell> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_walkable` is never read
[INFO] [stdout]    --> src/frame.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub struct Cell {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub is_walkable: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Cell` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALPHABET` is never used
[INFO] [stdout]   --> src/game.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const ALPHABET: &[u8] = b"ABCDEFGHIJKLMN OPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `heal` and `is_alive` are never used
[INFO] [stdout]   --> src/health.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Health {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn heal(&mut self, amount: i32) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn is_alive(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/activity_log.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout]  26 | impl ActivityLog {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1.15s
[INFO] running `Command { std: "docker" "inspect" "64e613ade9227ba0c720d0d6100bc57af286ee860aab4a725e86ec3f7f89854b", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "64e613ade9227ba0c720d0d6100bc57af286ee860aab4a725e86ec3f7f89854b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `crate::camera::Camera`
[INFO] [stderr]  --> src/enemy/goblin.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::camera::Camera;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::camera::Camera`
[INFO] [stderr]  --> src/frame.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::camera::Camera;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cmp`
[INFO] [stderr]  --> src/frame.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::cmp;
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::camera::Camera`
[INFO] [stderr]  --> src/player.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::camera::Camera;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::frame::Frame`
[INFO] [stderr]  --> src/player.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::frame::Frame;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/tile.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Event`, `KeyCode`, `cursor::MoveTo`, `poll`, `read`, and `style::Print`
[INFO] [stderr]   --> src/main.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     cursor::MoveTo,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 22 |     event::{poll, read, Event, KeyCode},
[INFO] [stderr]    |             ^^^^  ^^^^  ^^^^^  ^^^^^^^
[INFO] [stderr] 23 |     execute,
[INFO] [stderr] 24 |     style::Print,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]   --> src/main.rs:30:5
[INFO] [stderr]    |
[INFO] [stderr] 30 | use std::time::Duration;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `x` is never read
[INFO] [stderr]   --> src/main.rs:85:17
[INFO] [stderr]    |
[INFO] [stderr] 85 |     let mut x = 0;
[INFO] [stderr]    |                 ^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 89 |         x = (i as u16) % frame.width;
[INFO] [stderr]    |         ---------------------------- `x` is overwritten here before the previous value is read
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `y` is never read
[INFO] [stderr]   --> src/main.rs:86:17
[INFO] [stderr]    |
[INFO] [stderr] 86 |     let mut y = 0;
[INFO] [stderr]    |                 ^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 90 |         y = (i as u16) / frame.width;
[INFO] [stderr]    |         ---------------------------- `y` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_visible` is never used
[INFO] [stderr]   --> src/camera.rs:43:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | impl Camera {
[INFO] [stderr]    | ----------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub fn is_visible(&self, world_x: i32, world_y: i32, width: u16, height: u16) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `as_any` is never used
[INFO] [stderr]   --> src/drawable.rs:15:8
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub trait Drawable {
[INFO] [stderr]    |           -------- method in this trait
[INFO] [stderr] ...
[INFO] [stderr] 15 |     fn as_any(&self) -> &dyn std::any::Any;
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `downcast_ref` and `downcast_mut` are never used
[INFO] [stderr]   --> src/drawable.rs:20:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | impl dyn Drawable {
[INFO] [stderr]    | ----------------- methods in this implementation
[INFO] [stderr] 20 |     pub fn downcast_ref<T: Drawable + 'static>(&self) -> Option<&T> {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     pub fn downcast_mut<T: Drawable + 'static>(&mut self) -> Option<&mut T> {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `attack` is never used
[INFO] [stderr]   --> src/enemy/goblin.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl Goblin {
[INFO] [stderr]    | ----------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn attack(&self, player: &mut Player) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_walkable` and `get_char` are never used
[INFO] [stderr]   --> src/frame.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl Frame {
[INFO] [stderr]    | ---------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn is_walkable(&self, x: u16, y: u16) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 88 |     pub fn get_char(&self, x: u16, y: u16) -> Option<Cell> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `is_walkable` is never read
[INFO] [stderr]    --> src/frame.rs:122:9
[INFO] [stderr]     |
[INFO] [stderr] 118 | pub struct Cell {
[INFO] [stderr]     |            ---- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 122 |     pub is_walkable: bool,
[INFO] [stderr]     |         ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Cell` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ALPHABET` is never used
[INFO] [stderr]   --> src/game.rs:16:7
[INFO] [stderr]    |
[INFO] [stderr] 16 | const ALPHABET: &[u8] = b"ABCDEFGHIJKLMN OPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `heal` and `is_alive` are never used
[INFO] [stderr]   --> src/health.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr]  7 | impl Health {
[INFO] [stderr]    | ----------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 19 |     pub fn heal(&mut self, amount: i32) {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 34 |     pub fn is_alive(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `clear` is never used
[INFO] [stderr]    --> src/activity_log.rs:113:12
[INFO] [stderr]     |
[INFO] [stderr]  26 | impl ActivityLog {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 113 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `cave-diver-terminal` (bin "cave-diver-terminal" test) generated 19 warnings (run `cargo fix --bin "cave-diver-terminal" -p cave-diver-terminal --tests` to apply 8 suggestions)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.09s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/cave_diver_terminal-5b4a68fce7c24c33)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test pathfinding::tests::test_bounding_box_for_path_with_points ... ok
[INFO] [stdout] test pathfinding::tests::test_bounding_box_for_path_with_none ... ok
[INFO] [stdout] test pathfinding::tests::test_simple_path ... ok
[INFO] [stdout] test activity_log::tests::test_activity_log ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "64e613ade9227ba0c720d0d6100bc57af286ee860aab4a725e86ec3f7f89854b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "64e613ade9227ba0c720d0d6100bc57af286ee860aab4a725e86ec3f7f89854b", kill_on_drop: false }`
[INFO] [stdout] 64e613ade9227ba0c720d0d6100bc57af286ee860aab4a725e86ec3f7f89854b
