[INFO] cloning repository https://github.com/mxmgorin/tower-rl-handheld
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mxmgorin/tower-rl-handheld" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmxmgorin%2Ftower-rl-handheld", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmxmgorin%2Ftower-rl-handheld'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fe5f4a27f741c0d16eb04cd9688ce3e274f05b60
[INFO] checking mxmgorin/tower-rl-handheld against 5c543b0b8c73c7b72bc8284ced4fb22ead15734d for pr-160186
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmxmgorin%2Ftower-rl-handheld" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-0-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/mxmgorin/tower-rl-handheld
[INFO] finished tweaking git repo https://github.com/mxmgorin/tower-rl-handheld
[INFO] tweaked toml for git repo https://github.com/mxmgorin/tower-rl-handheld written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mxmgorin/tower-rl-handheld on toolchain 5c543b0b8c73c7b72bc8284ced4fb22ead15734d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mxmgorin/tower-rl-handheld 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" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: crates/hike/Cargo.toml: `crate_type` is deprecated in favor of `crate-type` and will not work in the 2024 edition
[INFO] [stderr] (in the `tower` library target)
[INFO] [stderr] warning: crates/hike/Cargo.toml: file `/workspace/builds/worker-0-tc1/source/crates/hike/src/lib.rs` found to be present in multiple build targets:
[INFO] [stderr]   * `lib` target `tower`
[INFO] [stderr]   * `bin` target `tower`
[INFO] [stderr] warning: `tower` (manifest) generated 2 warnings
[INFO] [stderr]     Updating git repository `https://github.com/mxmgorin/rogalik`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.91
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.91
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.91
[INFO] [stderr]   Downloaded symphonia-codec-alac v0.5.5
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.91
[INFO] [stderr]   Downloaded version-compare v0.1.1
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.91
[INFO] [stderr]   Downloaded raw-window-handle v0.6.0
[INFO] [stderr]   Downloaded anyhow v1.0.80
[INFO] [stderr]   Downloaded allocator-api2 v0.2.16
[INFO] [stderr]   Downloaded bytemuck v1.23.1
[INFO] [stderr]   Downloaded serde_yaml v0.9.32
[INFO] [stderr]   Downloaded unsafe-libyaml v0.2.10
[INFO] [stderr]   Downloaded js-sys v0.3.68
[INFO] [stderr]   Downloaded indexmap v2.2.4
[INFO] [stderr]   Downloaded sdl2 v0.38.0
[INFO] [stderr]   Downloaded web-sys v0.3.68
[INFO] [stderr]   Downloaded sdl2-sys v0.38.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e7562fa73a381de57d394854a9e39bf089fbe460b534ef0609de1ad4c879f0ff
[INFO] running `Command { std: "docker" "start" "e7562fa73a381de57d394854a9e39bf089fbe460b534ef0609de1ad4c879f0ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e7562fa73a381de57d394854a9e39bf089fbe460b534ef0609de1ad4c879f0ff", 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" "e7562fa73a381de57d394854a9e39bf089fbe460b534ef0609de1ad4c879f0ff" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e7562fa73a381de57d394854a9e39bf089fbe460b534ef0609de1ad4c879f0ff", 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" "e7562fa73a381de57d394854a9e39bf089fbe460b534ef0609de1ad4c879f0ff" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr] warning: crates/hike/Cargo.toml: `crate_type` is deprecated in favor of `crate-type` and will not work in the 2024 edition
[INFO] [stderr] (in the `tower` library target)
[INFO] [stderr] warning: crates/hike/Cargo.toml: file `/opt/rustwide/workdir/crates/hike/src/lib.rs` found to be present in multiple build targets:
[INFO] [stderr]   * `lib` target `tower`
[INFO] [stderr]   * `bin` target `tower`
[INFO] [stderr] warning: `tower` (manifest) generated 2 warnings
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]     Checking bytemuck v1.23.1
[INFO] [stderr]     Checking arrayvec v0.7.4
[INFO] [stderr]    Compiling serde v1.0.197
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]    Compiling syn v2.0.52
[INFO] [stderr]    Compiling rogalik_assets v0.3.0 (https://github.com/mxmgorin/rogalik?branch=sdl2#46f5ced4)
[INFO] [stderr]     Checking raw-window-handle v0.6.0
[INFO] [stderr]     Checking core_maths v0.1.1
[INFO] [stderr]     Checking allocator-api2 v0.2.16
[INFO] [stderr]     Checking symphonia-core v0.5.5
[INFO] [stderr]    Compiling sdl2-sys v0.38.0
[INFO] [stderr]    Compiling sdl2 v0.38.0
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]    Compiling anyhow v1.0.80
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking indexmap v2.2.4
[INFO] [stderr]     Checking ryu v1.0.17
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking unsafe-libyaml v0.2.10
[INFO] [stderr]     Checking symphonia-metadata v0.5.5
[INFO] [stderr]     Checking symphonia-codec-pcm v0.5.5
[INFO] [stderr]     Checking symphonia-codec-alac v0.5.5
[INFO] [stderr]     Checking symphonia-codec-adpcm v0.5.5
[INFO] [stderr]     Checking symphonia-codec-aac v0.5.5
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking rogalik_events v0.1.0 (/opt/rustwide/workdir/crates/rogalik_events)
[INFO] [stderr]     Checking fontdue v0.9.4
[INFO] [stderr]     Checking symphonia-utils-xiph v0.5.5
[INFO] [stderr]     Checking symphonia-bundle-mp3 v0.5.5
[INFO] [stderr]     Checking symphonia-format-riff v0.5.5
[INFO] [stderr]     Checking symphonia-bundle-flac v0.5.5
[INFO] [stderr]     Checking symphonia-codec-vorbis v0.5.5
[INFO] [stderr]     Checking symphonia-format-ogg v0.5.5
[INFO] [stderr]     Checking symphonia-format-mkv v0.5.5
[INFO] [stderr]     Checking symphonia v0.5.5
[INFO] [stderr]    Compiling serde_derive v1.0.197
[INFO] [stderr]     Checking rogalik_math v0.3.0 (https://github.com/mxmgorin/rogalik?branch=sdl2#46f5ced4)
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking serde_yaml v0.9.32
[INFO] [stderr]     Checking rogalik_common v0.3.0 (https://github.com/mxmgorin/rogalik?branch=sdl2#46f5ced4)
[INFO] [stderr]     Checking rogalik_persist v0.3.0 (https://github.com/mxmgorin/rogalik?branch=sdl2#46f5ced4)
[INFO] [stderr]     Checking rogalik_storage v0.1.0 (/opt/rustwide/workdir/crates/rogalik_storage)
[INFO] [stdout] warning: unused import: `rogalik_events`
[INFO] [stdout]  --> crates/rogalik_storage/src/lib.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rogalik_events;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> crates/rogalik_storage/src/errors.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Any`
[INFO] [stdout]  --> crates/rogalik_storage/src/serialize.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     any::{Any, TypeId},
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rogalik_events`
[INFO] [stdout]  --> crates/rogalik_storage/src/lib.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rogalik_events;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> crates/rogalik_storage/src/errors.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Any`
[INFO] [stdout]  --> crates/rogalik_storage/src/serialize.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     any::{Any, TypeId},
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rogalik_render v0.3.0 (https://github.com/mxmgorin/rogalik?branch=sdl2#46f5ced4)
[INFO] [stderr]     Checking rogalik_audio v0.3.0 (https://github.com/mxmgorin/rogalik?branch=sdl2#46f5ced4)
[INFO] [stderr]     Checking rogalik_sdl2 v0.3.0 (https://github.com/mxmgorin/rogalik?branch=sdl2#46f5ced4)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/rogalik_storage/src/component_storage.rs:17:25
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn get_as_component(&self, entity: Entity) ->  Option<Box<Ref<dyn Component>>>;
[INFO] [stdout]    |                         ^^^^^ the lifetime is elided here     ^^^^^^^^^^^^^^^^^^ 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]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn get_as_component(&self, entity: Entity) ->  Option<Box<Ref<'_, dyn Component>>>;
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/rogalik_storage/src/component_storage.rs:29:25
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn get_as_component(&self, entity: Entity) -> Option<Box<Ref<dyn Component>>> {
[INFO] [stdout]    |                         ^^^^^ the lifetime is elided here    ^^^^^^^^^^^^^^^^^^ 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] 29 |     fn get_as_component(&self, entity: Entity) -> Option<Box<Ref<'_, dyn Component>>> {
[INFO] [stdout]    |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/rogalik_storage/src/world.rs:67:54
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub fn get_component_set<T: Component + 'static>(&self) -> Option<Ref<ComponentSet<T>>> {
[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] 67 |     pub fn get_component_set<T: Component + 'static>(&self) -> Option<Ref<'_, ComponentSet<T>>> {
[INFO] [stdout]    |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/rogalik_storage/src/world.rs:73:58
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn get_component_set_mut<T: Component + 'static>(&self) -> Option<RefMut<ComponentSet<T>>> {
[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] 73 |     pub fn get_component_set_mut<T: Component + 'static>(&self) -> Option<RefMut<'_, ComponentSet<T>>> {
[INFO] [stdout]    |                                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:110:50
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub fn get_component<T: Component + 'static>(&self, entity: Entity) -> Option<Ref<T>> {
[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] 110 |     pub fn get_component<T: Component + 'static>(&self, entity: Entity) -> Option<Ref<'_, T>> {
[INFO] [stdout]     |                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:114:54
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn get_component_mut<T: Component + 'static>(&self, entity: Entity) -> Option<RefMut<T>> {
[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] 114 |     pub fn get_component_mut<T: Component + 'static>(&self, entity: Entity) -> Option<RefMut<'_, T>> {
[INFO] [stdout]     |                                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:126:37
[INFO] [stdout]     |
[INFO] [stdout] 126 |     pub fn get_resource<T: 'static>(&self) -> Option<Ref<T>> {
[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] 126 |     pub fn get_resource<T: 'static>(&self) -> Option<Ref<'_, T>> {
[INFO] [stdout]     |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:132:41
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn get_resource_mut<T: 'static>(&self) -> Option<RefMut<T>> {
[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] 132 |     pub fn get_resource_mut<T: 'static>(&self) -> Option<RefMut<'_, T>> {
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:149:42
[INFO] [stdout]     |
[INFO] [stdout] 149 |     pub fn query<T: 'static + Component>(&self) -> QueryBuilder {
[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] 149 |     pub fn query<T: 'static + Component>(&self) -> QueryBuilder<'_> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:159:47
[INFO] [stdout]     |
[INFO] [stdout] 159 |     pub fn new<T: 'static + Component>(world: &World) -> QueryBuilder {
[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] 159 |     pub fn new<T: 'static + Component>(world: &World) -> QueryBuilder<'_> {
[INFO] [stdout]     |                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:204:21
[INFO] [stdout]     |
[INFO] [stdout] 204 |     pub fn entities(&self) -> std::slice::Iter<Entity> {
[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] 204 |     pub fn entities(&self) -> std::slice::Iter<'_, Entity> {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:210:43
[INFO] [stdout]     |
[INFO] [stdout] 210 |     pub fn single<T: Component + 'static>(&self) -> Option<Ref<T>> {
[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] 210 |     pub fn single<T: Component + 'static>(&self) -> Option<Ref<'_, T>> {
[INFO] [stdout]     |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:214:47
[INFO] [stdout]     |
[INFO] [stdout] 214 |     pub fn single_mut<T: Component + 'static>(&self) -> Option<RefMut<T>> {
[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] 214 |     pub fn single_mut<T: Component + 'static>(&self) -> Option<RefMut<'_, T>> {
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/rogalik_storage/src/component_storage.rs:17:25
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn get_as_component(&self, entity: Entity) ->  Option<Box<Ref<dyn Component>>>;
[INFO] [stdout]    |                         ^^^^^ the lifetime is elided here     ^^^^^^^^^^^^^^^^^^ 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]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn get_as_component(&self, entity: Entity) ->  Option<Box<Ref<'_, dyn Component>>>;
[INFO] [stdout]    |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/rogalik_storage/src/component_storage.rs:29:25
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn get_as_component(&self, entity: Entity) -> Option<Box<Ref<dyn Component>>> {
[INFO] [stdout]    |                         ^^^^^ the lifetime is elided here    ^^^^^^^^^^^^^^^^^^ 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] 29 |     fn get_as_component(&self, entity: Entity) -> Option<Box<Ref<'_, dyn Component>>> {
[INFO] [stdout]    |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/rogalik_storage/src/world.rs:67:54
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub fn get_component_set<T: Component + 'static>(&self) -> Option<Ref<ComponentSet<T>>> {
[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] 67 |     pub fn get_component_set<T: Component + 'static>(&self) -> Option<Ref<'_, ComponentSet<T>>> {
[INFO] [stdout]    |                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> crates/rogalik_storage/src/world.rs:73:58
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub fn get_component_set_mut<T: Component + 'static>(&self) -> Option<RefMut<ComponentSet<T>>> {
[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] 73 |     pub fn get_component_set_mut<T: Component + 'static>(&self) -> Option<RefMut<'_, ComponentSet<T>>> {
[INFO] [stdout]    |                                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:110:50
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub fn get_component<T: Component + 'static>(&self, entity: Entity) -> Option<Ref<T>> {
[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] 110 |     pub fn get_component<T: Component + 'static>(&self, entity: Entity) -> Option<Ref<'_, T>> {
[INFO] [stdout]     |                                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:114:54
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn get_component_mut<T: Component + 'static>(&self, entity: Entity) -> Option<RefMut<T>> {
[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] 114 |     pub fn get_component_mut<T: Component + 'static>(&self, entity: Entity) -> Option<RefMut<'_, T>> {
[INFO] [stdout]     |                                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:126:37
[INFO] [stdout]     |
[INFO] [stdout] 126 |     pub fn get_resource<T: 'static>(&self) -> Option<Ref<T>> {
[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] 126 |     pub fn get_resource<T: 'static>(&self) -> Option<Ref<'_, T>> {
[INFO] [stdout]     |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:132:41
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn get_resource_mut<T: 'static>(&self) -> Option<RefMut<T>> {
[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] 132 |     pub fn get_resource_mut<T: 'static>(&self) -> Option<RefMut<'_, T>> {
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:149:42
[INFO] [stdout]     |
[INFO] [stdout] 149 |     pub fn query<T: 'static + Component>(&self) -> QueryBuilder {
[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] 149 |     pub fn query<T: 'static + Component>(&self) -> QueryBuilder<'_> {
[INFO] [stdout]     |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:159:47
[INFO] [stdout]     |
[INFO] [stdout] 159 |     pub fn new<T: 'static + Component>(world: &World) -> QueryBuilder {
[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] 159 |     pub fn new<T: 'static + Component>(world: &World) -> QueryBuilder<'_> {
[INFO] [stdout]     |                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:204:21
[INFO] [stdout]     |
[INFO] [stdout] 204 |     pub fn entities(&self) -> std::slice::Iter<Entity> {
[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] 204 |     pub fn entities(&self) -> std::slice::Iter<'_, Entity> {
[INFO] [stdout]     |                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:210:43
[INFO] [stdout]     |
[INFO] [stdout] 210 |     pub fn single<T: Component + 'static>(&self) -> Option<Ref<T>> {
[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] 210 |     pub fn single<T: Component + 'static>(&self) -> Option<Ref<'_, T>> {
[INFO] [stdout]     |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/rogalik_storage/src/world.rs:214:47
[INFO] [stdout]     |
[INFO] [stdout] 214 |     pub fn single_mut<T: Component + 'static>(&self) -> Option<RefMut<T>> {
[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] 214 |     pub fn single_mut<T: Component + 'static>(&self) -> Option<RefMut<'_, T>> {
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rogalik v0.3.0 (https://github.com/mxmgorin/rogalik?branch=sdl2#46f5ced4)
[INFO] [stderr]     Checking hike_data v0.1.0 (/opt/rustwide/workdir/crates/hike_data)
[INFO] [stderr]     Checking hike_game v0.1.0 (/opt/rustwide/workdir/crates/hike_game)
[INFO] [stdout] warning: unused import: `rand::prelude::*`
[INFO] [stdout]  --> crates/hike_game/src/lib.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand::prelude::*;
[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: `math::vectors::Vector2i`
[INFO] [stdout]  --> crates/hike_game/src/lib.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rogalik::{Instant, math::vectors::Vector2i};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `any::TypeId`
[INFO] [stdout]  --> crates/hike_game/src/lib.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     any::TypeId,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AttackKind`
[INFO] [stdout]   --> crates/hike_game/src/actions.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     AttackKind, InteractionKind, Attitude,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `visibility`
[INFO] [stdout]   --> crates/hike_game/src/actions.rs:23:20
[INFO] [stdout]    |
[INFO] [stdout] 23 | use crate::utils::{visibility, get_entities_at_position, spawn_with_position, is_hostile};
[INFO] [stdout]    |                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Tile`
[INFO] [stdout]   --> crates/hike_game/src/board.rs:10:56
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::components::{Position, Player, ViewBlocker, Tile};
[INFO] [stdout]    |                                                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_entities_at_position`
[INFO] [stdout]   --> crates/hike_game/src/board.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::utils::{get_entities_at_position, spawn_with_position};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserializer`
[INFO] [stdout]  --> crates/hike_game/src/components.rs:3:37
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::{Serialize, Deserialize, Deserializer};
[INFO] [stdout]   |                                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> crates/hike_game/src/components.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{HashSet, HashMap};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `math::vectors::Vector2i`
[INFO] [stdout]  --> crates/hike_game/src/systems.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::{math::vectors::Vector2i};
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> crates/hike_game/src/systems.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{HashMap, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ranged`
[INFO] [stdout]   --> crates/hike_game/src/systems.rs:13:51
[INFO] [stdout]    |
[INFO] [stdout] 13 |     Player, Position, Poisoned, Transition, Name, Ranged, Summoner
[INFO] [stdout]    |                                                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::Visitor`
[INFO] [stdout]  --> crates/hike_game/src/utils.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::de::Visitor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Player`
[INFO] [stdout]  --> crates/hike_game/src/utils.rs:9:38
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::components::{Actor, Name, Player, Position, ViewBlocker, insert_data_components};
[INFO] [stdout]   |                                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::prelude::*`
[INFO] [stdout]  --> crates/hike_game/src/lib.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand::prelude::*;
[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: `math::vectors::Vector2i`
[INFO] [stdout]  --> crates/hike_game/src/lib.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rogalik::{Instant, math::vectors::Vector2i};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `any::TypeId`
[INFO] [stdout]  --> crates/hike_game/src/lib.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     any::TypeId,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AttackKind`
[INFO] [stdout]   --> crates/hike_game/src/actions.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     AttackKind, InteractionKind, Attitude,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `visibility`
[INFO] [stdout]   --> crates/hike_game/src/actions.rs:23:20
[INFO] [stdout]    |
[INFO] [stdout] 23 | use crate::utils::{visibility, get_entities_at_position, spawn_with_position, is_hostile};
[INFO] [stdout]    |                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Tile`
[INFO] [stdout]   --> crates/hike_game/src/board.rs:10:56
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::components::{Position, Player, ViewBlocker, Tile};
[INFO] [stdout]    |                                                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_entities_at_position`
[INFO] [stdout]   --> crates/hike_game/src/board.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::utils::{get_entities_at_position, spawn_with_position};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserializer`
[INFO] [stdout]  --> crates/hike_game/src/components.rs:3:37
[INFO] [stdout]   |
[INFO] [stdout] 3 | use serde::{Serialize, Deserialize, Deserializer};
[INFO] [stdout]   |                                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> crates/hike_game/src/components.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{HashSet, HashMap};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `math::vectors::Vector2i`
[INFO] [stdout]  --> crates/hike_game/src/systems.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::{math::vectors::Vector2i};
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> crates/hike_game/src/systems.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{HashMap, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ranged`
[INFO] [stdout]   --> crates/hike_game/src/systems.rs:13:51
[INFO] [stdout]    |
[INFO] [stdout] 13 |     Player, Position, Poisoned, Transition, Name, Ranged, Summoner
[INFO] [stdout]    |                                                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::Visitor`
[INFO] [stdout]  --> crates/hike_game/src/utils.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::de::Visitor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Player`
[INFO] [stdout]  --> crates/hike_game/src/utils.rs:9:38
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::components::{Actor, Name, Player, Position, ViewBlocker, insert_data_components};
[INFO] [stdout]   |                                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]   --> crates/hike_game/src/actions.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn score(&self, world: &World) -> i32 { 0 }
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]    --> crates/hike_game/src/actions.rs:470:23
[INFO] [stdout]     |
[INFO] [stdout] 470 |     fn execute(&self, world: &mut World) -> ActionResult {
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]    --> crates/hike_game/src/actions.rs:495:23
[INFO] [stdout]     |
[INFO] [stdout] 495 |     fn execute(&self, world: &mut World) -> ActionResult { Ok(Vec::new() )}
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]    --> crates/hike_game/src/actions.rs:851:21
[INFO] [stdout]     |
[INFO] [stdout] 851 |     fn score(&self, world: &World) -> i32 {
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]   --> crates/hike_game/src/actions.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn score(&self, world: &World) -> i32 { 0 }
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]    --> crates/hike_game/src/actions.rs:470:23
[INFO] [stdout]     |
[INFO] [stdout] 470 |     fn execute(&self, world: &mut World) -> ActionResult {
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]    --> crates/hike_game/src/actions.rs:495:23
[INFO] [stdout]     |
[INFO] [stdout] 495 |     fn execute(&self, world: &mut World) -> ActionResult { Ok(Vec::new() )}
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]    --> crates/hike_game/src/actions.rs:851:21
[INFO] [stdout]     |
[INFO] [stdout] 851 |     fn score(&self, world: &World) -> i32 {
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]   --> crates/hike_game/src/player.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn turn_end(world: &mut World) {
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]   --> crates/hike_game/src/player.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn turn_end(world: &mut World) {
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking hike_graphics v0.1.0 (/opt/rustwide/workdir/crates/hike_graphics)
[INFO] [stderr]     Checking hike_audio v0.1.0 (/opt/rustwide/workdir/crates/hike_audio)
[INFO] [stdout] warning: unused imports: `GraphicsContext` and `SpriteParams`
[INFO] [stdout]  --> crates/hike_graphics/src/crash_ui/mod.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::prelude::{GraphicsContext, SpriteParams};
[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: `Vector2i`
[INFO] [stdout]  --> crates/hike_graphics/src/crash_ui/mod.rs:2:30
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rogalik::math::vectors::{Vector2i, Vector2f};
[INFO] [stdout]   |                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prelude::GraphicsContext`
[INFO] [stdout]  --> crates/hike_graphics/src/graphics/mod.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::{prelude::GraphicsContext};
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hike_game::components::Position`
[INFO] [stdout]  --> crates/hike_graphics/src/graphics/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use hike_game::components::Position;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/mod.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::prelude::{Color, GraphicsContext};
[INFO] [stdout]   |                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ComponentSet`, `Entity`, and `WorldEvent`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/mod.rs:5:23
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rogalik_storage::{ComponentSet, Entity, World, WorldEvent};
[INFO] [stdout]   |                       ^^^^^^^^^^^^  ^^^^^^         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Entity`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/bubbles.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rogalik_storage::{Entity, World};
[INFO] [stdout]   |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IMMUNITY_COLOR` and `POISON_COLOR`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/bubbles.rs:15:41
[INFO] [stdout]    |
[INFO] [stdout] 15 |     UI_OVERLAY_FONT_SIZE, HEALTH_COLOR, POISON_COLOR, IMMUNITY_COLOR
[INFO] [stdout]    |                                         ^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SpriteParams`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/context_menu.rs:1:49
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::{prelude::{Color, GraphicsContext, SpriteParams}, math::vectors::Vector2f};
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Name` and `get_player_entity`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/context_menu.rs:8:50
[INFO] [stdout]    |
[INFO] [stdout]  8 |     components::{Interactive, Collectable, Item, Name, Weapon},
[INFO] [stdout]    |                                                  ^^^^
[INFO] [stdout]  9 |     get_player_position,
[INFO] [stdout] 10 |     get_player_entity,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/game_end.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::{prelude::{SliceParams, Color, GraphicsContext, SpriteParams}, math::vectors::Vector2f};
[INFO] [stdout]   |                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UiMode`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/game_end.rs:13:22
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::{UiState, UiMode, InputState, get_viewport_bounds};
[INFO] [stdout]    |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PIXEL`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/help.rs:9:35
[INFO] [stdout]   |
[INFO] [stdout] 9 |     UI_BG_Z, UI_STATUS_TEXT_SIZE, PIXEL
[INFO] [stdout]   |                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::context_menu::CONTEXT_VISIBLE`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/help.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::context_menu::CONTEXT_VISIBLE;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::context_menu::CONTEXT_VISIBLE`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/input.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use super::context_menu::CONTEXT_VISIBLE;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ButtonState`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/input.rs:15:50
[INFO] [stdout]    |
[INFO] [stdout] 15 | use super::{UiState, InputState, InputDirection, ButtonState};
[INFO] [stdout]    |                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/inventory.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::{prelude::{SliceParams, Color, GraphicsContext, SpriteParams}, math::vectors::Vector2f};
[INFO] [stdout]   |                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MAX_WEAPONS`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/inventory.rs:6:44
[INFO] [stdout]   |
[INFO] [stdout] 6 | use hike_game::globals::{MAX_COLLECTABLES, MAX_WEAPONS};
[INFO] [stdout]   |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Color` and `GraphicsContext`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/modal.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::prelude::{Color, GraphicsContext};
[INFO] [stdout]   |                        ^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/overlays.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::{prelude::{Color, GraphicsContext, SpriteParams}, math::vectors::Vector2f};
[INFO] [stdout]   |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GraphicsContext` and `SpriteParams`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/status.rs:1:32
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::{prelude::{Color, GraphicsContext, SpriteParams}, math::vectors::Vector2f};
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_entities_at_position` and `get_player_position`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/status.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     get_entities_at_position, get_player_position
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UI_TEXT_GAP`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/status.rs:10:37
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::super::globals::{UI_GAP, UI_TEXT_GAP, UI_STATUS_TEXT_SIZE};
[INFO] [stdout]    |                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector2i`
[INFO] [stdout]  --> crates/hike_graphics/src/title_ui/mod.rs:2:30
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rogalik::math::vectors::{Vector2i, Vector2f};
[INFO] [stdout]   |                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GraphicsContext` and `SpriteParams`
[INFO] [stdout]  --> crates/hike_graphics/src/crash_ui/mod.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::prelude::{GraphicsContext, SpriteParams};
[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: `Vector2i`
[INFO] [stdout]  --> crates/hike_graphics/src/crash_ui/mod.rs:2:30
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rogalik::math::vectors::{Vector2i, Vector2f};
[INFO] [stdout]   |                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prelude::GraphicsContext`
[INFO] [stdout]  --> crates/hike_graphics/src/graphics/mod.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::{prelude::GraphicsContext};
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hike_game::components::Position`
[INFO] [stdout]  --> crates/hike_graphics/src/graphics/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use hike_game::components::Position;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/mod.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::prelude::{Color, GraphicsContext};
[INFO] [stdout]   |                        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ComponentSet`, `Entity`, and `WorldEvent`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/mod.rs:5:23
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rogalik_storage::{ComponentSet, Entity, World, WorldEvent};
[INFO] [stdout]   |                       ^^^^^^^^^^^^  ^^^^^^         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Entity`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/bubbles.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rogalik_storage::{Entity, World};
[INFO] [stdout]   |                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IMMUNITY_COLOR` and `POISON_COLOR`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/bubbles.rs:15:41
[INFO] [stdout]    |
[INFO] [stdout] 15 |     UI_OVERLAY_FONT_SIZE, HEALTH_COLOR, POISON_COLOR, IMMUNITY_COLOR
[INFO] [stdout]    |                                         ^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SpriteParams`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/context_menu.rs:1:49
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::{prelude::{Color, GraphicsContext, SpriteParams}, math::vectors::Vector2f};
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Name` and `get_player_entity`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/context_menu.rs:8:50
[INFO] [stdout]    |
[INFO] [stdout]  8 |     components::{Interactive, Collectable, Item, Name, Weapon},
[INFO] [stdout]    |                                                  ^^^^
[INFO] [stdout]  9 |     get_player_position,
[INFO] [stdout] 10 |     get_player_entity,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/game_end.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::{prelude::{SliceParams, Color, GraphicsContext, SpriteParams}, math::vectors::Vector2f};
[INFO] [stdout]   |                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UiMode`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/game_end.rs:13:22
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::{UiState, UiMode, InputState, get_viewport_bounds};
[INFO] [stdout]    |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PIXEL`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/help.rs:9:35
[INFO] [stdout]   |
[INFO] [stdout] 9 |     UI_BG_Z, UI_STATUS_TEXT_SIZE, PIXEL
[INFO] [stdout]   |                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::context_menu::CONTEXT_VISIBLE`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/help.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::context_menu::CONTEXT_VISIBLE;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::context_menu::CONTEXT_VISIBLE`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/input.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use super::context_menu::CONTEXT_VISIBLE;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ButtonState`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/input.rs:15:50
[INFO] [stdout]    |
[INFO] [stdout] 15 | use super::{UiState, InputState, InputDirection, ButtonState};
[INFO] [stdout]    |                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/inventory.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::{prelude::{SliceParams, Color, GraphicsContext, SpriteParams}, math::vectors::Vector2f};
[INFO] [stdout]   |                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MAX_WEAPONS`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/inventory.rs:6:44
[INFO] [stdout]   |
[INFO] [stdout] 6 | use hike_game::globals::{MAX_COLLECTABLES, MAX_WEAPONS};
[INFO] [stdout]   |                                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Color` and `GraphicsContext`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/modal.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::prelude::{Color, GraphicsContext};
[INFO] [stdout]   |                        ^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/overlays.rs:1:25
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::{prelude::{Color, GraphicsContext, SpriteParams}, math::vectors::Vector2f};
[INFO] [stdout]   |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GraphicsContext` and `SpriteParams`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/status.rs:1:32
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rogalik::{prelude::{Color, GraphicsContext, SpriteParams}, math::vectors::Vector2f};
[INFO] [stdout]   |                                ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `get_entities_at_position` and `get_player_position`
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/status.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     get_entities_at_position, get_player_position
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UI_TEXT_GAP`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/status.rs:10:37
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::super::globals::{UI_GAP, UI_TEXT_GAP, UI_STATUS_TEXT_SIZE};
[INFO] [stdout]    |                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector2i`
[INFO] [stdout]  --> crates/hike_graphics/src/title_ui/mod.rs:2:30
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rogalik::math::vectors::{Vector2i, Vector2f};
[INFO] [stdout]   |                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/hike_graphics/src/graphics/renderers.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 92 |             _ => continue
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> crates/hike_graphics/src/graphics/renderers.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |             WorldEvent::ComponentRemoved(entity, type_id) => {
[INFO] [stdout]    |             --------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 72 |             WorldEvent::ComponentSpawned(entity, type_id) => {
[INFO] [stdout]    |             --------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 92 |             _ => continue
[INFO] [stdout]    |             ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> crates/hike_graphics/src/graphics/renderers.rs:273:32
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub fn draw_fog(world: &World, state: &GraphicsState, context: &mut Context_) {
[INFO] [stdout]     |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/bubbles.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     world: &World,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]    --> crates/hike_graphics/src/game_ui/help.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 |     height: f32,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `settings`
[INFO] [stdout]    --> crates/hike_graphics/src/game_ui/help.rs:139:5
[INFO] [stdout]     |
[INFO] [stdout] 139 |     settings: &mut Settings,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_settings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> crates/hike_graphics/src/game_ui/help.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     state: &InputState
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/modal.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut clicked = None;
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_state`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/modal.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     input_state: &InputState,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/modal.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     data: &ModalData
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `viewport_size`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/modal.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let viewport_size = context.get_physical_size();
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_viewport_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InputNumber` is never constructed
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/buttons.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub struct InputNumber<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> crates/hike_graphics/src/game_ui/buttons.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> InputNumber<'a> {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] 101 |     pub fn new(x: f32, y: f32, w: f32, value: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn with_label(mut self, label: &'a str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn with_min_max(mut self, min: u32, max: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn draw(&self, context: &mut crate::Context_) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     fn get_down_button(&self) -> Button {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     fn get_up_button(&self) -> Button {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn new_value(&self, state: &InputState) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModalData` is never constructed
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/modal.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct ModalData {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_modal` is never used
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/modal.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn draw_modal(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_text_owned` and `with_color` are never used
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/text_box.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<'a> TextBox<'a> {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn with_text_owned(mut self, text: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn with_color(mut self, color: Color) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/buttons.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 | /             context.graphics.draw_atlas_sprite(
[INFO] [stdout] 58 | |                 atlas,
[INFO] [stdout] 59 | |                 index,
[INFO] [stdout] 60 | |                 self.origin,
[INFO] [stdout] ...  |
[INFO] [stdout] 68 | |             );
[INFO] [stdout]    | |_____________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 57 |             let _ = context.graphics.draw_atlas_sprite(
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/hike_graphics/src/game_ui/buttons.rs:172:24
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn get_down_button(&self) -> Button {
[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]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn get_down_button(&self) -> Button<'_> {
[INFO] [stdout]     |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/hike_graphics/src/game_ui/buttons.rs:180:22
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn get_up_button(&self) -> Button {
[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] 180 |     fn get_up_button(&self) -> Button<'_> {
[INFO] [stdout]     |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/hike_graphics/src/game_ui/context_menu.rs:125:26
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn get_desc_spans(world: &World, entity: Entity) -> Option<Vec<Span>> {
[INFO] [stdout]     |                          ^^^^^^ the lifetime is elided here    ^^^^ 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] 125 | fn get_desc_spans(world: &World, entity: Entity) -> Option<Vec<Span<'_>>> {
[INFO] [stdout]     |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tower v0.1.10 (/opt/rustwide/workdir/crates/hike)
[INFO] [stdout] warning: unused import: `Vector2i`
[INFO] [stdout]  --> crates/hike/src/lib.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 |     math::vectors::{Vector2f, Vector2i},
[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: `rogalik::math::vectors::Vector2f`
[INFO] [stdout]  --> crates/hike/src/assets.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rogalik::math::vectors::Vector2f;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/hike_graphics/src/graphics/renderers.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 92 |             _ => continue
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> crates/hike_graphics/src/graphics/renderers.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |             WorldEvent::ComponentRemoved(entity, type_id) => {
[INFO] [stdout]    |             --------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 72 |             WorldEvent::ComponentSpawned(entity, type_id) => {
[INFO] [stdout]    |             --------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 92 |             _ => continue
[INFO] [stdout]    |             ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector2i`
[INFO] [stdout]  --> crates/hike/src/lib.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 |     math::vectors::{Vector2f, Vector2i},
[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: `rogalik::math::vectors::Vector2f`
[INFO] [stdout]  --> crates/hike/src/assets.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rogalik::math::vectors::Vector2f;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector2i`
[INFO] [stdout]  --> crates/hike/src/lib.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 |     math::vectors::{Vector2f, Vector2i},
[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: `rogalik::math::vectors::Vector2f`
[INFO] [stdout]  --> crates/hike/src/assets.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rogalik::math::vectors::Vector2f;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> crates/hike_graphics/src/graphics/renderers.rs:273:32
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub fn draw_fog(world: &World, state: &GraphicsState, context: &mut Context_) {
[INFO] [stdout]     |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector2i`
[INFO] [stdout]  --> crates/hike/src/lib.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 |     math::vectors::{Vector2f, Vector2i},
[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: `rogalik::math::vectors::Vector2f`
[INFO] [stdout]  --> crates/hike/src/assets.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rogalik::math::vectors::Vector2f;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> crates/hike/src/input.rs:261:14
[INFO] [stdout]     |
[INFO] [stdout] 261 |         for (id, touch) in touch_state.iter_mut() {
[INFO] [stdout]     |              ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/bubbles.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     world: &World,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> crates/hike/src/input.rs:261:14
[INFO] [stdout]     |
[INFO] [stdout] 261 |         for (id, touch) in touch_state.iter_mut() {
[INFO] [stdout]     |              ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Crash`, `GameStart`, `GameResume`, `Game`, `GameRestart`, and `GameEnd` are never constructed
[INFO] [stdout]   --> crates/hike/src/lib.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | enum GamePhase {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 33 |     Crash,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 34 |     GameStart,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 35 |     GameResume,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 36 |     Game,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 37 |     GameRestart,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 38 |     GameEnd
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `game_events` and `ui_events` are never read
[INFO] [stdout]   --> crates/hike/src/lib.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Events {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] 42 |     game_events: EventBus<hike_game::GameEvent>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 43 |     ui_events: EventBus<hike_graphics::UiEvent>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> crates/hike/src/lib.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl Events {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 46 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> crates/hike/src/lib.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct GameState {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 55 |     audio: hike_audio::GameAudio,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 56 |     phase: GamePhase,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 57 |     can_resume: bool,
[INFO] [stdout] 58 |     data: hike_data::GameData,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 59 |     camera_main: ResourceId<CameraId>,
[INFO] [stdout] 60 |     events: Events,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 61 |     ev_game: SubscriberHandle<hike_game::GameEvent>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 62 |     ev_ui: SubscriberHandle<hike_graphics::UiEvent>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 63 |     graphics_ready: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 64 |     graphics_state: hike_graphics::GraphicsState,
[INFO] [stdout] 65 |     input_state: hike_graphics::game_ui::InputState,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     gamepad: input::GamepadState,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 69 |     world: World
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tick` is never used
[INFO] [stdout]   --> crates/hike/src/lib.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl GameState {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 98 |     fn tick(&mut self, context: &mut Context) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MainScene` is never constructed
[INFO] [stdout]    --> crates/hike/src/lib.rs:207:8
[INFO] [stdout]     |
[INFO] [stdout] 207 | struct MainScene;
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StderrLog` is never constructed
[INFO] [stdout]    --> crates/hike/src/lib.rs:234:8
[INFO] [stdout]     |
[INFO] [stdout] 234 | struct StderrLog {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_logging` is never used
[INFO] [stdout]    --> crates/hike/src/lib.rs:251:4
[INFO] [stdout]     |
[INFO] [stdout] 251 | fn init_logging() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]    --> crates/hike/src/lib.rs:265:4
[INFO] [stdout]     |
[INFO] [stdout] 265 | fn main() {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `game_state` is never used
[INFO] [stdout]    --> crates/hike/src/lib.rs:285:4
[INFO] [stdout]     |
[INFO] [stdout] 285 | fn game_state() -> GameState {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_initial_elements` is never used
[INFO] [stdout]    --> crates/hike/src/lib.rs:309:4
[INFO] [stdout]     |
[INFO] [stdout] 309 | fn get_initial_elements() -> (World, Events, hike_graphics::GraphicsState, hike_audio::GameAudio) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `game_update` is never used
[INFO] [stdout]    --> crates/hike/src/lib.rs:322:4
[INFO] [stdout]     |
[INFO] [stdout] 322 | fn game_update(state: &mut GameState, context: &mut Context_) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `game_ui_update` is never used
[INFO] [stdout]    --> crates/hike/src/lib.rs:346:4
[INFO] [stdout]     |
[INFO] [stdout] 346 | fn game_ui_update(state: &mut GameState, context: &mut Context_) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_game_data` is never used
[INFO] [stdout]   --> crates/hike/src/assets.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn load_game_data() -> GameData {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Started`, `MoveAttempted`, `MoveStarted`, `MoveEnded`, and `Ended` are never constructed
[INFO] [stdout]   --> crates/hike/src/input.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum TouchState {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 20 |     Started,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 21 |     MoveAttempted,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 22 |     MoveStarted,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 23 |     MoveEnded,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 24 |     Ended
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TouchState` 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 `start`, `prev`, `time`, `dir`, and `state` are never read
[INFO] [stdout]   --> crates/hike/src/input.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Touch {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 28 |     pub start: Vector2f,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 29 |     pub prev: Vector2f,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 30 |     pub time: Instant,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 31 |     pub dir: InputDirection,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 32 |     pub state: TouchState
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STICK_THRESHOLD` is never used
[INFO] [stdout]   --> crates/hike/src/input.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const STICK_THRESHOLD: f32 = 0.5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SLOTS` is never used
[INFO] [stdout]   --> crates/hike/src/input.rs:38:7
[INFO] [stdout]    |
[INFO] [stdout] 38 | const SLOTS: usize = 4;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `nav_stick_dir`, `weapon_slot`, and `stick_dir` are never read
[INFO] [stdout]   --> crates/hike/src/input.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct GamepadState {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 46 |     nav_stick_dir: InputDirection,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 47 |     weapon_slot: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 48 |     stick_dir: InputDirection,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_input_state` is never used
[INFO] [stdout]   --> crates/hike/src/input.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn get_input_state(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_state` is never used
[INFO] [stdout]    --> crates/hike/src/input.rs:170:4
[INFO] [stdout]     |
[INFO] [stdout] 170 | fn key_state(context: &Context_, code: KeyCode) -> ButtonState {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_touch_dir` is never used
[INFO] [stdout]    --> crates/hike/src/input.rs:180:4
[INFO] [stdout]     |
[INFO] [stdout] 180 | fn get_touch_dir(d: Vector2f) -> InputDirection {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_touches` is never used
[INFO] [stdout]    --> crates/hike/src/input.rs:191:4
[INFO] [stdout]     |
[INFO] [stdout] 191 | fn handle_touches(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gamepad_direction_raw` is never used
[INFO] [stdout]    --> crates/hike/src/input.rs:274:4
[INFO] [stdout]     |
[INFO] [stdout] 274 | fn gamepad_direction_raw(context: &Context_, gamepad: &mut GamepadState) -> InputDirection {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `button_state` is never used
[INFO] [stdout]    --> crates/hike/src/input.rs:300:4
[INFO] [stdout]     |
[INFO] [stdout] 300 | fn button_state(context: &Context_, button: GamepadButton) -> ButtonState {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge` is never used
[INFO] [stdout]    --> crates/hike/src/input.rs:313:4
[INFO] [stdout]     |
[INFO] [stdout] 313 | fn merge(keyboard: ButtonState, gamepad: ButtonState) -> ButtonState {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wrap` is never used
[INFO] [stdout]    --> crates/hike/src/input.rs:320:4
[INFO] [stdout]     |
[INFO] [stdout] 320 | fn wrap(slot: usize, step: isize) -> usize {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cycle_step` is never used
[INFO] [stdout]    --> crates/hike/src/input.rs:324:4
[INFO] [stdout]     |
[INFO] [stdout] 324 | fn cycle_step(back: bool, forward: bool) -> Option<isize> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gamepad_direction` is never used
[INFO] [stdout]    --> crates/hike/src/input.rs:334:4
[INFO] [stdout]     |
[INFO] [stdout] 334 | fn gamepad_direction(context: &Context_, gamepad: &mut GamepadState) -> Option<InputDirection> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stick_nav` is never used
[INFO] [stdout]    --> crates/hike/src/input.rs:374:8
[INFO] [stdout]     |
[INFO] [stdout] 372 | impl GamepadState {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] 373 |     /// Left stick as a one-shot direction, for menus.
[INFO] [stdout] 374 |     fn stick_nav(&mut self, context: &Context_) -> InputDirection {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_serialized` is never used
[INFO] [stdout]  --> crates/hike/src/serialize.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn register_serialized(world: &mut World) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Ended` is never constructed
[INFO] [stdout]   --> crates/hike/src/input.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum TouchState {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 24 |     Ended
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TouchState` 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: unused variable: `id`
[INFO] [stdout]    --> crates/hike/src/input.rs:261:14
[INFO] [stdout]     |
[INFO] [stdout] 261 |         for (id, touch) in touch_state.iter_mut() {
[INFO] [stdout]     |              ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> crates/hike/src/input.rs:261:14
[INFO] [stdout]     |
[INFO] [stdout] 261 |         for (id, touch) in touch_state.iter_mut() {
[INFO] [stdout]     |              ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Ended` is never constructed
[INFO] [stdout]   --> crates/hike/src/input.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum TouchState {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 24 |     Ended
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TouchState` 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: unused variable: `height`
[INFO] [stdout]    --> crates/hike_graphics/src/game_ui/help.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 |     height: f32,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `settings`
[INFO] [stdout]    --> crates/hike_graphics/src/game_ui/help.rs:139:5
[INFO] [stdout]     |
[INFO] [stdout] 139 |     settings: &mut Settings,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_settings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> crates/hike_graphics/src/game_ui/help.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     state: &InputState
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/modal.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut clicked = None;
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_state`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/modal.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     input_state: &InputState,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/modal.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     data: &ModalData
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `viewport_size`
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/modal.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let viewport_size = context.get_physical_size();
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_viewport_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Ended` is never constructed
[INFO] [stdout]   --> crates/hike/src/input.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum TouchState {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 24 |     Ended
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TouchState` 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: struct `InputNumber` is never constructed
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/buttons.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub struct InputNumber<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> crates/hike_graphics/src/game_ui/buttons.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl<'a> InputNumber<'a> {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] 101 |     pub fn new(x: f32, y: f32, w: f32, value: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn with_label(mut self, label: &'a str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn with_min_max(mut self, min: u32, max: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn draw(&self, context: &mut crate::Context_) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     fn get_down_button(&self) -> Button {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     fn get_up_button(&self) -> Button {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn new_value(&self, state: &InputState) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModalData` is never constructed
[INFO] [stdout]  --> crates/hike_graphics/src/game_ui/modal.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct ModalData {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_modal` is never used
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/modal.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn draw_modal(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_text_owned` and `with_color` are never used
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/text_box.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<'a> TextBox<'a> {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn with_text_owned(mut self, text: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn with_color(mut self, color: Color) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> crates/hike_graphics/src/game_ui/buttons.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 | /             context.graphics.draw_atlas_sprite(
[INFO] [stdout] 58 | |                 atlas,
[INFO] [stdout] 59 | |                 index,
[INFO] [stdout] 60 | |                 self.origin,
[INFO] [stdout] ...  |
[INFO] [stdout] 68 | |             );
[INFO] [stdout]    | |_____________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 57 |             let _ = context.graphics.draw_atlas_sprite(
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/hike_graphics/src/game_ui/buttons.rs:172:24
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn get_down_button(&self) -> Button {
[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]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn get_down_button(&self) -> Button<'_> {
[INFO] [stdout]     |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/hike_graphics/src/game_ui/buttons.rs:180:22
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn get_up_button(&self) -> Button {
[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] 180 |     fn get_up_button(&self) -> Button<'_> {
[INFO] [stdout]     |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> crates/hike_graphics/src/game_ui/context_menu.rs:125:26
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn get_desc_spans(world: &World, entity: Entity) -> Option<Vec<Span>> {
[INFO] [stdout]     |                          ^^^^^^ the lifetime is elided here    ^^^^ 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] 125 | fn get_desc_spans(world: &World, entity: Entity) -> Option<Vec<Span<'_>>> {
[INFO] [stdout]     |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 33.85s
[INFO] running `Command { std: "docker" "inspect" "e7562fa73a381de57d394854a9e39bf089fbe460b534ef0609de1ad4c879f0ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e7562fa73a381de57d394854a9e39bf089fbe460b534ef0609de1ad4c879f0ff", kill_on_drop: false }`
[INFO] [stdout] e7562fa73a381de57d394854a9e39bf089fbe460b534ef0609de1ad4c879f0ff
