[INFO] cloning repository https://github.com/Mazigaming/HumanManifesto
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Mazigaming/HumanManifesto" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMazigaming%2FHumanManifesto", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMazigaming%2FHumanManifesto'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b4eb3b502e3ed6f6827f602c5673582cfc8e1976
[INFO] checking Mazigaming/HumanManifesto against 895980e0290783bb09b1ccf1b11f14eb09b10430 for pr-160186
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMazigaming%2FHumanManifesto" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Mazigaming/HumanManifesto
[INFO] finished tweaking git repo https://github.com/Mazigaming/HumanManifesto
[INFO] tweaked toml for git repo https://github.com/Mazigaming/HumanManifesto written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Mazigaming/HumanManifesto on toolchain 895980e0290783bb09b1ccf1b11f14eb09b10430
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Mazigaming/HumanManifesto 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" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 525ce0a5d4926acbd963346fc4658dc7686f661cab041f81240d4c8b1d7c459c
[INFO] running `Command { std: "docker" "start" "525ce0a5d4926acbd963346fc4658dc7686f661cab041f81240d4c8b1d7c459c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "525ce0a5d4926acbd963346fc4658dc7686f661cab041f81240d4c8b1d7c459c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "525ce0a5d4926acbd963346fc4658dc7686f661cab041f81240d4c8b1d7c459c" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "525ce0a5d4926acbd963346fc4658dc7686f661cab041f81240d4c8b1d7c459c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "525ce0a5d4926acbd963346fc4658dc7686f661cab041f81240d4c8b1d7c459c" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling miniquad v0.4.11
[INFO] [stderr]     Checking bytemuck v1.25.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking rand_xorshift v0.3.0
[INFO] [stderr]     Checking rand v0.8.7
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking noise v0.9.0
[INFO] [stderr]     Checking fontdue v0.9.4
[INFO] [stderr]     Checking macroquad v0.4.16
[INFO] [stderr]     Checking humanity-evolution-sim v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/lineage.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     for i in 0..syllable_count {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entries_to_show`
[INFO] [stdout]    --> src/ui.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |         let entries_to_show = sim.evo.chronicle.len().min(max_entries);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_entries_to_show`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sh`
[INFO] [stdout]    --> src/ui.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let sh = screen_height();
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_sh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `falloff`
[INFO] [stdout]    --> src/world.rs:606:33
[INFO] [stdout]     |
[INFO] [stdout] 606 | ...                   let falloff = (1.0 - dist / 8.0).max(0.0);
[INFO] [stdout]     |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_falloff`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/world.rs:749:13
[INFO] [stdout]     |
[INFO] [stdout] 749 |         let mut rng = (self.seed as u64, 0u64);
[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: `rng`
[INFO] [stdout]    --> src/world.rs:749:13
[INFO] [stdout]     |
[INFO] [stdout] 749 |         let mut rng = (self.seed as u64, 0u64);
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wind_dx`
[INFO] [stdout]    --> src/world.rs:914:13
[INFO] [stdout]     |
[INFO] [stdout] 914 |         let wind_dx = 1.0; // Wind blows in +x direction
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wind_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wind_dy`
[INFO] [stdout]    --> src/world.rs:915:13
[INFO] [stdout]     |
[INFO] [stdout] 915 |         let wind_dy = 0.0;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wind_dy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/lineage.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     for i in 0..syllable_count {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `leg`
[INFO] [stdout]     --> src/world.rs:1362:21
[INFO] [stdout]      |
[INFO] [stdout] 1362 |         if let Some(ref leg) = tile.legendary_resource {
[INFO] [stdout]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_leg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ruin`
[INFO] [stdout]     --> src/world.rs:1373:21
[INFO] [stdout]      |
[INFO] [stdout] 1373 |         if let Some(ref ruin) = tile.ruin {
[INFO] [stdout]      |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ruin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `camouflaged_color` and `kinship` are never used
[INFO] [stdout]    --> src/agent.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl Genome {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn camouflaged_color(&self, biome_color: Color) -> Color {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn kinship(&self, other: &Genome) -> 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: variants `Fighting` and `Infected` are never constructed
[INFO] [stdout]    --> src/agent.rs:177:5
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub enum BehaviorState {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 177 |     Fighting,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 178 |     Infected,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BehaviorState` 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: field `conflict_wins` is never read
[INFO] [stdout]    --> src/agent.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub struct Agent {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub conflict_wins: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Agent` 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: associated function `blend` is never used
[INFO] [stdout]   --> src/civilization.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl IdeologyValues {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn blend(a: &IdeologyValues, b: &IdeologyValues, weight: f32) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `BeliefAdopted` and `TribeKnowledge` are never constructed
[INFO] [stdout]    --> src/civilization.rs:134:5
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub enum FocusRequirement {
[INFO] [stdout]     |          ---------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 134 |     BeliefAdopted(u32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 135 |     TribeKnowledge(f32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FocusRequirement` 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: variants `SpawnEvent`, `UnlockEra`, and `BirthRateBonus` are never constructed
[INFO] [stdout]    --> src/civilization.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub enum FocusEffect {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 146 |     SpawnEvent(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 147 |     GrantInfluence(f32),
[INFO] [stdout] 148 |     UnlockEra(String),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 149 |     BirthRateBonus(f32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FocusEffect` 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: fields `description`, `era`, `unlocked_ids`, and `category` are never read
[INFO] [stdout]    --> src/civilization.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub struct FocusNode {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub description: String,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 164 |     pub era: String,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub unlocked_ids: Vec<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 169 |     pub category: String,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FocusNode` 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: fields `era`, `required_focus`, and `description` are never read
[INFO] [stdout]    --> src/civilization.rs:221:9
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub struct TechNode {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub era: String,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub required_focus: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 225 |     pub description: String,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TechNode` 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: fields `col`, `row`, and `founded_tick` are never read
[INFO] [stdout]    --> src/civilization.rs:251:9
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub struct City {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] 250 |     pub name: String,
[INFO] [stdout] 251 |     pub col: i32,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 252 |     pub row: i32,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 253 |     pub population: u32,
[INFO] [stdout] 254 |     pub founded_tick: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `City` 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: unused variable: `entries_to_show`
[INFO] [stdout]    --> src/ui.rs:111:13
[INFO] [stdout]     |
[INFO] [stdout] 111 |         let entries_to_show = sim.evo.chronicle.len().min(max_entries);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_entries_to_show`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `laws`, `founded_tick`, and `events_completed` are never read
[INFO] [stdout]    --> src/civilization.rs:259:9
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub struct Civilization {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 259 |     pub id: u32,
[INFO] [stdout]     |         ^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub laws: HashMap<String, String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub founded_tick: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub events_completed: Vec<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Civilization` 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: methods `advance_era` and `record_event` are never used
[INFO] [stdout]    --> src/civilization.rs:470:12
[INFO] [stdout]     |
[INFO] [stdout] 278 | impl Civilization {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 470 |     pub fn advance_era(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 614 |     pub fn record_event(&mut self, event_id: u32, description: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `agents_start`, `agents_end`, `desperate`, `deaths_old_age`, `avg_energy`, and `avg_hydration` are never read
[INFO] [stdout]   --> src/evolution.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DebugStats {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 11 |     pub agents_start: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub agents_end: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub desperate: usize,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub deaths_old_age: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     pub avg_energy: f32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     pub avg_hydration: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DebugStats` 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: fields `col_start` and `row_start` are never read
[INFO] [stdout]   --> src/evolution.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Sector {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 31 |     pub col_start: i32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 32 |     pub row_start: i32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Sector` 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: field `neighbors_buf` is never read
[INFO] [stdout]   --> src/evolution.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct EvolutionSim {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 62 |     neighbors_buf: Vec<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `spawn_agent`, `find_nearest_resource_cached`, `find_nearest_water_cached`, `get_tribe`, and `get_belief` are never used
[INFO] [stdout]     --> src/evolution.rs:177:12
[INFO] [stdout]      |
[INFO] [stdout]   66 | impl EvolutionSim {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  177 |     pub fn spawn_agent(&mut self, col: i32, row: i32, genome: Genome) -> u64 {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1175 |     fn find_nearest_resource_cached(&self, col: i32, row: i32, sight: i32) -> Option<(i32, i32)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1196 |     fn find_nearest_water_cached(&self, col: i32, row: i32, sight: i32) -> Option<(i32, i32)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2118 |     pub fn get_tribe(&self, tribe_id: u32) -> Option<&Tribe> {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2122 |     pub fn get_belief(&self, belief_id: u32) -> Option<&Belief> {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `parent_lineage_id` is never read
[INFO] [stdout]  --> src/lineage.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Lineage {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] 6 |     pub id: u32,
[INFO] [stdout] 7 |     pub parent_lineage_id: Option<u32>,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Lineage` 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: fields `leader_agent_id` and `founding_tick` are never read
[INFO] [stdout]    --> src/tribe.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct Tribe {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub leader_agent_id: Option<u64>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 131 |     pub founding_tick: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Tribe` 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: associated items `new`, `blend`, `mutate`, and `clamp_mutate` are never used
[INFO] [stdout]   --> src/belief.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl TenetProfile {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn blend(a: &TenetProfile, b: &TenetProfile, mutation_rate: f32) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn mutate(&mut self, rate: f32) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn clamp_mutate(val: f32, rate: f32) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `founding_tick` and `founder_agent_id` are never read
[INFO] [stdout]   --> src/belief.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct Belief {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub founding_tick: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 57 |     pub founder_agent_id: Option<u64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Belief` 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: methods `other_tribe` and `behavior_band` are never used
[INFO] [stdout]   --> src/diplomacy.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl DiplomaticRelation {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn other_tribe(&self, tribe_id: u32) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn behavior_band(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sh`
[INFO] [stdout]    --> src/ui.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let sh = screen_height();
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_sh`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Gems` is never constructed
[INFO] [stdout]    --> src/world.rs:114:5
[INFO] [stdout]     |
[INFO] [stdout]  92 | pub enum ResourceType {
[INFO] [stdout]     |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 114 |     Gems,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ResourceType` 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: fields `resource_type` and `richness` are never read
[INFO] [stdout]    --> src/world.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub struct LegendaryResource {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 205 |     pub name: String,
[INFO] [stdout] 206 |     pub resource_type: ResourceType,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 207 |     pub richness: f32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LegendaryResource` 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: struct `OriginPoint` is never constructed
[INFO] [stdout]    --> src/world.rs:219:12
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub struct OriginPoint {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/world.rs:242:9
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub struct HexTile {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub name: Option<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HexTile` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RIVER_SEED_OFFSET` is never used
[INFO] [stdout]    --> src/world.rs:255:7
[INFO] [stdout]     |
[INFO] [stdout] 255 | const RIVER_SEED_OFFSET: u64 = 4_000;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RIVER_SCALE` is never used
[INFO] [stdout]    --> src/world.rs:259:7
[INFO] [stdout]     |
[INFO] [stdout] 259 | const RIVER_SCALE: f64 = 0.25;
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `pit_fill` and `apply_moisture_falloff` are never used
[INFO] [stdout]    --> src/world.rs:886:8
[INFO] [stdout]     |
[INFO] [stdout] 464 | impl World {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 886 |     fn pit_fill(&mut self, passes: usize) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 911 |     fn apply_moisture_falloff(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `falloff`
[INFO] [stdout]    --> src/world.rs:606:33
[INFO] [stdout]     |
[INFO] [stdout] 606 | ...                   let falloff = (1.0 - dist / 8.0).max(0.0);
[INFO] [stdout]     |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_falloff`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/world.rs:749:13
[INFO] [stdout]     |
[INFO] [stdout] 749 |         let mut rng = (self.seed as u64, 0u64);
[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: `rng`
[INFO] [stdout]    --> src/world.rs:749:13
[INFO] [stdout]     |
[INFO] [stdout] 749 |         let mut rng = (self.seed as u64, 0u64);
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wind_dx`
[INFO] [stdout]    --> src/world.rs:914:13
[INFO] [stdout]     |
[INFO] [stdout] 914 |         let wind_dx = 1.0; // Wind blows in +x direction
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wind_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wind_dy`
[INFO] [stdout]    --> src/world.rs:915:13
[INFO] [stdout]     |
[INFO] [stdout] 915 |         let wind_dy = 0.0;
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wind_dy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `leg`
[INFO] [stdout]     --> src/world.rs:1362:21
[INFO] [stdout]      |
[INFO] [stdout] 1362 |         if let Some(ref leg) = tile.legendary_resource {
[INFO] [stdout]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_leg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ruin`
[INFO] [stdout]     --> src/world.rs:1373:21
[INFO] [stdout]      |
[INFO] [stdout] 1373 |         if let Some(ref ruin) = tile.ruin {
[INFO] [stdout]      |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ruin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `camouflaged_color` and `kinship` are never used
[INFO] [stdout]    --> src/agent.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl Genome {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn camouflaged_color(&self, biome_color: Color) -> Color {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn kinship(&self, other: &Genome) -> 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: variants `Fighting` and `Infected` are never constructed
[INFO] [stdout]    --> src/agent.rs:177:5
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub enum BehaviorState {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 177 |     Fighting,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 178 |     Infected,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BehaviorState` 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: field `conflict_wins` is never read
[INFO] [stdout]    --> src/agent.rs:217:9
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub struct Agent {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub conflict_wins: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Agent` 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: associated function `blend` is never used
[INFO] [stdout]   --> src/civilization.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl IdeologyValues {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn blend(a: &IdeologyValues, b: &IdeologyValues, weight: f32) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `BeliefAdopted` and `TribeKnowledge` are never constructed
[INFO] [stdout]    --> src/civilization.rs:134:5
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub enum FocusRequirement {
[INFO] [stdout]     |          ---------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 134 |     BeliefAdopted(u32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 135 |     TribeKnowledge(f32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FocusRequirement` 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: variants `SpawnEvent`, `UnlockEra`, and `BirthRateBonus` are never constructed
[INFO] [stdout]    --> src/civilization.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub enum FocusEffect {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 146 |     SpawnEvent(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 147 |     GrantInfluence(f32),
[INFO] [stdout] 148 |     UnlockEra(String),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 149 |     BirthRateBonus(f32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FocusEffect` 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: fields `description`, `era`, `unlocked_ids`, and `category` are never read
[INFO] [stdout]    --> src/civilization.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub struct FocusNode {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub description: String,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 164 |     pub era: String,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub unlocked_ids: Vec<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 169 |     pub category: String,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FocusNode` 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: fields `era`, `required_focus`, and `description` are never read
[INFO] [stdout]    --> src/civilization.rs:221:9
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub struct TechNode {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub era: String,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub required_focus: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 225 |     pub description: String,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TechNode` 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: fields `col`, `row`, and `founded_tick` are never read
[INFO] [stdout]    --> src/civilization.rs:251:9
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub struct City {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] 250 |     pub name: String,
[INFO] [stdout] 251 |     pub col: i32,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 252 |     pub row: i32,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 253 |     pub population: u32,
[INFO] [stdout] 254 |     pub founded_tick: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `City` 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: fields `id`, `laws`, `founded_tick`, and `events_completed` are never read
[INFO] [stdout]    --> src/civilization.rs:259:9
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub struct Civilization {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 259 |     pub id: u32,
[INFO] [stdout]     |         ^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub laws: HashMap<String, String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub founded_tick: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub events_completed: Vec<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Civilization` 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: methods `advance_era` and `record_event` are never used
[INFO] [stdout]    --> src/civilization.rs:470:12
[INFO] [stdout]     |
[INFO] [stdout] 278 | impl Civilization {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 470 |     pub fn advance_era(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 614 |     pub fn record_event(&mut self, event_id: u32, description: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `agents_start`, `agents_end`, `desperate`, `deaths_old_age`, `avg_energy`, and `avg_hydration` are never read
[INFO] [stdout]   --> src/evolution.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DebugStats {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 11 |     pub agents_start: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub agents_end: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub desperate: usize,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub deaths_old_age: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     pub avg_energy: f32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 25 |     pub avg_hydration: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DebugStats` 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: fields `col_start` and `row_start` are never read
[INFO] [stdout]   --> src/evolution.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Sector {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 31 |     pub col_start: i32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 32 |     pub row_start: i32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Sector` 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: field `neighbors_buf` is never read
[INFO] [stdout]   --> src/evolution.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct EvolutionSim {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 62 |     neighbors_buf: Vec<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `spawn_agent`, `find_nearest_resource_cached`, `find_nearest_water_cached`, `get_tribe`, and `get_belief` are never used
[INFO] [stdout]     --> src/evolution.rs:177:12
[INFO] [stdout]      |
[INFO] [stdout]   66 | impl EvolutionSim {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  177 |     pub fn spawn_agent(&mut self, col: i32, row: i32, genome: Genome) -> u64 {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1175 |     fn find_nearest_resource_cached(&self, col: i32, row: i32, sight: i32) -> Option<(i32, i32)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1196 |     fn find_nearest_water_cached(&self, col: i32, row: i32, sight: i32) -> Option<(i32, i32)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2118 |     pub fn get_tribe(&self, tribe_id: u32) -> Option<&Tribe> {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2122 |     pub fn get_belief(&self, belief_id: u32) -> Option<&Belief> {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `parent_lineage_id` is never read
[INFO] [stdout]  --> src/lineage.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Lineage {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] 6 |     pub id: u32,
[INFO] [stdout] 7 |     pub parent_lineage_id: Option<u32>,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Lineage` 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: fields `leader_agent_id` and `founding_tick` are never read
[INFO] [stdout]    --> src/tribe.rs:130:9
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct Tribe {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub leader_agent_id: Option<u64>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 131 |     pub founding_tick: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Tribe` 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: associated items `new`, `blend`, `mutate`, and `clamp_mutate` are never used
[INFO] [stdout]   --> src/belief.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl TenetProfile {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub fn blend(a: &TenetProfile, b: &TenetProfile, mutation_rate: f32) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn mutate(&mut self, rate: f32) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn clamp_mutate(val: f32, rate: f32) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `founding_tick` and `founder_agent_id` are never read
[INFO] [stdout]   --> src/belief.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct Belief {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub founding_tick: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 57 |     pub founder_agent_id: Option<u64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Belief` 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: methods `other_tribe` and `behavior_band` are never used
[INFO] [stdout]   --> src/diplomacy.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl DiplomaticRelation {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn other_tribe(&self, tribe_id: u32) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn behavior_band(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Gems` is never constructed
[INFO] [stdout]    --> src/world.rs:114:5
[INFO] [stdout]     |
[INFO] [stdout]  92 | pub enum ResourceType {
[INFO] [stdout]     |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 114 |     Gems,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ResourceType` 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: fields `resource_type` and `richness` are never read
[INFO] [stdout]    --> src/world.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub struct LegendaryResource {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 205 |     pub name: String,
[INFO] [stdout] 206 |     pub resource_type: ResourceType,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 207 |     pub richness: f32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LegendaryResource` 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: struct `OriginPoint` is never constructed
[INFO] [stdout]    --> src/world.rs:219:12
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub struct OriginPoint {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/world.rs:242:9
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub struct HexTile {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub name: Option<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HexTile` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RIVER_SEED_OFFSET` is never used
[INFO] [stdout]    --> src/world.rs:255:7
[INFO] [stdout]     |
[INFO] [stdout] 255 | const RIVER_SEED_OFFSET: u64 = 4_000;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RIVER_SCALE` is never used
[INFO] [stdout]    --> src/world.rs:259:7
[INFO] [stdout]     |
[INFO] [stdout] 259 | const RIVER_SCALE: f64 = 0.25;
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `pit_fill` and `apply_moisture_falloff` are never used
[INFO] [stdout]    --> src/world.rs:886:8
[INFO] [stdout]     |
[INFO] [stdout] 464 | impl World {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 886 |     fn pit_fill(&mut self, passes: usize) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 911 |     fn apply_moisture_falloff(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.92s
[INFO] running `Command { std: "docker" "inspect" "525ce0a5d4926acbd963346fc4658dc7686f661cab041f81240d4c8b1d7c459c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "525ce0a5d4926acbd963346fc4658dc7686f661cab041f81240d4c8b1d7c459c", kill_on_drop: false }`
[INFO] [stdout] 525ce0a5d4926acbd963346fc4658dc7686f661cab041f81240d4c8b1d7c459c
