[INFO] cloning repository https://github.com/TG-Twilight/CaveStory-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/TG-Twilight/CaveStory-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTG-Twilight%2FCaveStory-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTG-Twilight%2FCaveStory-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 869e8fad893327aee52253131fca94a467df3a38
[INFO] checking TG-Twilight/CaveStory-rs against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6 for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTG-Twilight%2FCaveStory-rs" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-3-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/TG-Twilight/CaveStory-rs
[INFO] removed 0 missing examples
[INFO] finished tweaking git repo https://github.com/TG-Twilight/CaveStory-rs
[INFO] tweaked toml for git repo https://github.com/TG-Twilight/CaveStory-rs written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/TG-Twilight/CaveStory-rs on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/TG-Twilight/CaveStory-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" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
[INFO] [stderr] (in the `clap` dependency)
[INFO] [stderr] warning: Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
[INFO] [stderr] (in the `glutin` dependency)
[INFO] [stderr] warning: Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
[INFO] [stderr] (in the `winit` dependency)
[INFO] [stderr] warning: `doukutsu-rs` (manifest) generated 3 warnings
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 316d77f6b34d57f846e67e02f9d8113c7d3c28d584990826dfd6f57e130aafbf
[INFO] running `Command { std: "docker" "start" "316d77f6b34d57f846e67e02f9d8113c7d3c28d584990826dfd6f57e130aafbf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "316d77f6b34d57f846e67e02f9d8113c7d3c28d584990826dfd6f57e130aafbf", 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" "316d77f6b34d57f846e67e02f9d8113c7d3c28d584990826dfd6f57e130aafbf" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "316d77f6b34d57f846e67e02f9d8113c7d3c28d584990826dfd6f57e130aafbf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "316d77f6b34d57f846e67e02f9d8113c7d3c28d584990826dfd6f57e130aafbf" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
[INFO] [stderr] (in the `clap` dependency)
[INFO] [stderr] warning: Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
[INFO] [stderr] (in the `glutin` dependency)
[INFO] [stderr] warning: Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
[INFO] [stderr] (in the `winit` dependency)
[INFO] [stderr] warning: `doukutsu-rs` (manifest) generated 3 warnings
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling cc v1.2.63
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking litemap v0.8.2
[INFO] [stderr]     Checking writeable v0.6.3
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]    Compiling erasable v1.3.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking simd-adler32 v0.3.9
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling sdl2 v0.37.0 (https://github.com/doukutsu-rs/rust-sdl2.git?rev=244ae85833cff4f97ab4b58331741be20e422bd7#244ae858)
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]    Compiling cpal v0.15.3 (https://github.com/doukutsu-rs/cpal?rev=fe7a16f1f6610b803617a47e027c0305af3a3983#fe7a16f1)
[INFO] [stderr]     Checking itoa v1.0.18
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]     Checking memchr v2.8.1
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking log v0.4.31
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]    Compiling pelite-macros v0.1.1
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking chlorine v1.0.13
[INFO] [stderr]     Checking anstyle v1.0.14
[INFO] [stderr]     Checking bitflags v2.12.1
[INFO] [stderr]     Checking clap_lex v1.1.0
[INFO] [stderr]    Compiling doukutsu-rs v1.0.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]     Checking mint v0.5.9
[INFO] [stderr]     Checking tinyvec_macros v0.1.1
[INFO] [stderr]     Checking tinyvec v1.11.0
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking uuid v0.8.2
[INFO] [stderr]    Compiling sdl2-sys v0.37.0 (https://github.com/doukutsu-rs/rust-sdl2.git?rev=244ae85833cff4f97ab4b58331741be20e422bd7#244ae858)
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling imgui-sys v0.12.0 (https://github.com/imgui-rs/imgui-rs.git?rev=5d771a83b82c5cc3dd58cca3f969d900369262e6#5d771a83)
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking ogg v0.8.0
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]     Checking iana-time-zone v0.1.65
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking pathdiff v0.2.3
[INFO] [stderr]     Checking home v0.5.12
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking dataview v1.0.2
[INFO] [stderr]     Checking unicase v2.9.0
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking no-std-compat v0.4.1
[INFO] [stderr]     Checking xml-rs v0.8.28
[INFO] [stderr]     Checking case_insensitive_hashmap v1.0.1
[INFO] [stderr]     Checking pelite v0.10.0
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking xmltree v0.10.3
[INFO] [stderr]     Checking open v3.2.0
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking directories v3.0.2
[INFO] [stderr]     Checking rc-box v1.3.0
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]     Checking fern v0.6.2
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking vec_mut_scan v0.4.0
[INFO] [stderr]     Checking downcast v0.11.0
[INFO] [stderr]     Checking bitfield v0.16.1
[INFO] [stderr]     Checking strum v0.24.1
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]    Compiling strum_macros v0.24.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]     Checking imgui v0.12.0 (https://github.com/imgui-rs/imgui-rs.git?rev=5d771a83b82c5cc3dd58cca3f969d900369262e6#5d771a83)
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking webbrowser v0.8.15
[INFO] [stderr]     Checking trainer-protocol v0.1.0 (/opt/rustwide/workdir/vendor/trainer/protocol)
[INFO] [stderr]     Checking discord-rich-presence v1.1.0
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking trainer-bridge v0.1.0 (/opt/rustwide/workdir/vendor/trainer/bridge)
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/components/credits.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::common::{Color, Rect};
[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: `Color`
[INFO] [stdout]  --> src/components/falling_island.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::common::{Color, Rect};
[INFO] [stdout]   |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UnsafeCell`
[INFO] [stdout]  --> src/game/npc/list.rs:1:45
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::{Cell, Ref, RefCell, RefMut, UnsafeCell};
[INFO] [stdout]   |                                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MaybeUninit` and `transmute`
[INFO] [stdout]  --> src/game/npc/list.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::mem::{MaybeUninit, transmute};
[INFO] [stdout]   |                ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/game/shared_game_state.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::common::{Color, ControlFlags, Direction, FadeState};
[INFO] [stdout]   |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DataType`
[INFO] [stdout]   --> src/game/shared_game_state.rs:10:41
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::engine_constants::{RootType, DataType, EngineConstants};
[INFO] [stdout]    |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::mem::size_of`
[INFO] [stdout]  --> src/macros.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use core::mem::size_of;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/components/credits.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::common::{Color, Rect};
[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: `Color`
[INFO] [stdout]  --> src/components/falling_island.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::common::{Color, Rect};
[INFO] [stdout]   |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UnsafeCell`
[INFO] [stdout]  --> src/game/npc/list.rs:1:45
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cell::{Cell, Ref, RefCell, RefMut, UnsafeCell};
[INFO] [stdout]   |                                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MaybeUninit` and `transmute`
[INFO] [stdout]  --> src/game/npc/list.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::mem::{MaybeUninit, transmute};
[INFO] [stdout]   |                ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/game/shared_game_state.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::common::{Color, ControlFlags, Direction, FadeState};
[INFO] [stdout]   |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DataType`
[INFO] [stdout]   --> src/game/shared_game_state.rs:10:41
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::engine_constants::{RootType, DataType, EngineConstants};
[INFO] [stdout]    |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::mem::size_of`
[INFO] [stdout]  --> src/macros.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use core::mem::size_of;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead
[INFO] [stdout]  --> src/game/mod.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::panic::PanicInfo;
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead
[INFO] [stdout]    --> src/game/mod.rs:354:22
[INFO] [stdout]     |
[INFO] [stdout] 354 | fn panic_hook(info: &PanicInfo<'_>) {
[INFO] [stdout]     |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead
[INFO] [stdout]  --> src/game/mod.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::panic::PanicInfo;
[INFO] [stdout]   |                 ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead
[INFO] [stdout]    --> src/game/mod.rs:354:22
[INFO] [stdout]     |
[INFO] [stdout] 354 | fn panic_hook(info: &PanicInfo<'_>) {
[INFO] [stdout]     |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/data/exe_parser.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct ExeResourceDirectory {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] 25 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExeResourceDirectory` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `extract_english_pack` is never used
[INFO] [stdout]   --> src/data/vanilla.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl VanillaExtractor {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn extract_english_pack(data_dir: &std::path::Path) -> GameResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Interpolatable` is never used
[INFO] [stdout]   --> src/entity.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub trait Interpolatable {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `channel` is never read
[INFO] [stdout]   --> src/graphics/bmfont.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct BMChar {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub channel: u8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BMChar` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `font_size` and `base` are never read
[INFO] [stdout]   --> src/graphics/bmfont.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct BMFontMetadata {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 32 |     pub pages: u16,
[INFO] [stdout] 33 |     pub font_size: i16,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 34 |     pub line_height: u16,
[INFO] [stdout] 35 |     pub base: u16,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BMFontMetadata` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Display` is never constructed
[INFO] [stdout]   --> src/sound/organya.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Display {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/components/water_renderer.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |             L_DELTAS.resize(self.columns.len(), 0.0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/components/water_renderer.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |             R_DELTAS.resize(self.columns.len(), 0.0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/framework/render_opengl.rs:221:31
[INFO] [stdout]     |
[INFO] [stdout] 221 |             if let Some(gl) = &GL_PROC {
[INFO] [stdout]     |                               ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 221 |             if let Some(gl) = &raw const GL_PROC {
[INFO] [stdout]     |                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/framework/render_opengl.rs:265:35
[INFO] [stdout]     |
[INFO] [stdout] 265 |                 if let Some(gl) = &GL_PROC {
[INFO] [stdout]     |                                   ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 265 |                 if let Some(gl) = &raw const GL_PROC {
[INFO] [stdout]     |                                    +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/framework/render_opengl.rs:564:27
[INFO] [stdout]     |
[INFO] [stdout] 564 |         if let Some(gl) = &GL_PROC {
[INFO] [stdout]     |                           ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 564 |         if let Some(gl) = &raw const GL_PROC {
[INFO] [stdout]     |                            +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/framework/render_opengl.rs:583:9
[INFO] [stdout]     |
[INFO] [stdout] 583 |         GL_PROC.as_ref().unwrap()
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/framework/render_opengl.rs:990:31
[INFO] [stdout]     |
[INFO] [stdout] 990 |             if let Some(gl) = &GL_PROC {
[INFO] [stdout]     |                               ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 990 |             if let Some(gl) = &raw const GL_PROC {
[INFO] [stdout]     |                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/framework/render_opengl.rs:1247:27
[INFO] [stdout]      |
[INFO] [stdout] 1247 |         if let Some(gl) = &GL_PROC {
[INFO] [stdout]      |                           ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]      |
[INFO] [stdout] 1247 |         if let Some(gl) = &raw const GL_PROC {
[INFO] [stdout]      |                            +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/framework/vfs.rs:199:34
[INFO] [stdout]     |
[INFO] [stdout] 199 |     fn is_normal_component(comp: path::Component) -> Option<&str> {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^            ^^^^ the same lifetime is elided here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 199 |     fn is_normal_component(comp: path::Component<'_>) -> Option<&str> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/game/npc/mod.rs:964:39
[INFO] [stdout]     |
[INFO] [stdout] 964 |     fn from_str(str: &'static str) -> TexRef {
[INFO] [stdout]     |                       -------         ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is named here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'static`
[INFO] [stdout]     |
[INFO] [stdout] 964 |     fn from_str(str: &'static str) -> TexRef<'static> {
[INFO] [stdout]     |                                             +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/game/player/mod.rs:27:45
[INFO] [stdout]    |
[INFO] [stdout] 27 | #[derive(Debug, Clone, Copy, PartialEq, Eq, FromPrimitive)]
[INFO] [stdout]    |                                             ^------------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `FromPrimitive` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_ControlMode`
[INFO] [stdout] 28 | #[repr(u8)]
[INFO] [stdout] 29 | pub enum ControlMode {
[INFO] [stdout]    |          ----------- `ControlMode` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/game/scripting/tsc/opcodes.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(EnumString, Debug, FromPrimitive, PartialEq, Copy, Clone)]
[INFO] [stdout]   |                             ^------------
[INFO] [stdout]   |                             |
[INFO] [stdout]   |                             `FromPrimitive` is not local
[INFO] [stdout]   |                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_TSCOpCode`
[INFO] [stdout] 5 | pub enum TSCOpCode {
[INFO] [stdout]   |          --------- `TSCOpCode` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/game/scripting/tsc/opcodes.rs:272:10
[INFO] [stdout]     |
[INFO] [stdout] 272 | #[derive(FromPrimitive, PartialEq, Copy, Clone)]
[INFO] [stdout]     |          ^------------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `FromPrimitive` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_CreditOpCode`
[INFO] [stdout] 273 | pub enum CreditOpCode {
[INFO] [stdout]     |          ------------ `CreditOpCode` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/game/shared_game_state.rs:110:45
[INFO] [stdout]     |
[INFO] [stdout] 110 | #[derive(PartialEq, Eq, Copy, Clone, Debug, num_derive::FromPrimitive)]
[INFO] [stdout]     |                                             ^------------------------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `FromPrimitive` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_GameDifficulty`
[INFO] [stdout] 111 | pub enum GameDifficulty {
[INFO] [stdout]     |          -------------- `GameDifficulty` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/game/shared_game_state.rs:117:38
[INFO] [stdout]     |
[INFO] [stdout] 117 | #[derive(PartialEq, Eq, Copy, Clone, num_derive::FromPrimitive)]
[INFO] [stdout]     |                                      ^------------------------
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      `FromPrimitive` is not local
[INFO] [stdout]     |                                      move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_PlayerCount`
[INFO] [stdout] 118 | pub enum PlayerCount {
[INFO] [stdout]     |          ----------- `PlayerCount` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/game/shared_game_state.rs:136:38
[INFO] [stdout]     |
[INFO] [stdout] 136 | #[derive(PartialEq, Eq, Copy, Clone, num_derive::FromPrimitive, serde::Serialize, serde::Deserialize)]
[INFO] [stdout]     |                                      ^------------------------
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      `FromPrimitive` is not local
[INFO] [stdout]     |                                      move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_ScreenShakeIntensity`
[INFO] [stdout] 137 | pub enum ScreenShakeIntensity {
[INFO] [stdout]     |          -------------------- `ScreenShakeIntensity` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/game/weapon/mod.rs:22:45
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[derive(Debug, PartialEq, Eq, Copy, Clone, FromPrimitive)]
[INFO] [stdout]    |                                             ^------------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `FromPrimitive` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_WeaponType`
[INFO] [stdout] 23 | #[repr(u8)]
[INFO] [stdout] 24 | pub enum WeaponType {
[INFO] [stdout]    |          ---------- `WeaponType` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/graphics/bmfont.rs:185:13
[INFO] [stdout]     |
[INFO] [stdout] 185 |             TEXT_BUF.clear();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/graphics/bmfont.rs:187:17
[INFO] [stdout]     |
[INFO] [stdout] 187 |                 TEXT_BUF.push(c);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/graphics/bmfont.rs:191:58
[INFO] [stdout]     |
[INFO] [stdout] 191 |                 let text_width = self.compute_width(&mut TEXT_BUF.iter().copied(), symbols.as_ref());
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/graphics/bmfont.rs:198:26
[INFO] [stdout]     |
[INFO] [stdout] 198 |                     &mut TEXT_BUF.iter().copied(),
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/graphics/bmfont.rs:211:22
[INFO] [stdout]     |
[INFO] [stdout] 211 |                 &mut TEXT_BUF.iter().copied(),
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `ItemWidthStackToken` that must be used
[INFO] [stdout]    --> src/live_debugger/mod.rs:256:21
[INFO] [stdout]     |
[INFO] [stdout] 256 |                     ui.push_item_width(-1.0);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 256 |                     let _unused = ui.push_item_width(-1.0);
[INFO] [stdout]     |                     +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `ItemWidthStackToken` that must be used
[INFO] [stdout]    --> src/live_debugger/mod.rs:340:21
[INFO] [stdout]     |
[INFO] [stdout] 340 |                     ui.push_item_width(-1.0);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 340 |                     let _unused = ui.push_item_width(-1.0);
[INFO] [stdout]     |                     +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `ItemWidthStackToken` that must be used
[INFO] [stdout]    --> src/live_debugger/mod.rs:537:21
[INFO] [stdout]     |
[INFO] [stdout] 537 |                     ui.push_item_width(-1.0);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 537 |                     let _unused = ui.push_item_width(-1.0);
[INFO] [stdout]     |                     +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/menu/mod.rs:781:9
[INFO] [stdout]     |
[INFO] [stdout] 781 |         &mut self,
[INFO] [stdout]     |         ^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 784 |     ) -> MenuSelectionResult<T> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 784 |     ) -> MenuSelectionResult<'_, T> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/util/bitvec.rs:62:17
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn iter(&self) -> BitVecIter {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn iter(&self) -> BitVecIter<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/data/exe_parser.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct ExeResourceDirectory {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] 25 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExeResourceDirectory` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `extract_english_pack` is never used
[INFO] [stdout]   --> src/data/vanilla.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl VanillaExtractor {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn extract_english_pack(data_dir: &std::path::Path) -> GameResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Interpolatable` is never used
[INFO] [stdout]   --> src/entity.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub trait Interpolatable {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `channel` is never read
[INFO] [stdout]   --> src/graphics/bmfont.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct BMChar {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub channel: u8,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BMChar` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `font_size` and `base` are never read
[INFO] [stdout]   --> src/graphics/bmfont.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct BMFontMetadata {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 32 |     pub pages: u16,
[INFO] [stdout] 33 |     pub font_size: i16,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 34 |     pub line_height: u16,
[INFO] [stdout] 35 |     pub base: u16,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BMFontMetadata` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Display` is never constructed
[INFO] [stdout]   --> src/sound/organya.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Display {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/components/water_renderer.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |             L_DELTAS.resize(self.columns.len(), 0.0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/components/water_renderer.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |             R_DELTAS.resize(self.columns.len(), 0.0);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/framework/render_opengl.rs:221:31
[INFO] [stdout]     |
[INFO] [stdout] 221 |             if let Some(gl) = &GL_PROC {
[INFO] [stdout]     |                               ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 221 |             if let Some(gl) = &raw const GL_PROC {
[INFO] [stdout]     |                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/framework/render_opengl.rs:265:35
[INFO] [stdout]     |
[INFO] [stdout] 265 |                 if let Some(gl) = &GL_PROC {
[INFO] [stdout]     |                                   ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 265 |                 if let Some(gl) = &raw const GL_PROC {
[INFO] [stdout]     |                                    +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/framework/render_opengl.rs:564:27
[INFO] [stdout]     |
[INFO] [stdout] 564 |         if let Some(gl) = &GL_PROC {
[INFO] [stdout]     |                           ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 564 |         if let Some(gl) = &raw const GL_PROC {
[INFO] [stdout]     |                            +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/framework/render_opengl.rs:583:9
[INFO] [stdout]     |
[INFO] [stdout] 583 |         GL_PROC.as_ref().unwrap()
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/framework/render_opengl.rs:990:31
[INFO] [stdout]     |
[INFO] [stdout] 990 |             if let Some(gl) = &GL_PROC {
[INFO] [stdout]     |                               ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 990 |             if let Some(gl) = &raw const GL_PROC {
[INFO] [stdout]     |                                +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]     --> src/framework/render_opengl.rs:1247:27
[INFO] [stdout]      |
[INFO] [stdout] 1247 |         if let Some(gl) = &GL_PROC {
[INFO] [stdout]      |                           ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]      |
[INFO] [stdout]      = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]      |
[INFO] [stdout] 1247 |         if let Some(gl) = &raw const GL_PROC {
[INFO] [stdout]      |                            +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/framework/vfs.rs:199:34
[INFO] [stdout]     |
[INFO] [stdout] 199 |     fn is_normal_component(comp: path::Component) -> Option<&str> {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^            ^^^^ the same lifetime is elided here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 199 |     fn is_normal_component(comp: path::Component<'_>) -> Option<&str> {
[INFO] [stdout]     |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/game/npc/mod.rs:964:39
[INFO] [stdout]     |
[INFO] [stdout] 964 |     fn from_str(str: &'static str) -> TexRef {
[INFO] [stdout]     |                       -------         ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is named here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'static`
[INFO] [stdout]     |
[INFO] [stdout] 964 |     fn from_str(str: &'static str) -> TexRef<'static> {
[INFO] [stdout]     |                                             +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/game/npc/list.rs:326:5
[INFO] [stdout]     |
[INFO] [stdout] 325 | pub fn test_npc_list() -> GameResult {
[INFO] [stdout]     | ------------------------------------ move the `impl` block outside of this function `test_npc_list`
[INFO] [stdout] 326 |     impl NPC {
[INFO] [stdout]     |     ^^^^^---
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `NPC` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/game/player/mod.rs:27:45
[INFO] [stdout]    |
[INFO] [stdout] 27 | #[derive(Debug, Clone, Copy, PartialEq, Eq, FromPrimitive)]
[INFO] [stdout]    |                                             ^------------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `FromPrimitive` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_ControlMode`
[INFO] [stdout] 28 | #[repr(u8)]
[INFO] [stdout] 29 | pub enum ControlMode {
[INFO] [stdout]    |          ----------- `ControlMode` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/game/scripting/tsc/opcodes.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(EnumString, Debug, FromPrimitive, PartialEq, Copy, Clone)]
[INFO] [stdout]   |                             ^------------
[INFO] [stdout]   |                             |
[INFO] [stdout]   |                             `FromPrimitive` is not local
[INFO] [stdout]   |                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_TSCOpCode`
[INFO] [stdout] 5 | pub enum TSCOpCode {
[INFO] [stdout]   |          --------- `TSCOpCode` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/game/scripting/tsc/opcodes.rs:272:10
[INFO] [stdout]     |
[INFO] [stdout] 272 | #[derive(FromPrimitive, PartialEq, Copy, Clone)]
[INFO] [stdout]     |          ^------------
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `FromPrimitive` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_CreditOpCode`
[INFO] [stdout] 273 | pub enum CreditOpCode {
[INFO] [stdout]     |          ------------ `CreditOpCode` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/game/shared_game_state.rs:110:45
[INFO] [stdout]     |
[INFO] [stdout] 110 | #[derive(PartialEq, Eq, Copy, Clone, Debug, num_derive::FromPrimitive)]
[INFO] [stdout]     |                                             ^------------------------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `FromPrimitive` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_GameDifficulty`
[INFO] [stdout] 111 | pub enum GameDifficulty {
[INFO] [stdout]     |          -------------- `GameDifficulty` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/game/shared_game_state.rs:117:38
[INFO] [stdout]     |
[INFO] [stdout] 117 | #[derive(PartialEq, Eq, Copy, Clone, num_derive::FromPrimitive)]
[INFO] [stdout]     |                                      ^------------------------
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      `FromPrimitive` is not local
[INFO] [stdout]     |                                      move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_PlayerCount`
[INFO] [stdout] 118 | pub enum PlayerCount {
[INFO] [stdout]     |          ----------- `PlayerCount` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/game/shared_game_state.rs:136:38
[INFO] [stdout]     |
[INFO] [stdout] 136 | #[derive(PartialEq, Eq, Copy, Clone, num_derive::FromPrimitive, serde::Serialize, serde::Deserialize)]
[INFO] [stdout]     |                                      ^------------------------
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      `FromPrimitive` is not local
[INFO] [stdout]     |                                      move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_ScreenShakeIntensity`
[INFO] [stdout] 137 | pub enum ScreenShakeIntensity {
[INFO] [stdout]     |          -------------------- `ScreenShakeIntensity` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `num_derive::FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `num_derive::FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/game/weapon/mod.rs:22:45
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[derive(Debug, PartialEq, Eq, Copy, Clone, FromPrimitive)]
[INFO] [stdout]    |                                             ^------------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `FromPrimitive` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_WeaponType`
[INFO] [stdout] 23 | #[repr(u8)]
[INFO] [stdout] 24 | pub enum WeaponType {
[INFO] [stdout]    |          ---------- `WeaponType` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/graphics/bmfont.rs:185:13
[INFO] [stdout]     |
[INFO] [stdout] 185 |             TEXT_BUF.clear();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/graphics/bmfont.rs:187:17
[INFO] [stdout]     |
[INFO] [stdout] 187 |                 TEXT_BUF.push(c);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/graphics/bmfont.rs:191:58
[INFO] [stdout]     |
[INFO] [stdout] 191 |                 let text_width = self.compute_width(&mut TEXT_BUF.iter().copied(), symbols.as_ref());
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/graphics/bmfont.rs:198:26
[INFO] [stdout]     |
[INFO] [stdout] 198 |                     &mut TEXT_BUF.iter().copied(),
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/graphics/bmfont.rs:211:22
[INFO] [stdout]     |
[INFO] [stdout] 211 |                 &mut TEXT_BUF.iter().copied(),
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `ItemWidthStackToken` that must be used
[INFO] [stdout]    --> src/live_debugger/mod.rs:256:21
[INFO] [stdout]     |
[INFO] [stdout] 256 |                     ui.push_item_width(-1.0);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 256 |                     let _unused = ui.push_item_width(-1.0);
[INFO] [stdout]     |                     +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `ItemWidthStackToken` that must be used
[INFO] [stdout]    --> src/live_debugger/mod.rs:340:21
[INFO] [stdout]     |
[INFO] [stdout] 340 |                     ui.push_item_width(-1.0);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 340 |                     let _unused = ui.push_item_width(-1.0);
[INFO] [stdout]     |                     +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `ItemWidthStackToken` that must be used
[INFO] [stdout]    --> src/live_debugger/mod.rs:537:21
[INFO] [stdout]     |
[INFO] [stdout] 537 |                     ui.push_item_width(-1.0);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]     |
[INFO] [stdout] 537 |                     let _unused = ui.push_item_width(-1.0);
[INFO] [stdout]     |                     +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/menu/mod.rs:781:9
[INFO] [stdout]     |
[INFO] [stdout] 781 |         &mut self,
[INFO] [stdout]     |         ^^^^^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 784 |     ) -> MenuSelectionResult<T> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 784 |     ) -> MenuSelectionResult<'_, T> {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/util/bitvec.rs:62:17
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn iter(&self) -> BitVecIter {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn iter(&self) -> BitVecIter<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `paste`
[INFO] [stderr]   --> Cargo.toml:21:1
[INFO] [stderr]    |
[INFO] [stderr] 21 | paste = "1.0"
[INFO] [stderr]    | ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `paste`
[INFO] [stderr] warning: unused dependency `rc-box`
[INFO] [stderr]   --> Cargo.toml:22:1
[INFO] [stderr]    |
[INFO] [stderr] 22 | rc-box = "1.2.0"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `rc-box`
[INFO] [stderr] warning: unused dependency `trainer-bridge`
[INFO] [stderr]   --> Cargo.toml:81:15
[INFO] [stderr]    |
[INFO] [stderr] 81 | [dependencies.trainer-bridge]
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `trainer-bridge`
[INFO] [stderr] warning: `doukutsu-rs` (manifest) generated 3 warnings
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9m 10s
[INFO] running `Command { std: "docker" "inspect" "316d77f6b34d57f846e67e02f9d8113c7d3c28d584990826dfd6f57e130aafbf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "316d77f6b34d57f846e67e02f9d8113c7d3c28d584990826dfd6f57e130aafbf", kill_on_drop: false }`
[INFO] [stdout] 316d77f6b34d57f846e67e02f9d8113c7d3c28d584990826dfd6f57e130aafbf
