[INFO] cloning repository https://github.com/traagel/voxel-game
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/traagel/voxel-game" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftraagel%2Fvoxel-game", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftraagel%2Fvoxel-game'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d92327dfe078578bbc997f325cab9c0300d45507
[INFO] testing traagel/voxel-game/d92327dfe078578bbc997f325cab9c0300d45507 against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftraagel%2Fvoxel-game" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/traagel/voxel-game
[INFO] finished tweaking git repo https://github.com/traagel/voxel-game
[INFO] tweaked toml for git repo https://github.com/traagel/voxel-game written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/traagel/voxel-game on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/traagel/voxel-game already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded objc-rs v0.2.8
[INFO] [stderr]   Downloaded quad-rand v0.2.3
[INFO] [stderr]   Downloaded macroquad_macro v0.1.8
[INFO] [stderr]   Downloaded noise v0.9.0
[INFO] [stderr]   Downloaded fontdue v0.9.3
[INFO] [stderr]   Downloaded miniquad v0.4.8
[INFO] [stderr]   Downloaded ttf-parser v0.21.1
[INFO] [stderr]   Downloaded glam v0.27.0
[INFO] [stderr]   Downloaded macroquad v0.4.14
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5fbe1d639f5f554b8e066f1241abc7ed30737640326425adefba277bc42668c6
[INFO] running `Command { std: "docker" "start" "-a" "5fbe1d639f5f554b8e066f1241abc7ed30737640326425adefba277bc42668c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5fbe1d639f5f554b8e066f1241abc7ed30737640326425adefba277bc42668c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5fbe1d639f5f554b8e066f1241abc7ed30737640326425adefba277bc42668c6", kill_on_drop: false }`
[INFO] [stdout] 5fbe1d639f5f554b8e066f1241abc7ed30737640326425adefba277bc42668c6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ab13a70b6a4d93665f626385f9564b4633fdf8b277ac502e29cf989e0426c3a9
[INFO] running `Command { std: "docker" "start" "-a" "ab13a70b6a4d93665f626385f9564b4633fdf8b277ac502e29cf989e0426c3a9", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling miniquad v0.4.8
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling miniz_oxide v0.8.8
[INFO] [stderr]    Compiling hashbrown v0.15.2
[INFO] [stderr]    Compiling bytemuck v1.23.0
[INFO] [stderr]    Compiling ttf-parser v0.21.1
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling macroquad_macro v0.1.8
[INFO] [stderr]    Compiling quad-rand v0.2.3
[INFO] [stderr]    Compiling glam v0.27.0
[INFO] [stderr]    Compiling rand_xorshift v0.3.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling flate2 v1.1.1
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]    Compiling png v0.17.16
[INFO] [stderr]    Compiling noise v0.9.0
[INFO] [stderr]    Compiling fontdue v0.9.3
[INFO] [stderr]    Compiling image v0.24.9
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling macroquad v0.4.14
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling voxel_game v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `ElevationType`, `PrecipitationType`, `TemperatureType`, and `VegetationType`
[INFO] [stdout]  --> src/renderer/world_map_renderer.rs:6:46
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::world::worldmap::biome::{BiomeId, TemperatureType, VegetationType, PrecipitationType, ElevationType};
[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: `biome::BiomeId`
[INFO] [stdout]  --> src/world/worldmap/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use biome::BiomeId;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `world_map::WorldMap`
[INFO] [stdout]  --> src/world/worldmap/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use world_map::WorldMap;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NoiseFn`
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/elevation/noise_sources.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use noise::{Perlin, NoiseFn};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `constants as c`, `crater_effect`, `noise_sources::NoiseSources`, and `random_craters`
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/generator.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     constants as c,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     noise_sources::NoiseSources,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     craters::{random_craters, crater_effect},
[INFO] [stdout]    |               ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NoiseFn` and `Perlin`
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/mod.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use noise::{Perlin, NoiseFn};
[INFO] [stdout]   |             ^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Civilization`
[INFO] [stdout]  --> src/worldgen/worldmap/civ/relations/mod.rs:1:75
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::world::worldmap::{CivilizationInstance, CivilizationRelations, Civilization, Relation};
[INFO] [stdout]   |                                                                           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Civilization`
[INFO] [stdout]  --> src/worldgen/worldmap/civ/trade/mod.rs:1:93
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::world::worldmap::{CivilizationInstance, City, CivilizationRelations, TradeRoute, Civilization, Relation};
[INFO] [stdout]   |                                                                                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BiomeId`, `ElevationType`, `PrecipitationType`, `TemperatureType`, and `VegetationType`
[INFO] [stdout]  --> src/worldgen/worldmap/builder.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     BiomeId, ElevationType, PrecipitationType, TemperatureType, VegetationType,
[INFO] [stdout]   |     ^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::SeedableRng`
[INFO] [stdout]  --> src/worldgen/worldmap/builder.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rand::SeedableRng;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::worldgen::worldmap::hydrology::lakes`
[INFO] [stdout]   --> src/worldgen/worldmap/builder.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::worldgen::worldmap::hydrology::lakes;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WorldMapBuilder as WorldMapGenerator`
[INFO] [stdout]    --> src/worldgen/worldmap/builder.rs:269:9
[INFO] [stdout]     |
[INFO] [stdout] 269 | pub use WorldMapBuilder as WorldMapGenerator;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::prelude::*`
[INFO] [stdout]  --> src/gui/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use macroquad::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `hash` and `root_ui`
[INFO] [stdout]  --> src/gui/mod.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use macroquad::ui::{hash, root_ui};
[INFO] [stdout]   |                     ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::world::localmap::world::World`
[INFO] [stdout]  --> src/gui/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::world::localmap::world::World;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::world::localmap::terrain_material::TerrainMaterial`
[INFO] [stdout]  --> src/gui/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::world::localmap::terrain_material::TerrainMaterial;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::worldgen::worldmap::params::WorldGenParams`
[INFO] [stdout]  --> src/gui/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::worldgen::worldmap::params::WorldGenParams;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::game::input::RenderMode`
[INFO] [stdout]  --> src/gui/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::game::input::RenderMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::world::worldmap::world_map::WorldMap`
[INFO] [stdout]  --> src/gui/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::world::worldmap::world_map::WorldMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::renderer::camera::Camera`
[INFO] [stdout]  --> src/gui/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::renderer::camera::Camera;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::renderer::world_map_renderer::MapView`
[INFO] [stdout]  --> src/gui/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::renderer::world_map_renderer::MapView;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::world::worldmap::city::City`
[INFO] [stdout]   --> src/gui/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::world::worldmap::city::City;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::world::worldmap::civilization::Civilization`
[INFO] [stdout]   --> src/gui/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::world::worldmap::civilization::Civilization;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stdout]  --> src/gui/state.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::input::event::InputEvent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::gui::GuiState`
[INFO] [stdout]  --> src/gui/windows/main_menu/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::gui::GuiState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::world::worldmap::civilization::Civilization`
[INFO] [stdout]  --> src/gui/windows/city_info/core.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::world::worldmap::civilization::Civilization;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::world::worldmap::biome::BiomeId`
[INFO] [stdout]  --> src/gui/windows/city_info/core.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::world::worldmap::biome::BiomeId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `portraits::*`
[INFO] [stdout]   --> src/gui/windows/city_info/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use portraits::*; 
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::gui::GuiState`
[INFO] [stdout]  --> src/gui/windows/window_manager/core.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::gui::GuiState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `main_menu::MainMenuState`
[INFO] [stdout]  --> src/gui/windows/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use main_menu::MainMenuState;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `city_info::*`
[INFO] [stdout]  --> src/gui/windows/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use city_info::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `window_manager::*`
[INFO] [stdout]   --> src/gui/windows/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use window_manager::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `window_state::*`
[INFO] [stdout]   --> src/gui/windows/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use window_state::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `worker_info::*`
[INFO] [stdout]   --> src/gui/windows/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use worker_info::*; 
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `windows::*`
[INFO] [stdout]   --> src/gui/mod.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use windows::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tile_ui::*`
[INFO] [stdout]  --> src/gui/widgets/mod.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use tile_ui::*; 
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `widgets::*`
[INFO] [stdout]   --> src/gui/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use widgets::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stdout]   --> src/game/input/handler.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::input::event::InputEvent;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `local_map as view_local_map` and `world_map as view_world_map`
[INFO] [stdout]   --> src/game/input/handler.rs:13:26
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::game::views::{world_map as view_world_map, local_map as view_local_map};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stdout]  --> src/game/input/local_map/camera_controls.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::input::event::InputEvent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stdout]  --> src/game/input/local_map/mouse_controls.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::input::event::InputEvent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stdout]  --> src/game/input/local_map/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::input::event::InputEvent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stdout]  --> src/game/input/world_map/camera_controls.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::input::event::InputEvent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stdout]  --> src/game/input/world_map/mouse_controls.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::input::event::InputEvent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stdout]  --> src/game/input/world_map/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::input::event::InputEvent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `world_map as view_world_map`
[INFO] [stdout]   --> src/game/input/world_map/mod.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::game::views::{GameView, world_map as view_world_map};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `state::GameState`
[INFO] [stdout]  --> src/game/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use state::GameState;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `views::GameView`
[INFO] [stdout]   --> src/game/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use views::GameView; 
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/mountains/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/world/worldmap/biome.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 129 |             _ => DEFAULT_COLOR,
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/world/worldmap/biome.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |             BiomeId::Plains => PLAINS_COLOR,
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] 111 |             BiomeId::Mountain => MOUNTAIN_COLOR,
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] 112 |             BiomeId::Ocean => OCEAN_COLOR,
[INFO] [stdout]     |             -------------- matches some of the same values
[INFO] [stdout] 113 |             BiomeId::Sea => SEA_COLOR,
[INFO] [stdout]     |             ------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 129 |             _ => DEFAULT_COLOR,
[INFO] [stdout]     |             ^ ...and 15 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/mountains/mod.rs:79:17
[INFO] [stdout]    |
[INFO] [stdout] 79 |             let t = i as f64 / path.len().max(1) as f64;
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bt`
[INFO] [stdout]    --> src/worldgen/worldmap/terrain/mountains/mod.rs:104:25
[INFO] [stdout]     |
[INFO] [stdout] 104 |                     let bt = j as f64 / branch_path.len().max(1) as f64;
[INFO] [stdout]     |                         ^^ help: if this is intentional, prefix it with an underscore: `_bt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/worldgen/worldmap/biome/classifiers.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         (t, p, _, _) if t < 0.3               => BiomeId::Taiga,
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/worldgen/worldmap/civ/roads/mod.rs:49:25
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn reconstruct_path(mut came_from: HashMap<(usize, usize), (usize, usize)>, mut current: (usize, usize)) -> Vec<(usize, usize)> {
[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: `civ_b`
[INFO] [stdout]   --> src/worldgen/worldmap/civ/trade/mod.rs:36:28
[INFO] [stdout]    |
[INFO] [stdout] 36 |             .filter(|&(j, &civ_b)| i != j)
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_civ_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/worldgen/worldmap/civ/trade/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let width = elevation.len();
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/worldgen/worldmap/civ/trade/mod.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let height = elevation[0].len();
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `best_from` is assigned to, but never used
[INFO] [stdout]    --> src/worldgen/worldmap/civ/trade/mod.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |             let mut best_from = 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_best_from` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `best_to` is assigned to, but never used
[INFO] [stdout]    --> src/worldgen/worldmap/civ/trade/mod.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |             let mut best_to = 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_best_to` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_from` is never read
[INFO] [stdout]    --> src/worldgen/worldmap/civ/trade/mod.rs:122:25
[INFO] [stdout]     |
[INFO] [stdout] 122 |                         best_from = i;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_to` is never read
[INFO] [stdout]    --> src/worldgen/worldmap/civ/trade/mod.rs:123:25
[INFO] [stdout]     |
[INFO] [stdout] 123 |                         best_to = j;
[INFO] [stdout]     |                         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/worldgen/worldmap/builder.rs:64:29
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let (mut elevation, mut moisture) = elevation::generate(
[INFO] [stdout]    |                             ----^^^^^^^^
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `craters`
[INFO] [stdout]   --> src/worldgen/worldmap/builder.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let craters = random_craters(self.seed, self.width, self.height, p.num_craters);
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_craters`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `noise`
[INFO] [stdout]   --> src/worldgen/worldmap/builder.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let noise = NoiseSources::new(self.seed);
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_noise`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]   --> src/gui/state.rs:22:30
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn update(&mut self, world: &World, render_mode: RenderMode, input: &InputManager) {
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `render_mode`
[INFO] [stdout]   --> src/gui/state.rs:22:45
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn update(&mut self, world: &World, render_mode: RenderMode, input: &InputManager) {
[INFO] [stdout]    |                                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_render_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]  --> src/gui/windows/worker_info/core.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn draw_worker_info_window(state: &mut WorkerInfoState) {
[INFO] [stdout]   |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `events`
[INFO] [stdout]   --> src/game/input/local_map/mod.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let events = &input.events;
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_events`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original_x`
[INFO] [stdout]   --> src/game/input/world_map/camera_controls.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let original_x = camera.x;
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original_y`
[INFO] [stdout]   --> src/game/input/world_map/camera_controls.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let original_y = camera.y;
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `delta_zoom` are never used
[INFO] [stdout]   --> src/renderer/camera.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Camera {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new(x: f32, y: f32, zoom: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn delta_zoom(&mut self, zoom: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `delta_zoom` is never used
[INFO] [stdout]   --> src/renderer/local_map_renderer.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl LocalMapRenderer {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn delta_zoom(&mut self, zoom: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Temperature`, `Vegetation`, `Precipitation`, `Elevation`, `Civilization`, and `BiomeWithCivOverlay` are never constructed
[INFO] [stdout]   --> src/renderer/world_map_renderer.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum MapView {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] 12 |     Biome,
[INFO] [stdout] 13 |     Temperature,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 14 |     Vegetation,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 15 |     Precipitation,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     Elevation,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 17 |     Civilization,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 18 |     BiomeWithCivOverlay,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MapView` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `origin`, `tile_width`, `tile_height`, and `core` are never read
[INFO] [stdout]   --> src/renderer/world_map_renderer.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct SpriteInfo {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub origin: Option<[u32; 2]>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 29 |     pub tile_width: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 30 |     pub tile_height: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 31 |     pub core: Option<[u32; 4]>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpriteInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `draw_world_map` is never used
[INFO] [stdout]   --> src/renderer/world_map_renderer.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl WorldMapRenderer {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn draw_world_map(&self, world_map: &WorldMap, camera: &Camera) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `z` is never read
[INFO] [stdout]  --> src/world/localmap/zlevel.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ZLevel {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] 5 |     pub z: i32,
[INFO] [stdout]   |         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Water` is never constructed
[INFO] [stdout]  --> src/world/localmap/terrain_material.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum TerrainMaterial {
[INFO] [stdout]   |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 6 |     Water,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TerrainMaterial` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_block_counts` is never used
[INFO] [stdout]    --> src/world/localmap/world.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl World {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn get_block_counts(&self) -> &HashMap<TerrainMaterial, usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `color` is never used
[INFO] [stdout]   --> src/world/worldmap/biome.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | impl ElevationType {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 95 |     pub fn color(&self) -> Color {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/world/worldmap/world_map.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct WorldMap {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub moisture: Vec<Vec<f64>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 12 |     pub rivers: Vec<Vec<bool>>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 13 |     pub temperature: Vec<Vec<f64>>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 14 |     pub precipitation: Vec<Vec<f64>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 15 |     pub soil_fertility: Vec<Vec<f64>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     pub vegetation: Vec<Vec<f64>>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 17 |     pub wind_direction: Vec<Vec<(f64, f64)>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     pub resources: Vec<Vec<Option<ResourceType>>>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub elevation_map: Vec<Vec<crate::world::worldmap::biome::ElevationType>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WorldMap` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Iron`, `Gold`, `Coal`, `Gems`, and `Oil` are never constructed
[INFO] [stdout]   --> src/world/worldmap/world_map.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub enum ResourceType {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 39 |     Iron,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 40 |     Gold,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 41 |     Coal,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 42 |     Gems,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 43 |     Oil,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResourceType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `from`, `to`, `civ_a`, and `civ_b` are never read
[INFO] [stdout]   --> src/world/worldmap/civilization.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct TradeRoute {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 72 |     pub from: (usize, usize), // city coordinates
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 73 |     pub to: (usize, usize),
[INFO] [stdout]    |         ^^
[INFO] [stdout] 74 |     pub civ_a: Civilization,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 75 |     pub civ_b: Civilization,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TradeRoute` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NUM_CRATERS` is never used
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const NUM_CRATERS: usize = 5;
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONTINENT_SCALE_FACTOR` is never used
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const CONTINENT_SCALE_FACTOR:   f64 = 1.5;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DETAIL_JAGGED_FREQ` is never used
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const DETAIL_JAGGED_FREQ:       f64 = 2.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DETAIL_FALLOFF_FREQ` is never used
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const DETAIL_FALLOFF_FREQ:      f64 = 3.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RIDGE_FREQ` is never used
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const RIDGE_FREQ:               f64 = 2.0;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PLATEAU_FREQ` is never used
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const PLATEAU_FREQ:             f64 = 0.7;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CRATER_DEPTH` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const CRATER_DEPTH:             f64 = 0.25;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAKE_FREQ` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const LAKE_FREQ:                f64 = 0.8;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAKE_LOWERING` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const LAKE_LOWERING:            f64 = 0.18;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAKE_FLATTEN_BLEND` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const LAKE_FLATTEN_BLEND:       f64 = 0.25;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BASELINE_SHIFT` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const BASELINE_SHIFT:           f64 = -0.15;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WEIGHT_CONTINENTAL_MASK` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const WEIGHT_CONTINENTAL_MASK:  f64 = 0.32;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WEIGHT_DETAIL` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const WEIGHT_DETAIL:            f64 = 0.22;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WEIGHT_RIDGE` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const WEIGHT_RIDGE:             f64 = 1.25;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WEIGHT_FALLOFF` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const WEIGHT_FALLOFF:           f64 = 0.4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WEIGHT_PLATEAU` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const WEIGHT_PLATEAU:           f64 = 1.0;  // already toned inside fn
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x`, `y`, `rx`, `ry`, and `angle` are never read
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/craters.rs:6:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Crater {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout]  6 |     pub x: f64,
[INFO] [stdout]    |         ^
[INFO] [stdout]  7 |     pub y: f64,
[INFO] [stdout]    |         ^
[INFO] [stdout]  8 |     pub rx: f64,
[INFO] [stdout]    |         ^^
[INFO] [stdout]  9 |     pub ry: f64,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 10 |     pub angle: f64,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Crater` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `crater_effect` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/craters.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn crater_effect(cx: usize, cy: usize, craters: &[Crater]) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/noise_sources.rs:5:9
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct NoiseSources {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout]  5 |     pub continent: Perlin,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]  6 |     pub detail:    Perlin,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]  7 |     pub moist:     Perlin,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]  8 |     pub ridge:     Perlin,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]  9 |     pub plateau:   Perlin,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 10 |     pub crater:    Perlin,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 11 |     pub lake:      Perlin,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_lakes` is never used
[INFO] [stdout]  --> src/worldgen/worldmap/hydrology/lakes.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn apply_lakes(
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `moisture` is never read
[INFO] [stdout]  --> src/worldgen/worldmap/biome/models.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct TileEnv {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 5 |     pub moisture: f64,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TileEnv` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cost` is never read
[INFO] [stdout]  --> src/worldgen/worldmap/civ/roads/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Node {
[INFO] [stdout]   |            ---- field in this struct
[INFO] [stdout] 7 |     pub pos: (usize, usize),
[INFO] [stdout] 8 |     pub cost: f64,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Node` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_scale` and `with_height_noise` are never used
[INFO] [stdout]   --> src/worldgen/localmap/builder.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl WorldGeneratorBuilder {
[INFO] [stdout]    | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn with_scale(mut self, scale: f64) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn with_height_noise(self, _noise: OpenSimplex) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/worldgen/localmap/generator.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl WorldGenerator {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 15 |     pub fn new(seed: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `biome` is never read
[INFO] [stdout]   --> src/worldgen/localmap/pipeline.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct GenCtx<'a> {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub biome: [[BiomeId; CHUNK_SIZE]; CHUNK_SIZE],
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `paused` is never read
[INFO] [stdout]  --> src/gui/state.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct GuiState {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 8 |     pub show_ui: bool,
[INFO] [stdout] 9 |     pub paused: bool,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `WindowState` is never used
[INFO] [stdout]  --> src/gui/windows/window_state.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait WindowState {
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `city_info_window_stub` is never used
[INFO] [stdout]  --> src/gui/windows/city_info/mod.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn city_info_window_stub() {}
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `selected_civ` is never read
[INFO] [stdout]  --> src/gui/windows/city_info/state.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct CityInfoState {
[INFO] [stdout]   |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub selected_civ: Option<Civilization>,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `variant` and `type` are never read
[INFO] [stdout]   --> src/gui/windows/city_info/portraits.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct CivSpriteTile {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub variant: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 12 |     #[serde(default)]
[INFO] [stdout] 13 |     pub r#type: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CivSpriteTile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `draw` is never used
[INFO] [stdout]   --> src/gui/windows/window_manager/core.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl WindowManager {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn draw(
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `show` and `selected_worker` are never read
[INFO] [stdout]  --> src/gui/windows/worker_info/state.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct WorkerInfoState {
[INFO] [stdout]   |            --------------- fields in this struct
[INFO] [stdout] 2 |     pub show: bool,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 3 |     pub selected_worker: Option<usize>, // Placeholder for worker ID or struct
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_visible`, `show`, `hide`, and `toggle` are never used
[INFO] [stdout]   --> src/gui/windows/worker_info/state.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl WorkerInfoState {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn is_visible(&self) -> bool { self.show }
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 14 |     pub fn show(&mut self) { self.show = true; }
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 15 |     pub fn hide(&mut self) { self.show = false; }
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 16 |     pub fn toggle(&mut self) { self.show = !self.show; }
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_tile_panel_stub` is never used
[INFO] [stdout]  --> src/gui/widgets/tile_ui.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn draw_tile_panel_stub() {} 
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `color` is never read
[INFO] [stdout]   --> src/particle/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Particle {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub color: Color,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Particle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/input/event.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 |     KeyUp(KeyCode),
[INFO] [stdout]   |     ----- ^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `InputEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 6 -     KeyUp(KeyCode),
[INFO] [stdout] 6 +     KeyUp(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]  --> src/input/event.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 |     MouseMove { x: f32, y: f32 },
[INFO] [stdout]   |     ---------   ^       ^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `InputEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `delta` is never read
[INFO] [stdout]   --> src/input/event.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 |     MouseScroll { delta: f32 },
[INFO] [stdout]    |     -----------   ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InputEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/input/event.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |     TextInput(char),
[INFO] [stdout]    |     --------- ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InputEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 11 -     TextInput(char),
[INFO] [stdout] 11 +     TextInput(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `keys_down` is never read
[INFO] [stdout]   --> src/input/manager.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct KeyInput<'a> {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 57 |     events: &'a [InputEvent],
[INFO] [stdout] 58 |     keys_down: &'a HashSet<KeyCode>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `released` and `held` are never used
[INFO] [stdout]   --> src/input/manager.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl<'a> KeyInput<'a> {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn released(&self, key: KeyCode) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn held(&self, key: KeyCode) -> bool {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pos` is never read
[INFO] [stdout]   --> src/input/manager.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct MouseInputView<'a> {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pos: (f32, f32),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `pos` and `scroll_delta` are never used
[INFO] [stdout]   --> src/input/manager.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl<'a> MouseInputView<'a> {
[INFO] [stdout]    | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn pos(&self) -> (f32, f32) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn scroll_delta(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `camera_x`, `camera_y`, and `zoom` are never read
[INFO] [stdout]  --> src/game/state.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct GameState<'a> {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 5 |     pub camera_x: f32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 6 |     pub camera_y: f32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 7 |     pub zoom: f32,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LocalMapInputState` is never constructed
[INFO] [stdout]   --> src/game/input/local_map/mod.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct LocalMapInputState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `center_camera` is never used
[INFO] [stdout]   --> src/game/input/local_map/mod.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn center_camera(local_map_renderer: &mut LocalMapRenderer, x: f32, y: f32, world: &World) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `center_camera` is never used
[INFO] [stdout]    --> src/game/input/local_map/camera_controls.rs:218:8
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub fn center_camera(local_map_renderer: &mut LocalMapRenderer, x: f32, y: f32, world: &World) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorldMapInputState` is never constructed
[INFO] [stdout]   --> src/game/input/world_map/mod.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct WorldMapInputState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `MainMenu`, `WorldGen`, and `RegionMap` are never constructed
[INFO] [stdout]  --> src/game/views/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum GameView {
[INFO] [stdout]   |          -------- variants in this enum
[INFO] [stdout] 3 |     MainMenu,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 4 |     WorldGen,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8 |     RegionMap,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `GameView` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `tileSize` should have a snake case name
[INFO] [stdout]   --> src/gui/windows/city_info/portraits.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub tileSize: [u32; 2],
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `tile_size`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/input/manager.rs:38:16
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn key(&self) -> KeyInput {
[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] 38 |     pub fn key(&self) -> KeyInput<'_> {
[INFO] [stdout]    |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/input/manager.rs:45:18
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn mouse(&self) -> MouseInputView {
[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] 45 |     pub fn mouse(&self) -> MouseInputView<'_> {
[INFO] [stdout]    |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 23.96s
[INFO] running `Command { std: "docker" "inspect" "ab13a70b6a4d93665f626385f9564b4633fdf8b277ac502e29cf989e0426c3a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ab13a70b6a4d93665f626385f9564b4633fdf8b277ac502e29cf989e0426c3a9", kill_on_drop: false }`
[INFO] [stdout] ab13a70b6a4d93665f626385f9564b4633fdf8b277ac502e29cf989e0426c3a9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 882b2677a384803e2f83998574cf36ef2cd5b9c4809876e18db23999e4fbc01d
[INFO] running `Command { std: "docker" "start" "-a" "882b2677a384803e2f83998574cf36ef2cd5b9c4809876e18db23999e4fbc01d", kill_on_drop: false }`
[INFO] [stderr]    Compiling voxel_game v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `ElevationType`, `PrecipitationType`, `TemperatureType`, and `VegetationType`
[INFO] [stdout]  --> src/renderer/world_map_renderer.rs:6:46
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::world::worldmap::biome::{BiomeId, TemperatureType, VegetationType, PrecipitationType, ElevationType};
[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: `biome::BiomeId`
[INFO] [stdout]  --> src/world/worldmap/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use biome::BiomeId;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `world_map::WorldMap`
[INFO] [stdout]  --> src/world/worldmap/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use world_map::WorldMap;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NoiseFn`
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/elevation/noise_sources.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use noise::{Perlin, NoiseFn};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `constants as c`, `crater_effect`, `noise_sources::NoiseSources`, and `random_craters`
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/generator.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     constants as c,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     noise_sources::NoiseSources,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     craters::{random_craters, crater_effect},
[INFO] [stdout]    |               ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NoiseFn` and `Perlin`
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/mod.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use noise::{Perlin, NoiseFn};
[INFO] [stdout]   |             ^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Civilization`
[INFO] [stdout]  --> src/worldgen/worldmap/civ/relations/mod.rs:1:75
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::world::worldmap::{CivilizationInstance, CivilizationRelations, Civilization, Relation};
[INFO] [stdout]   |                                                                           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Civilization`
[INFO] [stdout]  --> src/worldgen/worldmap/civ/trade/mod.rs:1:93
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::world::worldmap::{CivilizationInstance, City, CivilizationRelations, TradeRoute, Civilization, Relation};
[INFO] [stdout]   |                                                                                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BiomeId`, `ElevationType`, `PrecipitationType`, `TemperatureType`, and `VegetationType`
[INFO] [stdout]  --> src/worldgen/worldmap/builder.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     BiomeId, ElevationType, PrecipitationType, TemperatureType, VegetationType,
[INFO] [stdout]   |     ^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::SeedableRng`
[INFO] [stdout]  --> src/worldgen/worldmap/builder.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rand::SeedableRng;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::worldgen::worldmap::hydrology::lakes`
[INFO] [stdout]   --> src/worldgen/worldmap/builder.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::worldgen::worldmap::hydrology::lakes;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WorldMapBuilder as WorldMapGenerator`
[INFO] [stdout]    --> src/worldgen/worldmap/builder.rs:269:9
[INFO] [stdout]     |
[INFO] [stdout] 269 | pub use WorldMapBuilder as WorldMapGenerator;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::prelude::*`
[INFO] [stdout]  --> src/gui/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use macroquad::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `hash` and `root_ui`
[INFO] [stdout]  --> src/gui/mod.rs:2:21
[INFO] [stdout]   |
[INFO] [stdout] 2 | use macroquad::ui::{hash, root_ui};
[INFO] [stdout]   |                     ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::world::localmap::world::World`
[INFO] [stdout]  --> src/gui/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::world::localmap::world::World;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::world::localmap::terrain_material::TerrainMaterial`
[INFO] [stdout]  --> src/gui/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::world::localmap::terrain_material::TerrainMaterial;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::worldgen::worldmap::params::WorldGenParams`
[INFO] [stdout]  --> src/gui/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::worldgen::worldmap::params::WorldGenParams;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::game::input::RenderMode`
[INFO] [stdout]  --> src/gui/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::game::input::RenderMode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::world::worldmap::world_map::WorldMap`
[INFO] [stdout]  --> src/gui/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::world::worldmap::world_map::WorldMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::renderer::camera::Camera`
[INFO] [stdout]  --> src/gui/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::renderer::camera::Camera;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::renderer::world_map_renderer::MapView`
[INFO] [stdout]  --> src/gui/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::renderer::world_map_renderer::MapView;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::world::worldmap::city::City`
[INFO] [stdout]   --> src/gui/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::world::worldmap::city::City;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::world::worldmap::civilization::Civilization`
[INFO] [stdout]   --> src/gui/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::world::worldmap::civilization::Civilization;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stdout]  --> src/gui/state.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::input::event::InputEvent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::gui::GuiState`
[INFO] [stdout]  --> src/gui/windows/main_menu/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::gui::GuiState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::world::worldmap::civilization::Civilization`
[INFO] [stdout]  --> src/gui/windows/city_info/core.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::world::worldmap::civilization::Civilization;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::world::worldmap::biome::BiomeId`
[INFO] [stdout]  --> src/gui/windows/city_info/core.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::world::worldmap::biome::BiomeId;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `portraits::*`
[INFO] [stdout]   --> src/gui/windows/city_info/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use portraits::*; 
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::gui::GuiState`
[INFO] [stdout]  --> src/gui/windows/window_manager/core.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::gui::GuiState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `main_menu::MainMenuState`
[INFO] [stdout]  --> src/gui/windows/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use main_menu::MainMenuState;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `city_info::*`
[INFO] [stdout]  --> src/gui/windows/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use city_info::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `window_manager::*`
[INFO] [stdout]   --> src/gui/windows/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use window_manager::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `window_state::*`
[INFO] [stdout]   --> src/gui/windows/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use window_state::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `worker_info::*`
[INFO] [stdout]   --> src/gui/windows/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use worker_info::*; 
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `windows::*`
[INFO] [stdout]   --> src/gui/mod.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use windows::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tile_ui::*`
[INFO] [stdout]  --> src/gui/widgets/mod.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use tile_ui::*; 
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `widgets::*`
[INFO] [stdout]   --> src/gui/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use widgets::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stdout]   --> src/game/input/handler.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::input::event::InputEvent;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `local_map as view_local_map` and `world_map as view_world_map`
[INFO] [stdout]   --> src/game/input/handler.rs:13:26
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::game::views::{world_map as view_world_map, local_map as view_local_map};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stdout]  --> src/game/input/local_map/camera_controls.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::input::event::InputEvent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stdout]  --> src/game/input/local_map/mouse_controls.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::input::event::InputEvent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stdout]  --> src/game/input/local_map/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::input::event::InputEvent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stdout]  --> src/game/input/world_map/camera_controls.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::input::event::InputEvent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stdout]  --> src/game/input/world_map/mouse_controls.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::input::event::InputEvent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stdout]  --> src/game/input/world_map/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::input::event::InputEvent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `world_map as view_world_map`
[INFO] [stdout]   --> src/game/input/world_map/mod.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::game::views::{GameView, world_map as view_world_map};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `state::GameState`
[INFO] [stdout]  --> src/game/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use state::GameState;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `views::GameView`
[INFO] [stdout]   --> src/game/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use views::GameView; 
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/mountains/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/world/worldmap/biome.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 129 |             _ => DEFAULT_COLOR,
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/world/worldmap/biome.rs:129:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |             BiomeId::Plains => PLAINS_COLOR,
[INFO] [stdout]     |             --------------- matches some of the same values
[INFO] [stdout] 111 |             BiomeId::Mountain => MOUNTAIN_COLOR,
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] 112 |             BiomeId::Ocean => OCEAN_COLOR,
[INFO] [stdout]     |             -------------- matches some of the same values
[INFO] [stdout] 113 |             BiomeId::Sea => SEA_COLOR,
[INFO] [stdout]     |             ------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 129 |             _ => DEFAULT_COLOR,
[INFO] [stdout]     |             ^ ...and 15 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/mountains/mod.rs:79:17
[INFO] [stdout]    |
[INFO] [stdout] 79 |             let t = i as f64 / path.len().max(1) as f64;
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bt`
[INFO] [stdout]    --> src/worldgen/worldmap/terrain/mountains/mod.rs:104:25
[INFO] [stdout]     |
[INFO] [stdout] 104 |                     let bt = j as f64 / branch_path.len().max(1) as f64;
[INFO] [stdout]     |                         ^^ help: if this is intentional, prefix it with an underscore: `_bt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/worldgen/worldmap/biome/classifiers.rs:87:13
[INFO] [stdout]    |
[INFO] [stdout] 87 |         (t, p, _, _) if t < 0.3               => BiomeId::Taiga,
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/worldgen/worldmap/civ/roads/mod.rs:49:25
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn reconstruct_path(mut came_from: HashMap<(usize, usize), (usize, usize)>, mut current: (usize, usize)) -> Vec<(usize, usize)> {
[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: `civ_b`
[INFO] [stdout]   --> src/worldgen/worldmap/civ/trade/mod.rs:36:28
[INFO] [stdout]    |
[INFO] [stdout] 36 |             .filter(|&(j, &civ_b)| i != j)
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_civ_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/worldgen/worldmap/civ/trade/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let width = elevation.len();
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/worldgen/worldmap/civ/trade/mod.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let height = elevation[0].len();
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `best_from` is assigned to, but never used
[INFO] [stdout]    --> src/worldgen/worldmap/civ/trade/mod.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |             let mut best_from = 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_best_from` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `best_to` is assigned to, but never used
[INFO] [stdout]    --> src/worldgen/worldmap/civ/trade/mod.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |             let mut best_to = 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_best_to` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_from` is never read
[INFO] [stdout]    --> src/worldgen/worldmap/civ/trade/mod.rs:122:25
[INFO] [stdout]     |
[INFO] [stdout] 122 |                         best_from = i;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best_to` is never read
[INFO] [stdout]    --> src/worldgen/worldmap/civ/trade/mod.rs:123:25
[INFO] [stdout]     |
[INFO] [stdout] 123 |                         best_to = j;
[INFO] [stdout]     |                         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/worldgen/worldmap/builder.rs:64:29
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let (mut elevation, mut moisture) = elevation::generate(
[INFO] [stdout]    |                             ----^^^^^^^^
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `craters`
[INFO] [stdout]   --> src/worldgen/worldmap/builder.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let craters = random_craters(self.seed, self.width, self.height, p.num_craters);
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_craters`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `noise`
[INFO] [stdout]   --> src/worldgen/worldmap/builder.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let noise = NoiseSources::new(self.seed);
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_noise`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]   --> src/gui/state.rs:22:30
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn update(&mut self, world: &World, render_mode: RenderMode, input: &InputManager) {
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `render_mode`
[INFO] [stdout]   --> src/gui/state.rs:22:45
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn update(&mut self, world: &World, render_mode: RenderMode, input: &InputManager) {
[INFO] [stdout]    |                                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_render_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]  --> src/gui/windows/worker_info/core.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn draw_worker_info_window(state: &mut WorkerInfoState) {
[INFO] [stdout]   |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `events`
[INFO] [stdout]   --> src/game/input/local_map/mod.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let events = &input.events;
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_events`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original_x`
[INFO] [stdout]   --> src/game/input/world_map/camera_controls.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let original_x = camera.x;
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original_y`
[INFO] [stdout]   --> src/game/input/world_map/camera_controls.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let original_y = camera.y;
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `delta_zoom` are never used
[INFO] [stdout]   --> src/renderer/camera.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Camera {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new(x: f32, y: f32, zoom: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn delta_zoom(&mut self, zoom: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `delta_zoom` is never used
[INFO] [stdout]   --> src/renderer/local_map_renderer.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl LocalMapRenderer {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn delta_zoom(&mut self, zoom: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Temperature`, `Vegetation`, `Precipitation`, `Elevation`, `Civilization`, and `BiomeWithCivOverlay` are never constructed
[INFO] [stdout]   --> src/renderer/world_map_renderer.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum MapView {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] 12 |     Biome,
[INFO] [stdout] 13 |     Temperature,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 14 |     Vegetation,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 15 |     Precipitation,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 16 |     Elevation,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 17 |     Civilization,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 18 |     BiomeWithCivOverlay,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MapView` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `origin`, `tile_width`, `tile_height`, and `core` are never read
[INFO] [stdout]   --> src/renderer/world_map_renderer.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct SpriteInfo {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub origin: Option<[u32; 2]>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 29 |     pub tile_width: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 30 |     pub tile_height: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 31 |     pub core: Option<[u32; 4]>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpriteInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `draw_world_map` is never used
[INFO] [stdout]   --> src/renderer/world_map_renderer.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl WorldMapRenderer {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn draw_world_map(&self, world_map: &WorldMap, camera: &Camera) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `z` is never read
[INFO] [stdout]  --> src/world/localmap/zlevel.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ZLevel {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] 5 |     pub z: i32,
[INFO] [stdout]   |         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Water` is never constructed
[INFO] [stdout]  --> src/world/localmap/terrain_material.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum TerrainMaterial {
[INFO] [stdout]   |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 6 |     Water,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TerrainMaterial` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_block_counts` is never used
[INFO] [stdout]    --> src/world/localmap/world.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl World {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn get_block_counts(&self) -> &HashMap<TerrainMaterial, usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `color` is never used
[INFO] [stdout]   --> src/world/worldmap/biome.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | impl ElevationType {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 95 |     pub fn color(&self) -> Color {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/world/worldmap/world_map.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct WorldMap {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub moisture: Vec<Vec<f64>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 12 |     pub rivers: Vec<Vec<bool>>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 13 |     pub temperature: Vec<Vec<f64>>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 14 |     pub precipitation: Vec<Vec<f64>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 15 |     pub soil_fertility: Vec<Vec<f64>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     pub vegetation: Vec<Vec<f64>>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 17 |     pub wind_direction: Vec<Vec<(f64, f64)>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     pub resources: Vec<Vec<Option<ResourceType>>>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub elevation_map: Vec<Vec<crate::world::worldmap::biome::ElevationType>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WorldMap` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Iron`, `Gold`, `Coal`, `Gems`, and `Oil` are never constructed
[INFO] [stdout]   --> src/world/worldmap/world_map.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub enum ResourceType {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 39 |     Iron,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 40 |     Gold,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 41 |     Coal,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 42 |     Gems,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 43 |     Oil,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResourceType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `from`, `to`, `civ_a`, and `civ_b` are never read
[INFO] [stdout]   --> src/world/worldmap/civilization.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct TradeRoute {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 72 |     pub from: (usize, usize), // city coordinates
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 73 |     pub to: (usize, usize),
[INFO] [stdout]    |         ^^
[INFO] [stdout] 74 |     pub civ_a: Civilization,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 75 |     pub civ_b: Civilization,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TradeRoute` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NUM_CRATERS` is never used
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const NUM_CRATERS: usize = 5;
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONTINENT_SCALE_FACTOR` is never used
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const CONTINENT_SCALE_FACTOR:   f64 = 1.5;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DETAIL_JAGGED_FREQ` is never used
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const DETAIL_JAGGED_FREQ:       f64 = 2.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DETAIL_FALLOFF_FREQ` is never used
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const DETAIL_FALLOFF_FREQ:      f64 = 3.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RIDGE_FREQ` is never used
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const RIDGE_FREQ:               f64 = 2.0;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PLATEAU_FREQ` is never used
[INFO] [stdout]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const PLATEAU_FREQ:             f64 = 0.7;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CRATER_DEPTH` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const CRATER_DEPTH:             f64 = 0.25;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAKE_FREQ` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const LAKE_FREQ:                f64 = 0.8;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAKE_LOWERING` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const LAKE_LOWERING:            f64 = 0.18;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAKE_FLATTEN_BLEND` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const LAKE_FLATTEN_BLEND:       f64 = 0.25;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BASELINE_SHIFT` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const BASELINE_SHIFT:           f64 = -0.15;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WEIGHT_CONTINENTAL_MASK` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const WEIGHT_CONTINENTAL_MASK:  f64 = 0.32;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WEIGHT_DETAIL` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const WEIGHT_DETAIL:            f64 = 0.22;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WEIGHT_RIDGE` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const WEIGHT_RIDGE:             f64 = 1.25;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WEIGHT_FALLOFF` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const WEIGHT_FALLOFF:           f64 = 0.4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WEIGHT_PLATEAU` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const WEIGHT_PLATEAU:           f64 = 1.0;  // already toned inside fn
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x`, `y`, `rx`, `ry`, and `angle` are never read
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/craters.rs:6:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Crater {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout]  6 |     pub x: f64,
[INFO] [stdout]    |         ^
[INFO] [stdout]  7 |     pub y: f64,
[INFO] [stdout]    |         ^
[INFO] [stdout]  8 |     pub rx: f64,
[INFO] [stdout]    |         ^^
[INFO] [stdout]  9 |     pub ry: f64,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 10 |     pub angle: f64,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Crater` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `crater_effect` is never used
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/craters.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn crater_effect(cx: usize, cy: usize, craters: &[Crater]) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/worldgen/worldmap/terrain/elevation/noise_sources.rs:5:9
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct NoiseSources {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout]  5 |     pub continent: Perlin,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]  6 |     pub detail:    Perlin,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]  7 |     pub moist:     Perlin,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]  8 |     pub ridge:     Perlin,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]  9 |     pub plateau:   Perlin,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 10 |     pub crater:    Perlin,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 11 |     pub lake:      Perlin,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_lakes` is never used
[INFO] [stdout]  --> src/worldgen/worldmap/hydrology/lakes.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn apply_lakes(
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `moisture` is never read
[INFO] [stdout]  --> src/worldgen/worldmap/biome/models.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct TileEnv {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 5 |     pub moisture: f64,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TileEnv` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cost` is never read
[INFO] [stdout]  --> src/worldgen/worldmap/civ/roads/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Node {
[INFO] [stdout]   |            ---- field in this struct
[INFO] [stdout] 7 |     pub pos: (usize, usize),
[INFO] [stdout] 8 |     pub cost: f64,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Node` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_scale` and `with_height_noise` are never used
[INFO] [stdout]   --> src/worldgen/localmap/builder.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl WorldGeneratorBuilder {
[INFO] [stdout]    | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn with_scale(mut self, scale: f64) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn with_height_noise(self, _noise: OpenSimplex) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/worldgen/localmap/generator.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl WorldGenerator {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 15 |     pub fn new(seed: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `biome` is never read
[INFO] [stdout]   --> src/worldgen/localmap/pipeline.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct GenCtx<'a> {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub biome: [[BiomeId; CHUNK_SIZE]; CHUNK_SIZE],
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `paused` is never read
[INFO] [stdout]  --> src/gui/state.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct GuiState {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 8 |     pub show_ui: bool,
[INFO] [stdout] 9 |     pub paused: bool,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `WindowState` is never used
[INFO] [stdout]  --> src/gui/windows/window_state.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait WindowState {
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `city_info_window_stub` is never used
[INFO] [stdout]  --> src/gui/windows/city_info/mod.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn city_info_window_stub() {}
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `selected_civ` is never read
[INFO] [stdout]  --> src/gui/windows/city_info/state.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct CityInfoState {
[INFO] [stdout]   |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub selected_civ: Option<Civilization>,
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `variant` and `type` are never read
[INFO] [stdout]   --> src/gui/windows/city_info/portraits.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct CivSpriteTile {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub variant: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 12 |     #[serde(default)]
[INFO] [stdout] 13 |     pub r#type: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CivSpriteTile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `draw` is never used
[INFO] [stdout]   --> src/gui/windows/window_manager/core.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl WindowManager {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn draw(
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `show` and `selected_worker` are never read
[INFO] [stdout]  --> src/gui/windows/worker_info/state.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct WorkerInfoState {
[INFO] [stdout]   |            --------------- fields in this struct
[INFO] [stdout] 2 |     pub show: bool,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 3 |     pub selected_worker: Option<usize>, // Placeholder for worker ID or struct
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_visible`, `show`, `hide`, and `toggle` are never used
[INFO] [stdout]   --> src/gui/windows/worker_info/state.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl WorkerInfoState {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn is_visible(&self) -> bool { self.show }
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 14 |     pub fn show(&mut self) { self.show = true; }
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 15 |     pub fn hide(&mut self) { self.show = false; }
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 16 |     pub fn toggle(&mut self) { self.show = !self.show; }
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_tile_panel_stub` is never used
[INFO] [stdout]  --> src/gui/widgets/tile_ui.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn draw_tile_panel_stub() {} 
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `color` is never read
[INFO] [stdout]   --> src/particle/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub struct Particle {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub color: Color,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Particle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/input/event.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 |     KeyUp(KeyCode),
[INFO] [stdout]   |     ----- ^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `InputEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 6 -     KeyUp(KeyCode),
[INFO] [stdout] 6 +     KeyUp(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]  --> src/input/event.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 |     MouseMove { x: f32, y: f32 },
[INFO] [stdout]   |     ---------   ^       ^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `InputEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `delta` is never read
[INFO] [stdout]   --> src/input/event.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 |     MouseScroll { delta: f32 },
[INFO] [stdout]    |     -----------   ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InputEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/input/event.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |     TextInput(char),
[INFO] [stdout]    |     --------- ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InputEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 11 -     TextInput(char),
[INFO] [stdout] 11 +     TextInput(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `keys_down` is never read
[INFO] [stdout]   --> src/input/manager.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct KeyInput<'a> {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 57 |     events: &'a [InputEvent],
[INFO] [stdout] 58 |     keys_down: &'a HashSet<KeyCode>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `released` and `held` are never used
[INFO] [stdout]   --> src/input/manager.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl<'a> KeyInput<'a> {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn released(&self, key: KeyCode) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn held(&self, key: KeyCode) -> bool {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pos` is never read
[INFO] [stdout]   --> src/input/manager.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct MouseInputView<'a> {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pos: (f32, f32),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `pos` and `scroll_delta` are never used
[INFO] [stdout]   --> src/input/manager.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl<'a> MouseInputView<'a> {
[INFO] [stdout]    | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn pos(&self) -> (f32, f32) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn scroll_delta(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `camera_x`, `camera_y`, and `zoom` are never read
[INFO] [stdout]  --> src/game/state.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct GameState<'a> {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 5 |     pub camera_x: f32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 6 |     pub camera_y: f32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 7 |     pub zoom: f32,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LocalMapInputState` is never constructed
[INFO] [stdout]   --> src/game/input/local_map/mod.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct LocalMapInputState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `center_camera` is never used
[INFO] [stdout]   --> src/game/input/local_map/mod.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn center_camera(local_map_renderer: &mut LocalMapRenderer, x: f32, y: f32, world: &World) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `center_camera` is never used
[INFO] [stdout]    --> src/game/input/local_map/camera_controls.rs:218:8
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub fn center_camera(local_map_renderer: &mut LocalMapRenderer, x: f32, y: f32, world: &World) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorldMapInputState` is never constructed
[INFO] [stdout]   --> src/game/input/world_map/mod.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct WorldMapInputState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `MainMenu`, `WorldGen`, and `RegionMap` are never constructed
[INFO] [stdout]  --> src/game/views/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum GameView {
[INFO] [stdout]   |          -------- variants in this enum
[INFO] [stdout] 3 |     MainMenu,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 4 |     WorldGen,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8 |     RegionMap,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `GameView` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `tileSize` should have a snake case name
[INFO] [stdout]   --> src/gui/windows/city_info/portraits.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub tileSize: [u32; 2],
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `tile_size`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/input/manager.rs:38:16
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn key(&self) -> KeyInput {
[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] 38 |     pub fn key(&self) -> KeyInput<'_> {
[INFO] [stdout]    |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/input/manager.rs:45:18
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn mouse(&self) -> MouseInputView {
[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] 45 |     pub fn mouse(&self) -> MouseInputView<'_> {
[INFO] [stdout]    |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.24s
[INFO] running `Command { std: "docker" "inspect" "882b2677a384803e2f83998574cf36ef2cd5b9c4809876e18db23999e4fbc01d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "882b2677a384803e2f83998574cf36ef2cd5b9c4809876e18db23999e4fbc01d", kill_on_drop: false }`
[INFO] [stdout] 882b2677a384803e2f83998574cf36ef2cd5b9c4809876e18db23999e4fbc01d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] c95be3af510577aba23d0921c8f1d93ffb90e820a80f18c502f292e33acc5578
[INFO] running `Command { std: "docker" "start" "-a" "c95be3af510577aba23d0921c8f1d93ffb90e820a80f18c502f292e33acc5578", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `ElevationType`, `PrecipitationType`, `TemperatureType`, and `VegetationType`
[INFO] [stderr]  --> src/renderer/world_map_renderer.rs:6:46
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::world::worldmap::biome::{BiomeId, TemperatureType, VegetationType, PrecipitationType, ElevationType};
[INFO] [stderr]   |                                              ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `biome::BiomeId`
[INFO] [stderr]  --> src/world/worldmap/mod.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub use biome::BiomeId;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `world_map::WorldMap`
[INFO] [stderr]  --> src/world/worldmap/mod.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub use world_map::WorldMap;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `NoiseFn`
[INFO] [stderr]  --> src/worldgen/worldmap/terrain/elevation/noise_sources.rs:1:21
[INFO] [stderr]   |
[INFO] [stderr] 1 | use noise::{Perlin, NoiseFn};
[INFO] [stderr]   |                     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `constants as c`, `crater_effect`, `noise_sources::NoiseSources`, and `random_craters`
[INFO] [stderr]   --> src/worldgen/worldmap/terrain/elevation/generator.rs:9:5
[INFO] [stderr]    |
[INFO] [stderr]  9 |     constants as c,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 10 |     noise_sources::NoiseSources,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 11 |     craters::{random_craters, crater_effect},
[INFO] [stderr]    |               ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `NoiseFn` and `Perlin`
[INFO] [stderr]  --> src/worldgen/worldmap/terrain/mod.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 | use noise::{Perlin, NoiseFn};
[INFO] [stderr]   |             ^^^^^^  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Civilization`
[INFO] [stderr]  --> src/worldgen/worldmap/civ/relations/mod.rs:1:75
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::world::worldmap::{CivilizationInstance, CivilizationRelations, Civilization, Relation};
[INFO] [stderr]   |                                                                           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Civilization`
[INFO] [stderr]  --> src/worldgen/worldmap/civ/trade/mod.rs:1:93
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::world::worldmap::{CivilizationInstance, City, CivilizationRelations, TradeRoute, Civilization, Relation};
[INFO] [stderr]   |                                                                                             ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BiomeId`, `ElevationType`, `PrecipitationType`, `TemperatureType`, and `VegetationType`
[INFO] [stderr]  --> src/worldgen/worldmap/builder.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 |     BiomeId, ElevationType, PrecipitationType, TemperatureType, VegetationType,
[INFO] [stderr]   |     ^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rand::SeedableRng`
[INFO] [stderr]  --> src/worldgen/worldmap/builder.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use rand::SeedableRng;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::worldgen::worldmap::hydrology::lakes`
[INFO] [stderr]   --> src/worldgen/worldmap/builder.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | use crate::worldgen::worldmap::hydrology::lakes;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `WorldMapBuilder as WorldMapGenerator`
[INFO] [stderr]    --> src/worldgen/worldmap/builder.rs:269:9
[INFO] [stderr]     |
[INFO] [stderr] 269 | pub use WorldMapBuilder as WorldMapGenerator;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `macroquad::prelude::*`
[INFO] [stderr]  --> src/gui/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use macroquad::prelude::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `hash` and `root_ui`
[INFO] [stderr]  --> src/gui/mod.rs:2:21
[INFO] [stderr]   |
[INFO] [stderr] 2 | use macroquad::ui::{hash, root_ui};
[INFO] [stderr]   |                     ^^^^  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::world::localmap::world::World`
[INFO] [stderr]  --> src/gui/mod.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::world::localmap::world::World;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::world::localmap::terrain_material::TerrainMaterial`
[INFO] [stderr]  --> src/gui/mod.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::world::localmap::terrain_material::TerrainMaterial;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::worldgen::worldmap::params::WorldGenParams`
[INFO] [stderr]  --> src/gui/mod.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::worldgen::worldmap::params::WorldGenParams;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::game::input::RenderMode`
[INFO] [stderr]  --> src/gui/mod.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::game::input::RenderMode;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::world::worldmap::world_map::WorldMap`
[INFO] [stderr]  --> src/gui/mod.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::world::worldmap::world_map::WorldMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::renderer::camera::Camera`
[INFO] [stderr]  --> src/gui/mod.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use crate::renderer::camera::Camera;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::renderer::world_map_renderer::MapView`
[INFO] [stderr]  --> src/gui/mod.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::renderer::world_map_renderer::MapView;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::world::worldmap::city::City`
[INFO] [stderr]   --> src/gui/mod.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::world::worldmap::city::City;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::world::worldmap::civilization::Civilization`
[INFO] [stderr]   --> src/gui/mod.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use crate::world::worldmap::civilization::Civilization;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stderr]  --> src/gui/state.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::input::event::InputEvent;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::gui::GuiState`
[INFO] [stderr]  --> src/gui/windows/main_menu/mod.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::gui::GuiState;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::world::worldmap::civilization::Civilization`
[INFO] [stderr]  --> src/gui/windows/city_info/core.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::world::worldmap::civilization::Civilization;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::world::worldmap::biome::BiomeId`
[INFO] [stderr]  --> src/gui/windows/city_info/core.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::world::worldmap::biome::BiomeId;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `portraits::*`
[INFO] [stderr]   --> src/gui/windows/city_info/mod.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use portraits::*; 
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::gui::GuiState`
[INFO] [stderr]  --> src/gui/windows/window_manager/core.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::gui::GuiState;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `main_menu::MainMenuState`
[INFO] [stderr]  --> src/gui/windows/mod.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub use main_menu::MainMenuState;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `city_info::*`
[INFO] [stderr]  --> src/gui/windows/mod.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub use city_info::*;
[INFO] [stderr]   |         ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `window_manager::*`
[INFO] [stderr]   --> src/gui/windows/mod.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub use window_manager::*;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `window_state::*`
[INFO] [stderr]   --> src/gui/windows/mod.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use window_state::*;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `worker_info::*`
[INFO] [stderr]   --> src/gui/windows/mod.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub use worker_info::*; 
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `windows::*`
[INFO] [stderr]   --> src/gui/mod.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub use windows::*;
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tile_ui::*`
[INFO] [stderr]  --> src/gui/widgets/mod.rs:2:9
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub use tile_ui::*; 
[INFO] [stderr]   |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `widgets::*`
[INFO] [stderr]   --> src/gui/mod.rs:20:9
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub use widgets::*;
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stderr]   --> src/game/input/handler.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::input::event::InputEvent;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `local_map as view_local_map` and `world_map as view_world_map`
[INFO] [stderr]   --> src/game/input/handler.rs:13:26
[INFO] [stderr]    |
[INFO] [stderr] 13 | use crate::game::views::{world_map as view_world_map, local_map as view_local_map};
[INFO] [stderr]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stderr]  --> src/game/input/local_map/camera_controls.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::input::event::InputEvent;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stderr]  --> src/game/input/local_map/mouse_controls.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::input::event::InputEvent;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stderr]  --> src/game/input/local_map/mod.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use crate::input::event::InputEvent;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stderr]  --> src/game/input/world_map/camera_controls.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::input::event::InputEvent;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stderr]  --> src/game/input/world_map/mouse_controls.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::input::event::InputEvent;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::input::event::InputEvent`
[INFO] [stderr]  --> src/game/input/world_map/mod.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::input::event::InputEvent;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `world_map as view_world_map`
[INFO] [stderr]   --> src/game/input/world_map/mod.rs:10:36
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::game::views::{GameView, world_map as view_world_map};
[INFO] [stderr]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `state::GameState`
[INFO] [stderr]  --> src/game/mod.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub use state::GameState;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `views::GameView`
[INFO] [stderr]   --> src/game/mod.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub use views::GameView; 
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rand::Rng`
[INFO] [stderr]  --> src/worldgen/worldmap/terrain/mountains/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use rand::Rng;
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/world/worldmap/biome.rs:129:13
[INFO] [stderr]     |
[INFO] [stderr] 129 |             _ => DEFAULT_COLOR,
[INFO] [stderr]     |             ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> src/world/worldmap/biome.rs:129:13
[INFO] [stderr]     |
[INFO] [stderr] 110 |             BiomeId::Plains => PLAINS_COLOR,
[INFO] [stderr]     |             --------------- matches some of the same values
[INFO] [stderr] 111 |             BiomeId::Mountain => MOUNTAIN_COLOR,
[INFO] [stderr]     |             ----------------- matches some of the same values
[INFO] [stderr] 112 |             BiomeId::Ocean => OCEAN_COLOR,
[INFO] [stderr]     |             -------------- matches some of the same values
[INFO] [stderr] 113 |             BiomeId::Sea => SEA_COLOR,
[INFO] [stderr]     |             ------------ matches some of the same values
[INFO] [stderr] ...
[INFO] [stdout] 
[INFO] [stderr] 129 |             _ => DEFAULT_COLOR,
[INFO] [stdout] running 0 tests
[INFO] [stderr]     |             ^ ...and 15 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]   --> src/worldgen/worldmap/terrain/mountains/mod.rs:79:17
[INFO] [stderr]    |
[INFO] [stderr] 79 |             let t = i as f64 / path.len().max(1) as f64;
[INFO] [stderr]    |                 ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bt`
[INFO] [stderr]    --> src/worldgen/worldmap/terrain/mountains/mod.rs:104:25
[INFO] [stderr]     |
[INFO] [stderr] 104 |                     let bt = j as f64 / branch_path.len().max(1) as f64;
[INFO] [stderr]     |                         ^^ help: if this is intentional, prefix it with an underscore: `_bt`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `p`
[INFO] [stderr]   --> src/worldgen/worldmap/biome/classifiers.rs:87:13
[INFO] [stderr]    |
[INFO] [stderr] 87 |         (t, p, _, _) if t < 0.3               => BiomeId::Taiga,
[INFO] [stderr]    |             ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/worldgen/worldmap/civ/roads/mod.rs:49:25
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub fn reconstruct_path(mut came_from: HashMap<(usize, usize), (usize, usize)>, mut current: (usize, usize)) -> Vec<(usize, usize)> {
[INFO] [stderr]    |                         ----^^^^^^^^^
[INFO] [stderr]    |                         |
[INFO] [stderr]    |                         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `civ_b`
[INFO] [stderr]   --> src/worldgen/worldmap/civ/trade/mod.rs:36:28
[INFO] [stderr]    |
[INFO] [stderr] 36 |             .filter(|&(j, &civ_b)| i != j)
[INFO] [stderr]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_civ_b`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `width`
[INFO] [stderr]   --> src/worldgen/worldmap/civ/trade/mod.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 15 |     let width = elevation.len();
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `height`
[INFO] [stderr]   --> src/worldgen/worldmap/civ/trade/mod.rs:16:9
[INFO] [stderr]    |
[INFO] [stderr] 16 |     let height = elevation[0].len();
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `best_from` is assigned to, but never used
[INFO] [stderr]    --> src/worldgen/worldmap/civ/trade/mod.rs:110:17
[INFO] [stderr]     |
[INFO] [stderr] 110 |             let mut best_from = 0;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_best_from` instead
[INFO] [stderr] 
[INFO] [stderr] warning: variable `best_to` is assigned to, but never used
[INFO] [stderr]    --> src/worldgen/worldmap/civ/trade/mod.rs:111:17
[INFO] [stderr]     |
[INFO] [stderr] 111 |             let mut best_to = 0;
[INFO] [stderr]     |                 ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_best_to` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `best_from` is never read
[INFO] [stderr]    --> src/worldgen/worldmap/civ/trade/mod.rs:122:25
[INFO] [stderr]     |
[INFO] [stderr] 122 |                         best_from = i;
[INFO] [stderr]     |                         ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `best_to` is never read
[INFO] [stderr]    --> src/worldgen/worldmap/civ/trade/mod.rs:123:25
[INFO] [stderr]     |
[INFO] [stderr] 123 |                         best_to = j;
[INFO] [stderr]     |                         ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/worldgen/worldmap/builder.rs:64:29
[INFO] [stderr]    |
[INFO] [stderr] 64 |         let (mut elevation, mut moisture) = elevation::generate(
[INFO] [stderr]    |                             ----^^^^^^^^
[INFO] [stderr]    |                             |
[INFO] [stderr]    |                             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `craters`
[INFO] [stderr]   --> src/worldgen/worldmap/builder.rs:85:13
[INFO] [stderr]    |
[INFO] [stderr] 85 |         let craters = random_craters(self.seed, self.width, self.height, p.num_craters);
[INFO] [stderr]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_craters`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `noise`
[INFO] [stderr]   --> src/worldgen/worldmap/builder.rs:86:13
[INFO] [stderr]    |
[INFO] [stderr] 86 |         let noise = NoiseSources::new(self.seed);
[INFO] [stderr]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_noise`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `world`
[INFO] [stderr]   --> src/gui/state.rs:22:30
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub fn update(&mut self, world: &World, render_mode: RenderMode, input: &InputManager) {
[INFO] [stderr]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `render_mode`
[INFO] [stderr]   --> src/gui/state.rs:22:45
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub fn update(&mut self, world: &World, render_mode: RenderMode, input: &InputManager) {
[INFO] [stderr]    |                                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_render_mode`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]  --> src/gui/windows/worker_info/core.rs:5:32
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub fn draw_worker_info_window(state: &mut WorkerInfoState) {
[INFO] [stderr]   |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `events`
[INFO] [stderr]   --> src/game/input/local_map/mod.rs:64:9
[INFO] [stderr]    |
[INFO] [stderr] 64 |     let events = &input.events;
[INFO] [stderr]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_events`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `original_x`
[INFO] [stderr]   --> src/game/input/world_map/camera_controls.rs:20:9
[INFO] [stderr]    |
[INFO] [stderr] 20 |     let original_x = camera.x;
[INFO] [stderr]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `original_y`
[INFO] [stderr]   --> src/game/input/world_map/camera_controls.rs:21:9
[INFO] [stderr]    |
[INFO] [stderr] 21 |     let original_y = camera.y;
[INFO] [stderr]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_y`
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `delta_zoom` are never used
[INFO] [stderr]   --> src/renderer/camera.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | impl Camera {
[INFO] [stderr]    | ----------- associated items in this implementation
[INFO] [stderr] 11 |     pub fn new(x: f32, y: f32, zoom: f32) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pub fn delta_zoom(&mut self, zoom: f32) {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `delta_zoom` is never used
[INFO] [stderr]   --> src/renderer/local_map_renderer.rs:32:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | impl LocalMapRenderer {
[INFO] [stderr]    | --------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 32 |     pub fn delta_zoom(&mut self, zoom: f32) {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Temperature`, `Vegetation`, `Precipitation`, `Elevation`, `Civilization`, and `BiomeWithCivOverlay` are never constructed
[INFO] [stderr]   --> src/renderer/world_map_renderer.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub enum MapView {
[INFO] [stderr]    |          ------- variants in this enum
[INFO] [stderr] 12 |     Biome,
[INFO] [stderr] 13 |     Temperature,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 14 |     Vegetation,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 15 |     Precipitation,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 16 |     Elevation,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 17 |     Civilization,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 18 |     BiomeWithCivOverlay,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `MapView` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `origin`, `tile_width`, `tile_height`, and `core` are never read
[INFO] [stderr]   --> src/renderer/world_map_renderer.rs:28:9
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub struct SpriteInfo {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub origin: Option<[u32; 2]>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 29 |     pub tile_width: Option<u32>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 30 |     pub tile_height: Option<u32>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 31 |     pub core: Option<[u32; 4]>,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SpriteInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `draw_world_map` is never used
[INFO] [stderr]   --> src/renderer/world_map_renderer.rs:83:12
[INFO] [stderr]    |
[INFO] [stderr] 66 | impl WorldMapRenderer {
[INFO] [stderr]    | --------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 83 |     pub fn draw_world_map(&self, world_map: &WorldMap, camera: &Camera) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `z` is never read
[INFO] [stderr]  --> src/world/localmap/zlevel.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct ZLevel {
[INFO] [stderr]   |            ------ field in this struct
[INFO] [stderr] 5 |     pub z: i32,
[INFO] [stderr]   |         ^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Water` is never constructed
[INFO] [stderr]  --> src/world/localmap/terrain_material.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub enum TerrainMaterial {
[INFO] [stderr]   |          --------------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 6 |     Water,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `TerrainMaterial` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_block_counts` is never used
[INFO] [stderr]    --> src/world/localmap/world.rs:103:12
[INFO] [stderr]     |
[INFO] [stderr]  11 | impl World {
[INFO] [stderr]     | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 103 |     pub fn get_block_counts(&self) -> &HashMap<TerrainMaterial, usize> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `color` is never used
[INFO] [stderr]   --> src/world/worldmap/biome.rs:95:12
[INFO] [stderr]    |
[INFO] [stderr] 94 | impl ElevationType {
[INFO] [stderr]    | ------------------ method in this implementation
[INFO] [stderr] 95 |     pub fn color(&self) -> Color {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/world/worldmap/world_map.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr]  6 | pub struct WorldMap {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 11 |     pub moisture: Vec<Vec<f64>>,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 12 |     pub rivers: Vec<Vec<bool>>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 13 |     pub temperature: Vec<Vec<f64>>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 14 |     pub precipitation: Vec<Vec<f64>>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 15 |     pub soil_fertility: Vec<Vec<f64>>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr] 16 |     pub vegetation: Vec<Vec<f64>>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 17 |     pub wind_direction: Vec<Vec<(f64, f64)>>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr] 18 |     pub resources: Vec<Vec<Option<ResourceType>>>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 23 |     pub elevation_map: Vec<Vec<crate::world::worldmap::biome::ElevationType>>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `WorldMap` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Iron`, `Gold`, `Coal`, `Gems`, and `Oil` are never constructed
[INFO] [stderr]   --> src/world/worldmap/world_map.rs:39:5
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub enum ResourceType {
[INFO] [stderr]    |          ------------ variants in this enum
[INFO] [stderr] 39 |     Iron,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 40 |     Gold,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 41 |     Coal,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 42 |     Gems,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 43 |     Oil,
[INFO] [stderr]    |     ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ResourceType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `from`, `to`, `civ_a`, and `civ_b` are never read
[INFO] [stderr]   --> src/world/worldmap/civilization.rs:72:9
[INFO] [stderr]    |
[INFO] [stderr] 71 | pub struct TradeRoute {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 72 |     pub from: (usize, usize), // city coordinates
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 73 |     pub to: (usize, usize),
[INFO] [stderr]    |         ^^
[INFO] [stderr] 74 |     pub civ_a: Civilization,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 75 |     pub civ_b: Civilization,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TradeRoute` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: constant `NUM_CRATERS` is never used
[INFO] [stderr]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:3:11
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub const NUM_CRATERS: usize = 5;
[INFO] [stderr]   |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CONTINENT_SCALE_FACTOR` is never used
[INFO] [stderr]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:5:11
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub const CONTINENT_SCALE_FACTOR:   f64 = 1.5;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DETAIL_JAGGED_FREQ` is never used
[INFO] [stderr]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub const DETAIL_JAGGED_FREQ:       f64 = 2.0;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DETAIL_FALLOFF_FREQ` is never used
[INFO] [stderr]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:7:11
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub const DETAIL_FALLOFF_FREQ:      f64 = 3.0;
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RIDGE_FREQ` is never used
[INFO] [stderr]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const RIDGE_FREQ:               f64 = 2.0;
[INFO] [stderr]   |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PLATEAU_FREQ` is never used
[INFO] [stderr]  --> src/worldgen/worldmap/terrain/elevation/constants.rs:9:11
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub const PLATEAU_FREQ:             f64 = 0.7;
[INFO] [stderr]   |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CRATER_DEPTH` is never used
[INFO] [stderr]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:10:11
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub const CRATER_DEPTH:             f64 = 0.25;
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LAKE_FREQ` is never used
[INFO] [stderr]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub const LAKE_FREQ:                f64 = 0.8;
[INFO] [stderr]    |           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LAKE_LOWERING` is never used
[INFO] [stderr]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:13:11
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub const LAKE_LOWERING:            f64 = 0.18;
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `LAKE_FLATTEN_BLEND` is never used
[INFO] [stderr]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:14:11
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub const LAKE_FLATTEN_BLEND:       f64 = 0.25;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BASELINE_SHIFT` is never used
[INFO] [stderr]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:16:11
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub const BASELINE_SHIFT:           f64 = -0.15;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WEIGHT_CONTINENTAL_MASK` is never used
[INFO] [stderr]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:18:11
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub const WEIGHT_CONTINENTAL_MASK:  f64 = 0.32;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WEIGHT_DETAIL` is never used
[INFO] [stderr]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:19:11
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub const WEIGHT_DETAIL:            f64 = 0.22;
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WEIGHT_RIDGE` is never used
[INFO] [stderr]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:20:11
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub const WEIGHT_RIDGE:             f64 = 1.25;
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WEIGHT_FALLOFF` is never used
[INFO] [stderr]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:21:11
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub const WEIGHT_FALLOFF:           f64 = 0.4;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `WEIGHT_PLATEAU` is never used
[INFO] [stderr]   --> src/worldgen/worldmap/terrain/elevation/constants.rs:22:11
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub const WEIGHT_PLATEAU:           f64 = 1.0;  // already toned inside fn
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x`, `y`, `rx`, `ry`, and `angle` are never read
[INFO] [stderr]   --> src/worldgen/worldmap/terrain/elevation/craters.rs:6:9
[INFO] [stderr]    |
[INFO] [stderr]  5 | pub struct Crater {
[INFO] [stderr]    |            ------ fields in this struct
[INFO] [stderr]  6 |     pub x: f64,
[INFO] [stderr]    |         ^
[INFO] [stderr]  7 |     pub y: f64,
[INFO] [stderr]    |         ^
[INFO] [stderr]  8 |     pub rx: f64,
[INFO] [stderr]    |         ^^
[INFO] [stderr]  9 |     pub ry: f64,
[INFO] [stderr]    |         ^^
[INFO] [stderr] 10 |     pub angle: f64,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Crater` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `crater_effect` is never used
[INFO] [stderr]   --> src/worldgen/worldmap/terrain/elevation/craters.rs:36:8
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub fn crater_effect(cx: usize, cy: usize, craters: &[Crater]) -> f64 {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/worldgen/worldmap/terrain/elevation/noise_sources.rs:5:9
[INFO] [stderr]    |
[INFO] [stderr]  4 | pub struct NoiseSources {
[INFO] [stderr]    |            ------------ fields in this struct
[INFO] [stderr]  5 |     pub continent: Perlin,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr]  6 |     pub detail:    Perlin,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]  7 |     pub moist:     Perlin,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr]  8 |     pub ridge:     Perlin,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr]  9 |     pub plateau:   Perlin,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 10 |     pub crater:    Perlin,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 11 |     pub lake:      Perlin,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `apply_lakes` is never used
[INFO] [stderr]  --> src/worldgen/worldmap/hydrology/lakes.rs:7:8
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn apply_lakes(
[INFO] [stderr]   |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `moisture` is never read
[INFO] [stderr]  --> src/worldgen/worldmap/biome/models.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub struct TileEnv {
[INFO] [stderr]   |            ------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 5 |     pub moisture: f64,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `TileEnv` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `cost` is never read
[INFO] [stderr]  --> src/worldgen/worldmap/civ/roads/mod.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct Node {
[INFO] [stderr]   |            ---- field in this struct
[INFO] [stderr] 7 |     pub pos: (usize, usize),
[INFO] [stderr] 8 |     pub cost: f64,
[INFO] [stderr]   |         ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Node` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `with_scale` and `with_height_noise` are never used
[INFO] [stderr]   --> src/worldgen/localmap/builder.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | impl WorldGeneratorBuilder {
[INFO] [stderr]    | -------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 17 |     pub fn with_scale(mut self, scale: f64) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 |     pub fn with_height_noise(self, _noise: OpenSimplex) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/worldgen/localmap/generator.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl WorldGenerator {
[INFO] [stderr]    | ------------------- associated function in this implementation
[INFO] [stderr] 15 |     pub fn new(seed: u32) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `biome` is never read
[INFO] [stderr]   --> src/worldgen/localmap/pipeline.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr]  5 | pub struct GenCtx<'a> {
[INFO] [stderr]    |            ------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 10 |     pub biome: [[BiomeId; CHUNK_SIZE]; CHUNK_SIZE],
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `paused` is never read
[INFO] [stderr]  --> src/gui/state.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub struct GuiState {
[INFO] [stderr]   |            -------- field in this struct
[INFO] [stderr] 8 |     pub show_ui: bool,
[INFO] [stderr] 9 |     pub paused: bool,
[INFO] [stderr]   |         ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `WindowState` is never used
[INFO] [stderr]  --> src/gui/windows/window_state.rs:1:11
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub trait WindowState {
[INFO] [stderr]   |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `city_info_window_stub` is never used
[INFO] [stderr]  --> src/gui/windows/city_info/mod.rs:3:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub fn city_info_window_stub() {}
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `selected_civ` is never read
[INFO] [stderr]  --> src/gui/windows/city_info/state.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct CityInfoState {
[INFO] [stderr]   |            ------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 8 |     pub selected_civ: Option<Civilization>,
[INFO] [stderr]   |         ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `variant` and `type` are never read
[INFO] [stderr]   --> src/gui/windows/city_info/portraits.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr]  7 | pub struct CivSpriteTile {
[INFO] [stderr]    |            ------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 11 |     pub variant: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 12 |     #[serde(default)]
[INFO] [stderr] 13 |     pub r#type: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CivSpriteTile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `draw` is never used
[INFO] [stderr]   --> src/gui/windows/window_manager/core.rs:30:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | impl WindowManager {
[INFO] [stderr]    | ------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub fn draw(
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `show` and `selected_worker` are never read
[INFO] [stderr]  --> src/gui/windows/worker_info/state.rs:2:9
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub struct WorkerInfoState {
[INFO] [stderr]   |            --------------- fields in this struct
[INFO] [stderr] 2 |     pub show: bool,
[INFO] [stderr]   |         ^^^^
[INFO] [stderr] 3 |     pub selected_worker: Option<usize>, // Placeholder for worker ID or struct
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_visible`, `show`, `hide`, and `toggle` are never used
[INFO] [stderr]   --> src/gui/windows/worker_info/state.rs:13:12
[INFO] [stderr]    |
[INFO] [stderr]  6 | impl WorkerInfoState {
[INFO] [stderr]    | -------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 13 |     pub fn is_visible(&self) -> bool { self.show }
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 14 |     pub fn show(&mut self) { self.show = true; }
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 15 |     pub fn hide(&mut self) { self.show = false; }
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 16 |     pub fn toggle(&mut self) { self.show = !self.show; }
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `draw_tile_panel_stub` is never used
[INFO] [stderr]  --> src/gui/widgets/tile_ui.rs:3:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub fn draw_tile_panel_stub() {} 
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `color` is never read
[INFO] [stderr]   --> src/particle/mod.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr]  4 | pub struct Particle {
[INFO] [stderr]    |            -------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 10 |     pub color: Color,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Particle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/input/event.rs:6:11
[INFO] [stderr]   |
[INFO] [stderr] 6 |     KeyUp(KeyCode),
[INFO] [stderr]   |     ----- ^^^^^^^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     field in this variant
[INFO] [stderr]   |
[INFO] [stderr]   = note: `InputEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]   |
[INFO] [stderr] 6 -     KeyUp(KeyCode),
[INFO] [stderr] 6 +     KeyUp(()),
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x` and `y` are never read
[INFO] [stderr]  --> src/input/event.rs:9:17
[INFO] [stderr]   |
[INFO] [stderr] 9 |     MouseMove { x: f32, y: f32 },
[INFO] [stderr]   |     ---------   ^       ^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     fields in this variant
[INFO] [stderr]   |
[INFO] [stderr]   = note: `InputEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `delta` is never read
[INFO] [stderr]   --> src/input/event.rs:10:19
[INFO] [stderr]    |
[INFO] [stderr] 10 |     MouseScroll { delta: f32 },
[INFO] [stderr]    |     -----------   ^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `InputEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/input/event.rs:11:15
[INFO] [stderr]    |
[INFO] [stderr] 11 |     TextInput(char),
[INFO] [stderr]    |     --------- ^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `InputEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 11 -     TextInput(char),
[INFO] [stderr] 11 +     TextInput(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `keys_down` is never read
[INFO] [stderr]   --> src/input/manager.rs:58:5
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub struct KeyInput<'a> {
[INFO] [stderr]    |            -------- field in this struct
[INFO] [stderr] 57 |     events: &'a [InputEvent],
[INFO] [stderr] 58 |     keys_down: &'a HashSet<KeyCode>,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `released` and `held` are never used
[INFO] [stderr]   --> src/input/manager.rs:66:12
[INFO] [stderr]    |
[INFO] [stderr] 61 | impl<'a> KeyInput<'a> {
[INFO] [stderr]    | --------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 66 |     pub fn released(&self, key: KeyCode) -> bool {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 70 |     pub fn held(&self, key: KeyCode) -> bool {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `pos` is never read
[INFO] [stderr]   --> src/input/manager.rs:78:5
[INFO] [stderr]    |
[INFO] [stderr] 75 | pub struct MouseInputView<'a> {
[INFO] [stderr]    |            -------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 78 |     pos: (f32, f32),
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `pos` and `scroll_delta` are never used
[INFO] [stderr]   --> src/input/manager.rs:94:12
[INFO] [stderr]    |
[INFO] [stderr] 81 | impl<'a> MouseInputView<'a> {
[INFO] [stderr]    | --------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 94 |     pub fn pos(&self) -> (f32, f32) {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 98 |     pub fn scroll_delta(&self) -> f32 {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `camera_x`, `camera_y`, and `zoom` are never read
[INFO] [stderr]  --> src/game/state.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct GameState<'a> {
[INFO] [stderr]   |            --------- fields in this struct
[INFO] [stderr] 5 |     pub camera_x: f32,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 6 |     pub camera_y: f32,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 7 |     pub zoom: f32,
[INFO] [stderr]   |         ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LocalMapInputState` is never constructed
[INFO] [stderr]   --> src/game/input/local_map/mod.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub struct LocalMapInputState {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `center_camera` is never used
[INFO] [stderr]   --> src/game/input/local_map/mod.rs:40:8
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub fn center_camera(local_map_renderer: &mut LocalMapRenderer, x: f32, y: f32, world: &World) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `center_camera` is never used
[INFO] [stderr]    --> src/game/input/local_map/camera_controls.rs:218:8
[INFO] [stderr]     |
[INFO] [stderr] 218 | pub fn center_camera(local_map_renderer: &mut LocalMapRenderer, x: f32, y: f32, world: &World) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `WorldMapInputState` is never constructed
[INFO] [stderr]   --> src/game/input/world_map/mod.rs:28:12
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub struct WorldMapInputState {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `MainMenu`, `WorldGen`, and `RegionMap` are never constructed
[INFO] [stderr]  --> src/game/views/mod.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub enum GameView {
[INFO] [stderr]   |          -------- variants in this enum
[INFO] [stderr] 3 |     MainMenu,
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 4 |     WorldGen,
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 8 |     RegionMap,
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `GameView` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: structure field `tileSize` should have a snake case name
[INFO] [stderr]   --> src/gui/windows/city_info/portraits.rs:18:9
[INFO] [stderr]    |
[INFO] [stderr] 18 |     pub tileSize: [u32; 2],
[INFO] [stderr]    |         ^^^^^^^^ help: convert the identifier to snake case: `tile_size`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/input/manager.rs:38:16
[INFO] [stderr]    |
[INFO] [stderr] 38 |     pub fn key(&self) -> KeyInput {
[INFO] [stderr]    |                ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                |
[INFO] [stderr]    |                the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 38 |     pub fn key(&self) -> KeyInput<'_> {
[INFO] [stderr]    |                                  ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/input/manager.rs:45:18
[INFO] [stderr]    |
[INFO] [stderr] 45 |     pub fn mouse(&self) -> MouseInputView {
[INFO] [stderr]    |                  ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                  |
[INFO] [stderr]    |                  the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 45 |     pub fn mouse(&self) -> MouseInputView<'_> {
[INFO] [stderr]    |                                          ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `voxel_game` (bin "voxel_game" test) generated 134 warnings (run `cargo fix --bin "voxel_game" -p voxel_game --tests` to apply 66 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/voxel_game-cc0e28a4dec90298)
[INFO] running `Command { std: "docker" "inspect" "c95be3af510577aba23d0921c8f1d93ffb90e820a80f18c502f292e33acc5578", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c95be3af510577aba23d0921c8f1d93ffb90e820a80f18c502f292e33acc5578", kill_on_drop: false }`
[INFO] [stdout] c95be3af510577aba23d0921c8f1d93ffb90e820a80f18c502f292e33acc5578
