[INFO] cloning repository https://github.com/daffyd-jones/rust_dungeon [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/daffyd-jones/rust_dungeon" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdaffyd-jones%2Frust_dungeon", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdaffyd-jones%2Frust_dungeon'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] dc66aee33b6b4f4c325fa5a2da721bc9e1bf2b8c [INFO] testing daffyd-jones/rust_dungeon against beta-2025-04-13 for beta-1.87-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdaffyd-jones%2Frust_dungeon" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/daffyd-jones/rust_dungeon on toolchain beta-2025-04-13 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-04-13" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/daffyd-jones/rust_dungeon [INFO] finished tweaking git repo https://github.com/daffyd-jones/rust_dungeon [INFO] tweaked toml for git repo https://github.com/daffyd-jones/rust_dungeon written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/daffyd-jones/rust_dungeon 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" "+beta-2025-04-13" "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/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-04-13" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c188f4548ee0122e9a2e8c77ca4dfc8d351beca53b556a689a95b7b27213dd04 [INFO] running `Command { std: "docker" "start" "-a" "c188f4548ee0122e9a2e8c77ca4dfc8d351beca53b556a689a95b7b27213dd04", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c188f4548ee0122e9a2e8c77ca4dfc8d351beca53b556a689a95b7b27213dd04", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c188f4548ee0122e9a2e8c77ca4dfc8d351beca53b556a689a95b7b27213dd04", kill_on_drop: false }` [INFO] [stdout] c188f4548ee0122e9a2e8c77ca4dfc8d351beca53b556a689a95b7b27213dd04 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-04-13" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5f05b0b2b4276d8dc22be6db2b72b83b9a9a43518a66aebb6255d59e0bb28c49 [INFO] running `Command { std: "docker" "start" "-a" "5f05b0b2b4276d8dc22be6db2b72b83b9a9a43518a66aebb6255d59e0bb28c49", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling proc-macro2 v1.0.85 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling rustversion v1.0.17 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Compiling signal-hook v0.3.17 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling log v0.4.21 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Compiling once_cell v1.19.0 [INFO] [stderr] Compiling smallvec v1.13.2 [INFO] [stderr] Compiling either v1.12.0 [INFO] [stderr] Compiling zerocopy v0.7.34 [INFO] [stderr] Compiling allocator-api2 v0.2.18 [INFO] [stderr] Compiling bitflags v2.5.0 [INFO] [stderr] Compiling linux-raw-sys v0.4.14 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling itoa v1.0.11 [INFO] [stderr] Compiling serde v1.0.208 [INFO] [stderr] Compiling ryu v1.0.18 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling itertools v0.12.1 [INFO] [stderr] Compiling serde_json v1.0.127 [INFO] [stderr] Compiling ppv-lite86 v0.2.17 [INFO] [stderr] Compiling unicode-width v0.1.13 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling deranged v0.3.11 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling unicode-segmentation v1.11.0 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling signal-hook-registry v1.4.2 [INFO] [stderr] Compiling mio v1.0.2 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Compiling castaway v0.2.3 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling compact_str v0.8.0 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling syn v2.0.66 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling signal-hook-mio v0.2.4 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling time v0.3.36 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling unicode-truncate v1.0.0 [INFO] [stderr] Compiling lru v0.12.3 [INFO] [stderr] Compiling strum_macros v0.26.3 [INFO] [stderr] Compiling serde_derive v1.0.208 [INFO] [stderr] Compiling instability v0.3.2 [INFO] [stderr] Compiling strum v0.26.2 [INFO] [stderr] Compiling ratatui v0.28.0 [INFO] [stderr] Compiling dungeon v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::enums::Cells` [INFO] [stdout] --> src/enemy.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::enums::Cells; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Items` [INFO] [stdout] --> src/gui.rs:2:36 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::enums::{Cells, Enemies, Items, NPCWrap, GUIMode, Interactable, InterOpt, EncOpt, Equip, ItemEffect, EnvInter}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Equip`, `ItemEffect`, and `Items` [INFO] [stdout] --> src/gui/gui_man_draw.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::enums::{Items, NPCWrap, Interactable, InterOpt, EncOpt, Equip, ItemEffect, EnvInter}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/item.rs:4:13 [INFO] [stdout] | [INFO] [stdout] 4 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/map.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/player.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/puzzle.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/puzzles.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/settlements.rs:5:13 [INFO] [stdout] | [INFO] [stdout] 5 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/shop.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `new_shop_npc` [INFO] [stdout] --> src/gamestate.rs:8:46 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::npc::{new_comm_npc, new_conv_npc, new_shop_npc, BaseNPC, Convo, NPC}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Cells` [INFO] [stdout] --> src/gamestate/locations.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::enums::{Cells, CompMode, GUIMode, GameMode, Interactable, Location, NPCWrap}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ratatui::symbols::border::QUADRANT_TOP_LEFT_TOP_RIGHT_BOTTOM_LEFT` [INFO] [stdout] --> src/gamestate/locations.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | use ratatui::symbols::border::QUADRANT_TOP_LEFT_TOP_RIGHT_BOTTOM_LEFT; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CommNPC` [INFO] [stdout] --> src/gamestate/npcs.rs:10:63 [INFO] [stdout] | [INFO] [stdout] 10 | new_comm_npc, new_conv_npc, new_spawn_npc, new_trade_npc, CommNPC, ConvNPC, Convo, ShopNPC, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/gamestate.rs:39:15 [INFO] [stdout] | [INFO] [stdout] 39 | use std::io::{self, BufRead, BufReader, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/features.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 108 | let mut small_cells = vec![vec![Cells::Empty; 80]; 40]; [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/features.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | let mut small_cells = vec![vec![Cells::Empty; 80]; 40]; [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> src/gui.rs:1372:21 [INFO] [stdout] | [INFO] [stdout] 1372 | let b = Block::bordered(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `area` [INFO] [stdout] --> src/gui.rs:1377:26 [INFO] [stdout] | [INFO] [stdout] 1377 | let [area] = vertical.areas(a); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `px` is never read [INFO] [stdout] --> src/map.rs:129:17 [INFO] [stdout] | [INFO] [stdout] 129 | let mut px = 0; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `py` is never read [INFO] [stdout] --> src/map.rs:130:17 [INFO] [stdout] | [INFO] [stdout] 130 | let mut py = 0; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `new_settle_pos` [INFO] [stdout] --> src/puzzles.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | let new_settle_pos = { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_settle_pos` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/settlement.rs:1298:5 [INFO] [stdout] | [INFO] [stdout] 1298 | mut npcs: HashMap<(usize, usize), NPCWrap>, [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cells` [INFO] [stdout] --> src/settlement.rs:1392:13 [INFO] [stdout] | [INFO] [stdout] 1392 | let cells = vec![vec![Cells::Null; 150]; 50]; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_cells` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `npcs` [INFO] [stdout] --> src/settlement.rs:1391:41 [INFO] [stdout] | [INFO] [stdout] 1391 | pub fn demo_settle(pos: (i64, i64), npcs: HashMap<(usize, usize), NPCWrap>) -> Self { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_npcs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/settlement.rs:1395:19 [INFO] [stdout] | [INFO] [stdout] 1395 | let (map, mut mpcs, sitems, items, env_inters) = build_small_settle(true); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `snpcs` [INFO] [stdout] --> src/settlement.rs:1441:21 [INFO] [stdout] | [INFO] [stdout] 1441 | let (shops, snpcs) = get_npc_shops(npcs.clone(), sitems); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_snpcs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/settlement.rs:1439:19 [INFO] [stdout] | [INFO] [stdout] 1439 | let (map, mut npcs, sitems, items, env_inters) = build_small_settle(false); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sh` [INFO] [stdout] --> src/settlement.rs:1479:14 [INFO] [stdout] | [INFO] [stdout] 1479 | for (sh, s) in &self.shops { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_sh` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/settlement.rs:1480:26 [INFO] [stdout] | [INFO] [stdout] 1480 | for ((x, y), i) in s.get_stock() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `win` is never read [INFO] [stdout] --> src/gamestate/enemies.rs:274:17 [INFO] [stdout] | [INFO] [stdout] 274 | let mut win = None; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/gamestate/locations.rs:327:13 [INFO] [stdout] | [INFO] [stdout] 327 | _ => false, [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/gamestate/locations.rs:327:13 [INFO] [stdout] | [INFO] [stdout] 308 | Location::Null => false, [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] 309 | Location::Settlement(mut settle) => { [INFO] [stdout] | -------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 318 | Location::Puzzle(mut puzzle) => { [INFO] [stdout] | ---------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 327 | _ => false, [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `buy_item` is never read [INFO] [stdout] --> src/gamestate/locations.rs:421:17 [INFO] [stdout] | [INFO] [stdout] 421 | let mut buy_item = false; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/gamestate.rs:436:9 [INFO] [stdout] | [INFO] [stdout] 436 | _ => todo!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/gamestate.rs:436:9 [INFO] [stdout] | [INFO] [stdout] 418 | Location::Null => HashMap::new(), [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] 419 | Location::Settlement(mut settle) => { [INFO] [stdout] | -------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 435 | Location::Puzzle(_puzzle) => HashMap::new(), [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] 436 | _ => todo!(), [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/gamestate.rs:1347:13 [INFO] [stdout] | [INFO] [stdout] 1347 | _ => todo!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/gamestate.rs:1347:13 [INFO] [stdout] | [INFO] [stdout] 1338 | Interactable::Item(item) => { [INFO] [stdout] | ------------------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 1342 | Interactable::ShopItem(sitem) => {} [INFO] [stdout] | ----------------------------- matches some of the same values [INFO] [stdout] 1343 | Interactable::Enemy(enemy) => {} [INFO] [stdout] | -------------------------- matches some of the same values [INFO] [stdout] 1344 | Interactable::NPC(npc) => {} [INFO] [stdout] | ---------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 1347 | _ => todo!(), [INFO] [stdout] | ^ ...and 2 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `st` [INFO] [stdout] --> src/gamestate.rs:1332:19 [INFO] [stdout] | [INFO] [stdout] 1332 | let (pos, st) = self.gui.get_interactee(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_st` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sitem` [INFO] [stdout] --> src/gamestate.rs:1342:36 [INFO] [stdout] | [INFO] [stdout] 1342 | Interactable::ShopItem(sitem) => {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_sitem` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `enemy` [INFO] [stdout] --> src/gamestate.rs:1343:33 [INFO] [stdout] | [INFO] [stdout] 1343 | Interactable::Enemy(enemy) => {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `npc` [INFO] [stdout] --> src/gamestate.rs:1344:31 [INFO] [stdout] | [INFO] [stdout] 1344 | Interactable::NPC(npc) => {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_npc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `env_inter` [INFO] [stdout] --> src/gamestate.rs:1345:36 [INFO] [stdout] | [INFO] [stdout] 1345 | Interactable::EnvInter(env_inter) => {} [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_env_inter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `itm` [INFO] [stdout] --> src/gamestate.rs:1353:21 [INFO] [stdout] | [INFO] [stdout] 1353 | if let Some(itm) = self.items.remove(&(item.x, item.y)) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_itm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/gamestate.rs:1876:21 [INFO] [stdout] | [INFO] [stdout] 1876 | _ => "dunno".to_string(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/gamestate.rs:1876:21 [INFO] [stdout] | [INFO] [stdout] 1873 | PuzzleType::Maze => "Maze".to_string(), [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] 1874 | PuzzleType::Teleport => "Teleport".to_string(), [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 1875 | PuzzleType::Inverted => "Inverted".to_string(), [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 1876 | _ => "dunno".to_string(), [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/gamestate.rs:2053:13 [INFO] [stdout] | [INFO] [stdout] 2053 | _ => todo!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/gamestate.rs:2053:13 [INFO] [stdout] | [INFO] [stdout] 2044 | Interactable::Item(_) => self.item_interaction(), [INFO] [stdout] | --------------------- matches some of the same values [INFO] [stdout] 2045 | Interactable::ShopItem(si) => self.shop_item_interaction(si), [INFO] [stdout] | -------------------------- matches some of the same values [INFO] [stdout] 2046 | Interactable::NPC(_) => self.npc_interaction(), [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 2047 | Interactable::Enemy(e) => { [INFO] [stdout] | ---------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 2053 | _ => todo!(), [INFO] [stdout] | ^ ...and 2 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 87 | let mut game_state = GameState::new(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PALLETE` is never used [INFO] [stdout] --> src/enemy.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const PALLETE: &str = "empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ═ ║ ╣ ╠ ╩ ╦ ╗ ╝ ╚ ╔ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ ≡ ° × ¤ ¸ ¨ · ■ ¦ ... [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Tunnel`, `Inter`, `Exup`, `NPCM`, `Enemy`, and `NPC` are never constructed [INFO] [stdout] --> src/enums.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum Cells { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 22 | Tunnel, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | Inter, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | Exup, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | NPCM, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | Enemy, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 66 | NPC, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Cells` 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: multiple variants are never constructed [INFO] [stdout] --> src/enums.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 76 | pub enum Items { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 81 | IronShield, // +10 defence [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 82 | IronSword, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | IronClaymore, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 90 | SteelClaymore, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 91 | BronzeLongsword, [INFO] [stdout] 92 | IronLongsword, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 93 | SteelLongsword, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 94 | BronzeGreatsword, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 95 | IronGreatsword, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 96 | SteelGreatsword, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 97 | BronzeShortsword, [INFO] [stdout] 98 | IronShortsword, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 99 | SteelShortsword, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 100 | BasicStaff, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 101 | PineStaff, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 102 | WoodStaff, [INFO] [stdout] 103 | MapleStaff, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 104 | OakStaff, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 105 | BludgeonStaff, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 106 | GemStaff, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 107 | BronzeHeavyAxe, [INFO] [stdout] 108 | IronHeavyAxe, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 109 | SteelHeavyAxe, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 110 | BronzeLightAxe, [INFO] [stdout] 111 | IronLightAxe, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 112 | SteelLightAxe, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 113 | BronzePickAxe, [INFO] [stdout] 114 | IronPickAxe, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 115 | SteelPickAxe, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 116 | BronzePickHammer, [INFO] [stdout] 117 | IronPickHammer, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 118 | SteelPickHammer, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 119 | ShadowAxe, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 120 | BronzeWarAxe, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 121 | IronWarAxe, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 122 | SteelWarAxe, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | MagicRing, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 126 | WeirdCloak, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 127 | PhoenixFeather, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 128 | Antidote, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 129 | ShadowBoots, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Items` 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 `Armour`, `Wearing`, `Hands`, and `Head` are never constructed [INFO] [stdout] --> src/enums.rs:137:5 [INFO] [stdout] | [INFO] [stdout] 134 | pub enum Equip { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 137 | Armour, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 138 | Wearing, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 139 | Hands, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 140 | Head, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Equip` 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: variant `Attack` is never constructed [INFO] [stdout] --> src/enums.rs:149:5 [INFO] [stdout] | [INFO] [stdout] 147 | pub enum ItemEffect { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] 148 | Health, [INFO] [stdout] 149 | Attack, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ItemEffect` 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: variant `Null` is never constructed [INFO] [stdout] --> src/enums.rs:166:5 [INFO] [stdout] | [INFO] [stdout] 156 | pub enum Enemies { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 166 | Null, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Enemies` 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: variant `QuestNPC` is never constructed [INFO] [stdout] --> src/enums.rs:173:5 [INFO] [stdout] | [INFO] [stdout] 170 | pub enum NPCs { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 173 | QuestNPC, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NPCs` 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: variant `Null` is never constructed [INFO] [stdout] --> src/enums.rs:188:5 [INFO] [stdout] | [INFO] [stdout] 181 | pub enum NPCWrap { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 188 | Null, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NPCWrap` 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 `NPC` and `Fight` are never constructed [INFO] [stdout] --> src/enums.rs:199:5 [INFO] [stdout] | [INFO] [stdout] 192 | pub enum GUIMode { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 199 | NPC, [INFO] [stdout] | ^^^ [INFO] [stdout] 200 | Fight, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GUIMode` 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 `Menu` and `Null` are never constructed [INFO] [stdout] --> src/enums.rs:205:5 [INFO] [stdout] | [INFO] [stdout] 204 | pub enum GameMode { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] 205 | Menu, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 210 | Null, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GameMode` 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: variant `Message` is never constructed [INFO] [stdout] --> src/enums.rs:225:5 [INFO] [stdout] | [INFO] [stdout] 221 | pub enum FightSteps { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 225 | Message, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FightSteps` 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: variant `Null` is never constructed [INFO] [stdout] --> src/enums.rs:245:5 [INFO] [stdout] | [INFO] [stdout] 240 | pub enum EnvInter { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 245 | Null, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EnvInter` 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 `Med`, `Large`, and `Null` are never constructed [INFO] [stdout] --> src/enums.rs:276:5 [INFO] [stdout] | [INFO] [stdout] 274 | pub enum Settle { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] 275 | Small, [INFO] [stdout] 276 | Med, [INFO] [stdout] | ^^^ [INFO] [stdout] 277 | Large, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 278 | Null, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Settle` 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 `palette` is never used [INFO] [stdout] --> src/features.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const palette: &str = r#" [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GRASS_PATCH` is never used [INFO] [stdout] --> src/features.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const GRASS_PATCH: &str = r#" [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GRASS_PATCH_IN_CORNER` is never used [INFO] [stdout] --> src/features.rs:25:7 [INFO] [stdout] | [INFO] [stdout] 25 | const GRASS_PATCH_IN_CORNER: &str = r#" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GRASS_PATCH_OUT_CORNER` is never used [INFO] [stdout] --> src/features.rs:36:7 [INFO] [stdout] | [INFO] [stdout] 36 | const GRASS_PATCH_OUT_CORNER: &str = r#" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GRASS_PATCH_HORZ_EDGE` is never used [INFO] [stdout] --> src/features.rs:47:7 [INFO] [stdout] | [INFO] [stdout] 47 | const GRASS_PATCH_HORZ_EDGE: &str = r#" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GRASS_PATCH_VERT_EDGE` is never used [INFO] [stdout] --> src/features.rs:58:7 [INFO] [stdout] | [INFO] [stdout] 58 | const GRASS_PATCH_VERT_EDGE: &str = r#" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SHRUB_PATCH` is never used [INFO] [stdout] --> src/features.rs:69:7 [INFO] [stdout] | [INFO] [stdout] 69 | const SHRUB_PATCH: &str = r#" [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RUIN_BLOCK` is never used [INFO] [stdout] --> src/features.rs:80:7 [INFO] [stdout] | [INFO] [stdout] 80 | const RUIN_BLOCK: &str = r#" [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `make_ruin_feature` is never used [INFO] [stdout] --> src/features.rs:91:4 [INFO] [stdout] | [INFO] [stdout] 91 | fn make_ruin_feature() -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `features` is never read [INFO] [stdout] --> src/features.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct Features { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 97 | features: HashMap<(i64, i64), Vec>>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `new_ruin_feature` and `new_field_feature` are never used [INFO] [stdout] --> src/features.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 100 | impl Features { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn new_ruin_feature(&mut self, pos: (i64, i64)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn new_field_feature(&mut self, pos: (i64, i64)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/item.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl Item { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 46 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 289 | pub fn new_iron_claymore(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 314 | pub fn new_steel_claymore(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 364 | pub fn new_iron_longsword(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 389 | pub fn new_bronze_greatsword(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 439 | pub fn new_basic_staff(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 489 | pub fn new_bludgeon_staff(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 514 | pub fn new_gem_staff(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 639 | pub fn new_bronze_shadow_axe(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 664 | pub fn new_bronze_war_axe(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 716 | pub fn get_itype(&mut self) -> Items { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LSystem` is never constructed [INFO] [stdout] --> src/lsystems.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | struct LSystem { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main_rules` is never used [INFO] [stdout] --> src/lsystems.rs:8:4 [INFO] [stdout] | [INFO] [stdout] 8 | fn main_rules (axiom: String) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `side_quests` is never used [INFO] [stdout] --> src/lsystems.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn side_quests (axiom: String) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enemy_rules` is never used [INFO] [stdout] --> src/lsystems.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn enemy_rules (axiom: String) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `item_rules` is never used [INFO] [stdout] --> src/lsystems.rs:41:4 [INFO] [stdout] | [INFO] [stdout] 41 | fn item_rules (axiom: String) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LSystems` is never constructed [INFO] [stdout] --> src/lsystems.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 52 | pub struct LSystems { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `process_enemies` are never used [INFO] [stdout] --> src/lsystems.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl LSystems { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 60 | pub fn new () -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | fn process_enemies (&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `px`, `py`, and `dead_tunnels` are never read [INFO] [stdout] --> src/map.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Map { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 18 | pub cells: Vec>, [INFO] [stdout] 19 | pub px: usize, [INFO] [stdout] | ^^ [INFO] [stdout] 20 | pub py: usize, [INFO] [stdout] | ^^ [INFO] [stdout] 21 | pub tunnels: HashMap<(usize, usize), (usize, usize)>, [INFO] [stdout] 22 | pub dead_tunnels: HashMap<(usize, usize), (usize, usize)>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Map` 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: function `format_hashmap` is never used [INFO] [stdout] --> src/map.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn format_hashmap(hashmap: HashMap<(usize, usize), (usize, usize)>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `map_to_string` and `replace_dead_tunnels` are never used [INFO] [stdout] --> src/map.rs:181:8 [INFO] [stdout] | [INFO] [stdout] 42 | impl Map { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 181 | fn map_to_string(&self, cells: &Vec>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 422 | fn replace_dead_tunnels( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `INVENTORY_MAX` is never used [INFO] [stdout] --> src/player.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const INVENTORY_MAX: usize = 75; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `inv_full`, `move_up`, `move_down`, `move_left`, and `move_right` are never used [INFO] [stdout] --> src/player.rs:129:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl Player { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn inv_full(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | pub fn move_up(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn move_down(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | pub fn move_left(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | pub fn move_right(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `make_teleport_map` is never used [INFO] [stdout] --> src/puzzle.rs:81:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn make_teleport_map() -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `place_portals` is never used [INFO] [stdout] --> src/puzzle.rs:234:4 [INFO] [stdout] | [INFO] [stdout] 234 | fn place_portals(cells: Vec>) -> HashMap<(usize, usize), (usize, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `new_teleport`, and `set_pos` are never used [INFO] [stdout] --> src/puzzle.rs:324:12 [INFO] [stdout] | [INFO] [stdout] 323 | impl Puzzle { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 324 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | pub fn new_teleport(pos: (i64, i64)) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 392 | pub fn set_pos(&mut self, tpos: (i64, i64)) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/puzzles.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Puzzles { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 16 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `large_settlement_empty` is never used [INFO] [stdout] --> src/settlement.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const large_settlement_empty: &str = r#". [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `twn` is never used [INFO] [stdout] --> src/settlement.rs:121:7 [INFO] [stdout] | [INFO] [stdout] 121 | const twn: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `chnk` is never used [INFO] [stdout] --> src/settlement.rs:225:7 [INFO] [stdout] | [INFO] [stdout] 225 | const chnk: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `a` is never used [INFO] [stdout] --> src/settlement.rs:279:7 [INFO] [stdout] | [INFO] [stdout] 279 | const a: &str = r#" empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `gg` is never used [INFO] [stdout] --> src/settlement.rs:332:7 [INFO] [stdout] | [INFO] [stdout] 332 | const gg: &str = r#" [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `q` is never used [INFO] [stdout] --> src/settlement.rs:360:7 [INFO] [stdout] | [INFO] [stdout] 360 | const q: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `smt` is never used [INFO] [stdout] --> src/settlement.rs:388:7 [INFO] [stdout] | [INFO] [stdout] 388 | const smt: &str = r#"| [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `pal` is never used [INFO] [stdout] --> src/settlement.rs:502:7 [INFO] [stdout] | [INFO] [stdout] 502 | const pal: &str = "empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ═ ║ ╣ ╠ ╩ ╦ ╗ ╝ ╚ ╔ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ ≡ ° × ¤ ¸ ¨ · ■ ¦ ± ¡ ... [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `cave_o` is never used [INFO] [stdout] --> src/settlement.rs:680:7 [INFO] [stdout] | [INFO] [stdout] 680 | const cave_o: &str = r#"CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC|HealthPotion HealthPotion HealthPotion Sa... [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `palette` is never used [INFO] [stdout] --> src/settlement.rs:733:7 [INFO] [stdout] | [INFO] [stdout] 733 | const palette: &str = "empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ═ ║ ╣ ╠ ╩ ╦ ╗ ╝ ╚ ╔ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ ≡ ° × ¤ ¸ ¨ · ■ ¦ ... [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `set_pos`, `get_items_sent`, `tog_items_sent`, and `get_shops` are never used [INFO] [stdout] --> src/settlement.rs:1367:12 [INFO] [stdout] | [INFO] [stdout] 1366 | impl Settlement { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 1367 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1499 | pub fn set_pos(&mut self, tpos: (i64, i64)) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1519 | pub fn get_items_sent(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1523 | pub fn tog_items_sent(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1527 | pub fn get_shops(&mut self) -> HashMap { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `get_settle_pos` are never used [INFO] [stdout] --> src/settlements.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Settlements { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 14 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn get_settle_pos(&mut self) -> Vec<(i64, i64)> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `place_npcs` is never used [INFO] [stdout] --> src/gamestate.rs:98:4 [INFO] [stdout] | [INFO] [stdout] 98 | fn place_npcs(map: Vec>) -> HashMap<(usize, usize), NPCWrap> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `map_to_string` is never used [INFO] [stdout] --> src/gamestate.rs:264:4 [INFO] [stdout] | [INFO] [stdout] 264 | fn map_to_string(cells: &Vec>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_dir` is never used [INFO] [stdout] --> src/gamestate.rs:491:4 [INFO] [stdout] | [INFO] [stdout] 491 | fn get_dir(vec: (i64, i64)) -> (i8, i8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `features`, `level`, `l_rate`, and `loc_map` are never read [INFO] [stdout] --> src/gamestate.rs:510:5 [INFO] [stdout] | [INFO] [stdout] 502 | pub struct GameState { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 510 | features: Features, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 517 | level: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 518 | //l_systems: LSystems, [INFO] [stdout] 519 | l_rate: u64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 537 | loc_map: Option>>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `pursue_player` is never used [INFO] [stdout] --> src/gamestate/enemies.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl GameState { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn pursue_player() {} [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `palette` should have an upper case name [INFO] [stdout] --> src/features.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const palette: &str = r#" [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `PALETTE` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type [INFO] [stdout] --> src/gui/gui_man_draw.rs:1357:53 [INFO] [stdout] | [INFO] [stdout] 1357 | Cell::from(Span::styled(cell.clone(), ratatui::style::Style::default().fg(ratatui::style::Color::Yellow))) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(suspicious_double_ref_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type [INFO] [stdout] --> src/gui/gui_man_draw.rs:1359:40 [INFO] [stdout] | [INFO] [stdout] 1359 | Cell::from(cell.clone()) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `large_settlement_empty` should have an upper case name [INFO] [stdout] --> src/settlement.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const large_settlement_empty: &str = r#". [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `LARGE_SETTLEMENT_EMPTY` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `twn` should have an upper case name [INFO] [stdout] --> src/settlement.rs:121:7 [INFO] [stdout] | [INFO] [stdout] 121 | const twn: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `TWN` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `chnk` should have an upper case name [INFO] [stdout] --> src/settlement.rs:225:7 [INFO] [stdout] | [INFO] [stdout] 225 | const chnk: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `CHNK` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `a` should have an upper case name [INFO] [stdout] --> src/settlement.rs:279:7 [INFO] [stdout] | [INFO] [stdout] 279 | const a: &str = r#" empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stdout] | ^ help: convert the identifier to upper case: `A` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `gg` should have an upper case name [INFO] [stdout] --> src/settlement.rs:332:7 [INFO] [stdout] | [INFO] [stdout] 332 | const gg: &str = r#" [INFO] [stdout] | ^^ help: convert the identifier to upper case: `GG` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `q` should have an upper case name [INFO] [stdout] --> src/settlement.rs:360:7 [INFO] [stdout] | [INFO] [stdout] 360 | const q: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stdout] | ^ help: convert the identifier to upper case: `Q` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `smt` should have an upper case name [INFO] [stdout] --> src/settlement.rs:388:7 [INFO] [stdout] | [INFO] [stdout] 388 | const smt: &str = r#"| [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `SMT` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `itm_sh1` should have an upper case name [INFO] [stdout] --> src/settlement.rs:418:7 [INFO] [stdout] | [INFO] [stdout] 418 | const itm_sh1: &str = r#"CommNPC CommNPC CommNPC ShopNPC|HealthPotion HealthPotion HealthPotion Salve Salve Dowel WoodenBoard Apple Apple... [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `ITM_SH1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `itm_sh2` should have an upper case name [INFO] [stdout] --> src/settlement.rs:446:7 [INFO] [stdout] | [INFO] [stdout] 446 | const itm_sh2: &str = r#"ShopNPC ConvNPC|HealthPotion HealthPotion HealthPotion Salve Salve Dowel WoodenBoard Apple Apple Apple HealthPot... [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `ITM_SH2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `church1` should have an upper case name [INFO] [stdout] --> src/settlement.rs:474:7 [INFO] [stdout] | [INFO] [stdout] 474 | const church1: &str = r#"ConvNPC ShopNPC|Null|HealthPotion [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `CHURCH1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `pal` should have an upper case name [INFO] [stdout] --> src/settlement.rs:502:7 [INFO] [stdout] | [INFO] [stdout] 502 | const pal: &str = "empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ═ ║ ╣ ╠ ╩ ╦ ╗ ╝ ╚ ╔ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ ≡ ° × ¤ ¸ ¨ · ■ ¦ ± ¡ ... [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `PAL` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `guild1` should have an upper case name [INFO] [stdout] --> src/settlement.rs:504:7 [INFO] [stdout] | [INFO] [stdout] 504 | const guild1: &str = r#"ConvNPC CommNPC ConvNPC ShopNPC|Null|HealthPotion [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `GUILD1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `anchor1` should have an upper case name [INFO] [stdout] --> src/settlement.rs:532:7 [INFO] [stdout] | [INFO] [stdout] 532 | const anchor1: &str = r#"CommNPC|Null|Null [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `ANCHOR1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `item_shops` should have an upper case name [INFO] [stdout] --> src/settlement.rs:560:7 [INFO] [stdout] | [INFO] [stdout] 560 | const item_shops: [&str; 2] = [itm_sh1, itm_sh2]; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper case: `ITEM_SHOPS` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `guild_shops` should have an upper case name [INFO] [stdout] --> src/settlement.rs:562:7 [INFO] [stdout] | [INFO] [stdout] 562 | const guild_shops: [&str; 1] = [guild1]; [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper case: `GUILD_SHOPS` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `churches` should have an upper case name [INFO] [stdout] --> src/settlement.rs:564:7 [INFO] [stdout] | [INFO] [stdout] 564 | const churches: [&str; 1] = [church1]; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `CHURCHES` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `anchors` should have an upper case name [INFO] [stdout] --> src/settlement.rs:566:7 [INFO] [stdout] | [INFO] [stdout] 566 | const anchors: [&str; 1] = [anchor1]; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `ANCHORS` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `cave_o1` should have an upper case name [INFO] [stdout] --> src/settlement.rs:568:7 [INFO] [stdout] | [INFO] [stdout] 568 | const cave_o1: &str = r#"ShopNPC|HealthPotion BronzeLongsword BronzeLightAxe Salve Salve Dowel WoodenBoard BronzePickHammer BronzeShortsw... [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `CAVE_O1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `cave_o2` should have an upper case name [INFO] [stdout] --> src/settlement.rs:596:7 [INFO] [stdout] | [INFO] [stdout] 596 | const cave_o2: &str = r#"CommNPC|Null|Null [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `CAVE_O2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `cave_o3` should have an upper case name [INFO] [stdout] --> src/settlement.rs:624:7 [INFO] [stdout] | [INFO] [stdout] 624 | const cave_o3: &str = r#"CommNPC CommNPC CommNPC CommNPC ShopNPC CommNPC|Null|Null [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `CAVE_O3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `cave_o4` should have an upper case name [INFO] [stdout] --> src/settlement.rs:652:7 [INFO] [stdout] | [INFO] [stdout] 652 | const cave_o4: &str = r#"CommNPC ShopNPC|Null|Null [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `CAVE_O4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `cave_o` should have an upper case name [INFO] [stdout] --> src/settlement.rs:680:7 [INFO] [stdout] | [INFO] [stdout] 680 | const cave_o: &str = r#"CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC|HealthPotion HealthPotion HealthPotion Sa... [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `CAVE_O` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `palette` should have an upper case name [INFO] [stdout] --> src/settlement.rs:733:7 [INFO] [stdout] | [INFO] [stdout] 733 | const palette: &str = "empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ═ ║ ╣ ╠ ╩ ╦ ╗ ╝ ╚ ╔ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ ≡ ° × ¤ ¸ ¨ · ■ ¦ ... [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `PALETTE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `collision_cells` should have an upper case name [INFO] [stdout] --> src/gamestate.rs:440:7 [INFO] [stdout] | [INFO] [stdout] 440 | const collision_cells: [Cells; 35] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `COLLISION_CELLS` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gamestate.rs:1639:9 [INFO] [stdout] | [INFO] [stdout] 1639 | sfile.write_all(json.as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1639 | let _ = sfile.write_all(json.as_bytes()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gamestate.rs:1645:9 [INFO] [stdout] | [INFO] [stdout] 1645 | writeln!(nfile, "{}", filename.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.18s [INFO] running `Command { std: "docker" "inspect" "5f05b0b2b4276d8dc22be6db2b72b83b9a9a43518a66aebb6255d59e0bb28c49", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5f05b0b2b4276d8dc22be6db2b72b83b9a9a43518a66aebb6255d59e0bb28c49", kill_on_drop: false }` [INFO] [stdout] 5f05b0b2b4276d8dc22be6db2b72b83b9a9a43518a66aebb6255d59e0bb28c49 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-04-13" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 443b78e61935b5ef5f3f0d7cb51009b18f0e5683ee6113b23ebd4420c0a00087 [INFO] running `Command { std: "docker" "start" "-a" "443b78e61935b5ef5f3f0d7cb51009b18f0e5683ee6113b23ebd4420c0a00087", kill_on_drop: false }` [INFO] [stderr] Compiling dungeon v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::enums::Cells` [INFO] [stdout] --> src/enemy.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::enums::Cells; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Items` [INFO] [stdout] --> src/gui.rs:2:36 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::enums::{Cells, Enemies, Items, NPCWrap, GUIMode, Interactable, InterOpt, EncOpt, Equip, ItemEffect, EnvInter}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Equip`, `ItemEffect`, and `Items` [INFO] [stdout] --> src/gui/gui_man_draw.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::enums::{Items, NPCWrap, Interactable, InterOpt, EncOpt, Equip, ItemEffect, EnvInter}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/item.rs:4:13 [INFO] [stdout] | [INFO] [stdout] 4 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/map.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/player.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/puzzle.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/puzzles.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/settlements.rs:5:13 [INFO] [stdout] | [INFO] [stdout] 5 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/shop.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `new_shop_npc` [INFO] [stdout] --> src/gamestate.rs:8:46 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::npc::{new_comm_npc, new_conv_npc, new_shop_npc, BaseNPC, Convo, NPC}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Cells` [INFO] [stdout] --> src/gamestate/locations.rs:1:20 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::enums::{Cells, CompMode, GUIMode, GameMode, Interactable, Location, NPCWrap}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ratatui::symbols::border::QUADRANT_TOP_LEFT_TOP_RIGHT_BOTTOM_LEFT` [INFO] [stdout] --> src/gamestate/locations.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | use ratatui::symbols::border::QUADRANT_TOP_LEFT_TOP_RIGHT_BOTTOM_LEFT; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CommNPC` [INFO] [stdout] --> src/gamestate/npcs.rs:10:63 [INFO] [stdout] | [INFO] [stdout] 10 | new_comm_npc, new_conv_npc, new_spawn_npc, new_trade_npc, CommNPC, ConvNPC, Convo, ShopNPC, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/gamestate.rs:39:15 [INFO] [stdout] | [INFO] [stdout] 39 | use std::io::{self, BufRead, BufReader, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/features.rs:108:13 [INFO] [stdout] | [INFO] [stdout] 108 | let mut small_cells = vec![vec![Cells::Empty; 80]; 40]; [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/features.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | let mut small_cells = vec![vec![Cells::Empty; 80]; 40]; [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b` [INFO] [stdout] --> src/gui.rs:1372:21 [INFO] [stdout] | [INFO] [stdout] 1372 | let b = Block::bordered(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `area` [INFO] [stdout] --> src/gui.rs:1377:26 [INFO] [stdout] | [INFO] [stdout] 1377 | let [area] = vertical.areas(a); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `px` is never read [INFO] [stdout] --> src/map.rs:129:17 [INFO] [stdout] | [INFO] [stdout] 129 | let mut px = 0; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `py` is never read [INFO] [stdout] --> src/map.rs:130:17 [INFO] [stdout] | [INFO] [stdout] 130 | let mut py = 0; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `new_settle_pos` [INFO] [stdout] --> src/puzzles.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | let new_settle_pos = { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_settle_pos` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/settlement.rs:1298:5 [INFO] [stdout] | [INFO] [stdout] 1298 | mut npcs: HashMap<(usize, usize), NPCWrap>, [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cells` [INFO] [stdout] --> src/settlement.rs:1392:13 [INFO] [stdout] | [INFO] [stdout] 1392 | let cells = vec![vec![Cells::Null; 150]; 50]; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_cells` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `npcs` [INFO] [stdout] --> src/settlement.rs:1391:41 [INFO] [stdout] | [INFO] [stdout] 1391 | pub fn demo_settle(pos: (i64, i64), npcs: HashMap<(usize, usize), NPCWrap>) -> Self { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_npcs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/settlement.rs:1395:19 [INFO] [stdout] | [INFO] [stdout] 1395 | let (map, mut mpcs, sitems, items, env_inters) = build_small_settle(true); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `snpcs` [INFO] [stdout] --> src/settlement.rs:1441:21 [INFO] [stdout] | [INFO] [stdout] 1441 | let (shops, snpcs) = get_npc_shops(npcs.clone(), sitems); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_snpcs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/settlement.rs:1439:19 [INFO] [stdout] | [INFO] [stdout] 1439 | let (map, mut npcs, sitems, items, env_inters) = build_small_settle(false); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sh` [INFO] [stdout] --> src/settlement.rs:1479:14 [INFO] [stdout] | [INFO] [stdout] 1479 | for (sh, s) in &self.shops { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_sh` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/settlement.rs:1480:26 [INFO] [stdout] | [INFO] [stdout] 1480 | for ((x, y), i) in s.get_stock() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `win` is never read [INFO] [stdout] --> src/gamestate/enemies.rs:274:17 [INFO] [stdout] | [INFO] [stdout] 274 | let mut win = None; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/gamestate/locations.rs:327:13 [INFO] [stdout] | [INFO] [stdout] 327 | _ => false, [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/gamestate/locations.rs:327:13 [INFO] [stdout] | [INFO] [stdout] 308 | Location::Null => false, [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] 309 | Location::Settlement(mut settle) => { [INFO] [stdout] | -------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 318 | Location::Puzzle(mut puzzle) => { [INFO] [stdout] | ---------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 327 | _ => false, [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `buy_item` is never read [INFO] [stdout] --> src/gamestate/locations.rs:421:17 [INFO] [stdout] | [INFO] [stdout] 421 | let mut buy_item = false; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/gamestate.rs:436:9 [INFO] [stdout] | [INFO] [stdout] 436 | _ => todo!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/gamestate.rs:436:9 [INFO] [stdout] | [INFO] [stdout] 418 | Location::Null => HashMap::new(), [INFO] [stdout] | -------------- matches some of the same values [INFO] [stdout] 419 | Location::Settlement(mut settle) => { [INFO] [stdout] | -------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 435 | Location::Puzzle(_puzzle) => HashMap::new(), [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] 436 | _ => todo!(), [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/gamestate.rs:1347:13 [INFO] [stdout] | [INFO] [stdout] 1347 | _ => todo!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/gamestate.rs:1347:13 [INFO] [stdout] | [INFO] [stdout] 1338 | Interactable::Item(item) => { [INFO] [stdout] | ------------------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 1342 | Interactable::ShopItem(sitem) => {} [INFO] [stdout] | ----------------------------- matches some of the same values [INFO] [stdout] 1343 | Interactable::Enemy(enemy) => {} [INFO] [stdout] | -------------------------- matches some of the same values [INFO] [stdout] 1344 | Interactable::NPC(npc) => {} [INFO] [stdout] | ---------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 1347 | _ => todo!(), [INFO] [stdout] | ^ ...and 2 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `st` [INFO] [stdout] --> src/gamestate.rs:1332:19 [INFO] [stdout] | [INFO] [stdout] 1332 | let (pos, st) = self.gui.get_interactee(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_st` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sitem` [INFO] [stdout] --> src/gamestate.rs:1342:36 [INFO] [stdout] | [INFO] [stdout] 1342 | Interactable::ShopItem(sitem) => {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_sitem` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `enemy` [INFO] [stdout] --> src/gamestate.rs:1343:33 [INFO] [stdout] | [INFO] [stdout] 1343 | Interactable::Enemy(enemy) => {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `npc` [INFO] [stdout] --> src/gamestate.rs:1344:31 [INFO] [stdout] | [INFO] [stdout] 1344 | Interactable::NPC(npc) => {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_npc` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `env_inter` [INFO] [stdout] --> src/gamestate.rs:1345:36 [INFO] [stdout] | [INFO] [stdout] 1345 | Interactable::EnvInter(env_inter) => {} [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_env_inter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `itm` [INFO] [stdout] --> src/gamestate.rs:1353:21 [INFO] [stdout] | [INFO] [stdout] 1353 | if let Some(itm) = self.items.remove(&(item.x, item.y)) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_itm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/gamestate.rs:1876:21 [INFO] [stdout] | [INFO] [stdout] 1876 | _ => "dunno".to_string(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/gamestate.rs:1876:21 [INFO] [stdout] | [INFO] [stdout] 1873 | PuzzleType::Maze => "Maze".to_string(), [INFO] [stdout] | ---------------- matches some of the same values [INFO] [stdout] 1874 | PuzzleType::Teleport => "Teleport".to_string(), [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 1875 | PuzzleType::Inverted => "Inverted".to_string(), [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 1876 | _ => "dunno".to_string(), [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/gamestate.rs:2053:13 [INFO] [stdout] | [INFO] [stdout] 2053 | _ => todo!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/gamestate.rs:2053:13 [INFO] [stdout] | [INFO] [stdout] 2044 | Interactable::Item(_) => self.item_interaction(), [INFO] [stdout] | --------------------- matches some of the same values [INFO] [stdout] 2045 | Interactable::ShopItem(si) => self.shop_item_interaction(si), [INFO] [stdout] | -------------------------- matches some of the same values [INFO] [stdout] 2046 | Interactable::NPC(_) => self.npc_interaction(), [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] 2047 | Interactable::Enemy(e) => { [INFO] [stdout] | ---------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 2053 | _ => todo!(), [INFO] [stdout] | ^ ...and 2 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 87 | let mut game_state = GameState::new(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PALLETE` is never used [INFO] [stdout] --> src/enemy.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const PALLETE: &str = "empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ═ ║ ╣ ╠ ╩ ╦ ╗ ╝ ╚ ╔ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ ≡ ° × ¤ ¸ ¨ · ■ ¦ ... [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Tunnel`, `Inter`, `Exup`, `NPCM`, `Enemy`, and `NPC` are never constructed [INFO] [stdout] --> src/enums.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum Cells { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 22 | Tunnel, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | Inter, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | Exup, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | NPCM, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | Enemy, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 66 | NPC, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Cells` 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: multiple variants are never constructed [INFO] [stdout] --> src/enums.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 76 | pub enum Items { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 81 | IronShield, // +10 defence [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 82 | IronSword, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | IronClaymore, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 90 | SteelClaymore, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 91 | BronzeLongsword, [INFO] [stdout] 92 | IronLongsword, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 93 | SteelLongsword, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 94 | BronzeGreatsword, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 95 | IronGreatsword, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 96 | SteelGreatsword, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 97 | BronzeShortsword, [INFO] [stdout] 98 | IronShortsword, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 99 | SteelShortsword, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 100 | BasicStaff, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 101 | PineStaff, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 102 | WoodStaff, [INFO] [stdout] 103 | MapleStaff, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 104 | OakStaff, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 105 | BludgeonStaff, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 106 | GemStaff, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 107 | BronzeHeavyAxe, [INFO] [stdout] 108 | IronHeavyAxe, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 109 | SteelHeavyAxe, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 110 | BronzeLightAxe, [INFO] [stdout] 111 | IronLightAxe, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 112 | SteelLightAxe, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 113 | BronzePickAxe, [INFO] [stdout] 114 | IronPickAxe, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 115 | SteelPickAxe, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 116 | BronzePickHammer, [INFO] [stdout] 117 | IronPickHammer, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 118 | SteelPickHammer, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 119 | ShadowAxe, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 120 | BronzeWarAxe, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 121 | IronWarAxe, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 122 | SteelWarAxe, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | MagicRing, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 126 | WeirdCloak, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 127 | PhoenixFeather, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 128 | Antidote, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 129 | ShadowBoots, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Items` 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 `Armour`, `Wearing`, `Hands`, and `Head` are never constructed [INFO] [stdout] --> src/enums.rs:137:5 [INFO] [stdout] | [INFO] [stdout] 134 | pub enum Equip { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 137 | Armour, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 138 | Wearing, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 139 | Hands, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 140 | Head, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Equip` 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: variant `Attack` is never constructed [INFO] [stdout] --> src/enums.rs:149:5 [INFO] [stdout] | [INFO] [stdout] 147 | pub enum ItemEffect { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] 148 | Health, [INFO] [stdout] 149 | Attack, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ItemEffect` 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: variant `Null` is never constructed [INFO] [stdout] --> src/enums.rs:166:5 [INFO] [stdout] | [INFO] [stdout] 156 | pub enum Enemies { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 166 | Null, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Enemies` 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: variant `QuestNPC` is never constructed [INFO] [stdout] --> src/enums.rs:173:5 [INFO] [stdout] | [INFO] [stdout] 170 | pub enum NPCs { [INFO] [stdout] | ---- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 173 | QuestNPC, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NPCs` 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: variant `Null` is never constructed [INFO] [stdout] --> src/enums.rs:188:5 [INFO] [stdout] | [INFO] [stdout] 181 | pub enum NPCWrap { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 188 | Null, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NPCWrap` 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 `NPC` and `Fight` are never constructed [INFO] [stdout] --> src/enums.rs:199:5 [INFO] [stdout] | [INFO] [stdout] 192 | pub enum GUIMode { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 199 | NPC, [INFO] [stdout] | ^^^ [INFO] [stdout] 200 | Fight, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GUIMode` 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 `Menu` and `Null` are never constructed [INFO] [stdout] --> src/enums.rs:205:5 [INFO] [stdout] | [INFO] [stdout] 204 | pub enum GameMode { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] 205 | Menu, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 210 | Null, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GameMode` 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: variant `Message` is never constructed [INFO] [stdout] --> src/enums.rs:225:5 [INFO] [stdout] | [INFO] [stdout] 221 | pub enum FightSteps { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 225 | Message, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FightSteps` 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: variant `Null` is never constructed [INFO] [stdout] --> src/enums.rs:245:5 [INFO] [stdout] | [INFO] [stdout] 240 | pub enum EnvInter { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 245 | Null, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EnvInter` 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 `Med`, `Large`, and `Null` are never constructed [INFO] [stdout] --> src/enums.rs:276:5 [INFO] [stdout] | [INFO] [stdout] 274 | pub enum Settle { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] 275 | Small, [INFO] [stdout] 276 | Med, [INFO] [stdout] | ^^^ [INFO] [stdout] 277 | Large, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 278 | Null, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Settle` 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 `palette` is never used [INFO] [stdout] --> src/features.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const palette: &str = r#" [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GRASS_PATCH` is never used [INFO] [stdout] --> src/features.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const GRASS_PATCH: &str = r#" [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GRASS_PATCH_IN_CORNER` is never used [INFO] [stdout] --> src/features.rs:25:7 [INFO] [stdout] | [INFO] [stdout] 25 | const GRASS_PATCH_IN_CORNER: &str = r#" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GRASS_PATCH_OUT_CORNER` is never used [INFO] [stdout] --> src/features.rs:36:7 [INFO] [stdout] | [INFO] [stdout] 36 | const GRASS_PATCH_OUT_CORNER: &str = r#" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GRASS_PATCH_HORZ_EDGE` is never used [INFO] [stdout] --> src/features.rs:47:7 [INFO] [stdout] | [INFO] [stdout] 47 | const GRASS_PATCH_HORZ_EDGE: &str = r#" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GRASS_PATCH_VERT_EDGE` is never used [INFO] [stdout] --> src/features.rs:58:7 [INFO] [stdout] | [INFO] [stdout] 58 | const GRASS_PATCH_VERT_EDGE: &str = r#" [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SHRUB_PATCH` is never used [INFO] [stdout] --> src/features.rs:69:7 [INFO] [stdout] | [INFO] [stdout] 69 | const SHRUB_PATCH: &str = r#" [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RUIN_BLOCK` is never used [INFO] [stdout] --> src/features.rs:80:7 [INFO] [stdout] | [INFO] [stdout] 80 | const RUIN_BLOCK: &str = r#" [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `make_ruin_feature` is never used [INFO] [stdout] --> src/features.rs:91:4 [INFO] [stdout] | [INFO] [stdout] 91 | fn make_ruin_feature() -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `features` is never read [INFO] [stdout] --> src/features.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct Features { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 97 | features: HashMap<(i64, i64), Vec>>, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `new_ruin_feature` and `new_field_feature` are never used [INFO] [stdout] --> src/features.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 100 | impl Features { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn new_ruin_feature(&mut self, pos: (i64, i64)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn new_field_feature(&mut self, pos: (i64, i64)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/item.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl Item { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 46 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 289 | pub fn new_iron_claymore(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 314 | pub fn new_steel_claymore(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 364 | pub fn new_iron_longsword(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 389 | pub fn new_bronze_greatsword(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 439 | pub fn new_basic_staff(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 489 | pub fn new_bludgeon_staff(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 514 | pub fn new_gem_staff(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 639 | pub fn new_bronze_shadow_axe(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 664 | pub fn new_bronze_war_axe(x: usize, y: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 716 | pub fn get_itype(&mut self) -> Items { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LSystem` is never constructed [INFO] [stdout] --> src/lsystems.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | struct LSystem { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main_rules` is never used [INFO] [stdout] --> src/lsystems.rs:8:4 [INFO] [stdout] | [INFO] [stdout] 8 | fn main_rules (axiom: String) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `side_quests` is never used [INFO] [stdout] --> src/lsystems.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn side_quests (axiom: String) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enemy_rules` is never used [INFO] [stdout] --> src/lsystems.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn enemy_rules (axiom: String) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `item_rules` is never used [INFO] [stdout] --> src/lsystems.rs:41:4 [INFO] [stdout] | [INFO] [stdout] 41 | fn item_rules (axiom: String) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LSystems` is never constructed [INFO] [stdout] --> src/lsystems.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 52 | pub struct LSystems { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `process_enemies` are never used [INFO] [stdout] --> src/lsystems.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl LSystems { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 60 | pub fn new () -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | fn process_enemies (&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `px`, `py`, and `dead_tunnels` are never read [INFO] [stdout] --> src/map.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Map { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 18 | pub cells: Vec>, [INFO] [stdout] 19 | pub px: usize, [INFO] [stdout] | ^^ [INFO] [stdout] 20 | pub py: usize, [INFO] [stdout] | ^^ [INFO] [stdout] 21 | pub tunnels: HashMap<(usize, usize), (usize, usize)>, [INFO] [stdout] 22 | pub dead_tunnels: HashMap<(usize, usize), (usize, usize)>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Map` 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: function `format_hashmap` is never used [INFO] [stdout] --> src/map.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn format_hashmap(hashmap: HashMap<(usize, usize), (usize, usize)>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `map_to_string` and `replace_dead_tunnels` are never used [INFO] [stdout] --> src/map.rs:181:8 [INFO] [stdout] | [INFO] [stdout] 42 | impl Map { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 181 | fn map_to_string(&self, cells: &Vec>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 422 | fn replace_dead_tunnels( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `INVENTORY_MAX` is never used [INFO] [stdout] --> src/player.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const INVENTORY_MAX: usize = 75; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `inv_full`, `move_up`, `move_down`, `move_left`, and `move_right` are never used [INFO] [stdout] --> src/player.rs:129:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl Player { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn inv_full(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | pub fn move_up(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn move_down(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | pub fn move_left(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | pub fn move_right(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `make_teleport_map` is never used [INFO] [stdout] --> src/puzzle.rs:81:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn make_teleport_map() -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `place_portals` is never used [INFO] [stdout] --> src/puzzle.rs:234:4 [INFO] [stdout] | [INFO] [stdout] 234 | fn place_portals(cells: Vec>) -> HashMap<(usize, usize), (usize, usize)> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `new_teleport`, and `set_pos` are never used [INFO] [stdout] --> src/puzzle.rs:324:12 [INFO] [stdout] | [INFO] [stdout] 323 | impl Puzzle { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 324 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | pub fn new_teleport(pos: (i64, i64)) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 392 | pub fn set_pos(&mut self, tpos: (i64, i64)) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/puzzles.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl Puzzles { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 16 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `large_settlement_empty` is never used [INFO] [stdout] --> src/settlement.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const large_settlement_empty: &str = r#". [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `twn` is never used [INFO] [stdout] --> src/settlement.rs:121:7 [INFO] [stdout] | [INFO] [stdout] 121 | const twn: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `chnk` is never used [INFO] [stdout] --> src/settlement.rs:225:7 [INFO] [stdout] | [INFO] [stdout] 225 | const chnk: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `a` is never used [INFO] [stdout] --> src/settlement.rs:279:7 [INFO] [stdout] | [INFO] [stdout] 279 | const a: &str = r#" empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `gg` is never used [INFO] [stdout] --> src/settlement.rs:332:7 [INFO] [stdout] | [INFO] [stdout] 332 | const gg: &str = r#" [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `q` is never used [INFO] [stdout] --> src/settlement.rs:360:7 [INFO] [stdout] | [INFO] [stdout] 360 | const q: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `smt` is never used [INFO] [stdout] --> src/settlement.rs:388:7 [INFO] [stdout] | [INFO] [stdout] 388 | const smt: &str = r#"| [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `pal` is never used [INFO] [stdout] --> src/settlement.rs:502:7 [INFO] [stdout] | [INFO] [stdout] 502 | const pal: &str = "empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ═ ║ ╣ ╠ ╩ ╦ ╗ ╝ ╚ ╔ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ ≡ ° × ¤ ¸ ¨ · ■ ¦ ± ¡ ... [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `cave_o` is never used [INFO] [stdout] --> src/settlement.rs:680:7 [INFO] [stdout] | [INFO] [stdout] 680 | const cave_o: &str = r#"CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC|HealthPotion HealthPotion HealthPotion Sa... [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `palette` is never used [INFO] [stdout] --> src/settlement.rs:733:7 [INFO] [stdout] | [INFO] [stdout] 733 | const palette: &str = "empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ═ ║ ╣ ╠ ╩ ╦ ╗ ╝ ╚ ╔ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ ≡ ° × ¤ ¸ ¨ · ■ ¦ ... [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `set_pos`, `get_items_sent`, `tog_items_sent`, and `get_shops` are never used [INFO] [stdout] --> src/settlement.rs:1367:12 [INFO] [stdout] | [INFO] [stdout] 1366 | impl Settlement { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 1367 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 1499 | pub fn set_pos(&mut self, tpos: (i64, i64)) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1519 | pub fn get_items_sent(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1523 | pub fn tog_items_sent(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1527 | pub fn get_shops(&mut self) -> HashMap { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `get_settle_pos` are never used [INFO] [stdout] --> src/settlements.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl Settlements { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 14 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn get_settle_pos(&mut self) -> Vec<(i64, i64)> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `place_npcs` is never used [INFO] [stdout] --> src/gamestate.rs:98:4 [INFO] [stdout] | [INFO] [stdout] 98 | fn place_npcs(map: Vec>) -> HashMap<(usize, usize), NPCWrap> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `map_to_string` is never used [INFO] [stdout] --> src/gamestate.rs:264:4 [INFO] [stdout] | [INFO] [stdout] 264 | fn map_to_string(cells: &Vec>) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_dir` is never used [INFO] [stdout] --> src/gamestate.rs:491:4 [INFO] [stdout] | [INFO] [stdout] 491 | fn get_dir(vec: (i64, i64)) -> (i8, i8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `features`, `level`, `l_rate`, and `loc_map` are never read [INFO] [stdout] --> src/gamestate.rs:510:5 [INFO] [stdout] | [INFO] [stdout] 502 | pub struct GameState { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 510 | features: Features, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 517 | level: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 518 | //l_systems: LSystems, [INFO] [stdout] 519 | l_rate: u64, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 537 | loc_map: Option>>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `pursue_player` is never used [INFO] [stdout] --> src/gamestate/enemies.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl GameState { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 63 | pub fn pursue_player() {} [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `palette` should have an upper case name [INFO] [stdout] --> src/features.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const palette: &str = r#" [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `PALETTE` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type [INFO] [stdout] --> src/gui/gui_man_draw.rs:1357:53 [INFO] [stdout] | [INFO] [stdout] 1357 | Cell::from(Span::styled(cell.clone(), ratatui::style::Style::default().fg(ratatui::style::Color::Yellow))) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(suspicious_double_ref_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type [INFO] [stdout] --> src/gui/gui_man_draw.rs:1359:40 [INFO] [stdout] | [INFO] [stdout] 1359 | Cell::from(cell.clone()) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `large_settlement_empty` should have an upper case name [INFO] [stdout] --> src/settlement.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const large_settlement_empty: &str = r#". [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `LARGE_SETTLEMENT_EMPTY` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `twn` should have an upper case name [INFO] [stdout] --> src/settlement.rs:121:7 [INFO] [stdout] | [INFO] [stdout] 121 | const twn: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `TWN` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `chnk` should have an upper case name [INFO] [stdout] --> src/settlement.rs:225:7 [INFO] [stdout] | [INFO] [stdout] 225 | const chnk: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stdout] | ^^^^ help: convert the identifier to upper case: `CHNK` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `a` should have an upper case name [INFO] [stdout] --> src/settlement.rs:279:7 [INFO] [stdout] | [INFO] [stdout] 279 | const a: &str = r#" empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stdout] | ^ help: convert the identifier to upper case: `A` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `gg` should have an upper case name [INFO] [stdout] --> src/settlement.rs:332:7 [INFO] [stdout] | [INFO] [stdout] 332 | const gg: &str = r#" [INFO] [stdout] | ^^ help: convert the identifier to upper case: `GG` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `q` should have an upper case name [INFO] [stdout] --> src/settlement.rs:360:7 [INFO] [stdout] | [INFO] [stdout] 360 | const q: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stdout] | ^ help: convert the identifier to upper case: `Q` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `smt` should have an upper case name [INFO] [stdout] --> src/settlement.rs:388:7 [INFO] [stdout] | [INFO] [stdout] 388 | const smt: &str = r#"| [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `SMT` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `itm_sh1` should have an upper case name [INFO] [stdout] --> src/settlement.rs:418:7 [INFO] [stdout] | [INFO] [stdout] 418 | const itm_sh1: &str = r#"CommNPC CommNPC CommNPC ShopNPC|HealthPotion HealthPotion HealthPotion Salve Salve Dowel WoodenBoard Apple Apple... [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `ITM_SH1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `itm_sh2` should have an upper case name [INFO] [stdout] --> src/settlement.rs:446:7 [INFO] [stdout] | [INFO] [stdout] 446 | const itm_sh2: &str = r#"ShopNPC ConvNPC|HealthPotion HealthPotion HealthPotion Salve Salve Dowel WoodenBoard Apple Apple Apple HealthPot... [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `ITM_SH2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `church1` should have an upper case name [INFO] [stdout] --> src/settlement.rs:474:7 [INFO] [stdout] | [INFO] [stdout] 474 | const church1: &str = r#"ConvNPC ShopNPC|Null|HealthPotion [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `CHURCH1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `pal` should have an upper case name [INFO] [stdout] --> src/settlement.rs:502:7 [INFO] [stdout] | [INFO] [stdout] 502 | const pal: &str = "empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ═ ║ ╣ ╠ ╩ ╦ ╗ ╝ ╚ ╔ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ ≡ ° × ¤ ¸ ¨ · ■ ¦ ± ¡ ... [INFO] [stdout] | ^^^ help: convert the identifier to upper case: `PAL` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `guild1` should have an upper case name [INFO] [stdout] --> src/settlement.rs:504:7 [INFO] [stdout] | [INFO] [stdout] 504 | const guild1: &str = r#"ConvNPC CommNPC ConvNPC ShopNPC|Null|HealthPotion [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `GUILD1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `anchor1` should have an upper case name [INFO] [stdout] --> src/settlement.rs:532:7 [INFO] [stdout] | [INFO] [stdout] 532 | const anchor1: &str = r#"CommNPC|Null|Null [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `ANCHOR1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `item_shops` should have an upper case name [INFO] [stdout] --> src/settlement.rs:560:7 [INFO] [stdout] | [INFO] [stdout] 560 | const item_shops: [&str; 2] = [itm_sh1, itm_sh2]; [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper case: `ITEM_SHOPS` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `guild_shops` should have an upper case name [INFO] [stdout] --> src/settlement.rs:562:7 [INFO] [stdout] | [INFO] [stdout] 562 | const guild_shops: [&str; 1] = [guild1]; [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper case: `GUILD_SHOPS` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `churches` should have an upper case name [INFO] [stdout] --> src/settlement.rs:564:7 [INFO] [stdout] | [INFO] [stdout] 564 | const churches: [&str; 1] = [church1]; [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper case: `CHURCHES` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `anchors` should have an upper case name [INFO] [stdout] --> src/settlement.rs:566:7 [INFO] [stdout] | [INFO] [stdout] 566 | const anchors: [&str; 1] = [anchor1]; [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `ANCHORS` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `cave_o1` should have an upper case name [INFO] [stdout] --> src/settlement.rs:568:7 [INFO] [stdout] | [INFO] [stdout] 568 | const cave_o1: &str = r#"ShopNPC|HealthPotion BronzeLongsword BronzeLightAxe Salve Salve Dowel WoodenBoard BronzePickHammer BronzeShortsw... [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `CAVE_O1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `cave_o2` should have an upper case name [INFO] [stdout] --> src/settlement.rs:596:7 [INFO] [stdout] | [INFO] [stdout] 596 | const cave_o2: &str = r#"CommNPC|Null|Null [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `CAVE_O2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `cave_o3` should have an upper case name [INFO] [stdout] --> src/settlement.rs:624:7 [INFO] [stdout] | [INFO] [stdout] 624 | const cave_o3: &str = r#"CommNPC CommNPC CommNPC CommNPC ShopNPC CommNPC|Null|Null [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `CAVE_O3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `cave_o4` should have an upper case name [INFO] [stdout] --> src/settlement.rs:652:7 [INFO] [stdout] | [INFO] [stdout] 652 | const cave_o4: &str = r#"CommNPC ShopNPC|Null|Null [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `CAVE_O4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `cave_o` should have an upper case name [INFO] [stdout] --> src/settlement.rs:680:7 [INFO] [stdout] | [INFO] [stdout] 680 | const cave_o: &str = r#"CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC|HealthPotion HealthPotion HealthPotion Sa... [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper case: `CAVE_O` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `palette` should have an upper case name [INFO] [stdout] --> src/settlement.rs:733:7 [INFO] [stdout] | [INFO] [stdout] 733 | const palette: &str = "empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ═ ║ ╣ ╠ ╩ ╦ ╗ ╝ ╚ ╔ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ ≡ ° × ¤ ¸ ¨ · ■ ¦ ... [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper case: `PALETTE` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `collision_cells` should have an upper case name [INFO] [stdout] --> src/gamestate.rs:440:7 [INFO] [stdout] | [INFO] [stdout] 440 | const collision_cells: [Cells; 35] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `COLLISION_CELLS` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gamestate.rs:1639:9 [INFO] [stdout] | [INFO] [stdout] 1639 | sfile.write_all(json.as_bytes()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1639 | let _ = sfile.write_all(json.as_bytes()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gamestate.rs:1645:9 [INFO] [stdout] | [INFO] [stdout] 1645 | writeln!(nfile, "{}", filename.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.23s [INFO] running `Command { std: "docker" "inspect" "443b78e61935b5ef5f3f0d7cb51009b18f0e5683ee6113b23ebd4420c0a00087", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "443b78e61935b5ef5f3f0d7cb51009b18f0e5683ee6113b23ebd4420c0a00087", kill_on_drop: false }` [INFO] [stdout] 443b78e61935b5ef5f3f0d7cb51009b18f0e5683ee6113b23ebd4420c0a00087 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-04-13" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 8c7b07a190b12840c5895ab8f21068313f16a19b5945a454173deaea34f9dc17 [INFO] running `Command { std: "docker" "start" "-a" "8c7b07a190b12840c5895ab8f21068313f16a19b5945a454173deaea34f9dc17", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `crate::enums::Cells` [INFO] [stderr] --> src/enemy.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::enums::Cells; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Items` [INFO] [stderr] --> src/gui.rs:2:36 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::enums::{Cells, Enemies, Items, NPCWrap, GUIMode, Interactable, InterOpt, EncOpt, Equip, ItemEffect, EnvInter}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Equip`, `ItemEffect`, and `Items` [INFO] [stderr] --> src/gui/gui_man_draw.rs:1:20 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::enums::{Items, NPCWrap, Interactable, InterOpt, EncOpt, Equip, ItemEffect, EnvInter}; [INFO] [stderr] | ^^^^^ ^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stderr] --> src/item.rs:4:13 [INFO] [stderr] | [INFO] [stderr] 4 | use serde::{Deserialize, Serialize}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stderr] --> src/map.rs:13:13 [INFO] [stderr] | [INFO] [stderr] 13 | use serde::{Deserialize, Serialize}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stderr] --> src/player.rs:6:13 [INFO] [stderr] | [INFO] [stderr] 6 | use serde::{Deserialize, Serialize}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stderr] --> src/puzzle.rs:8:13 [INFO] [stderr] | [INFO] [stderr] 8 | use serde::{Deserialize, Serialize}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stderr] --> src/puzzles.rs:7:13 [INFO] [stderr] | [INFO] [stderr] 7 | use serde::{Deserialize, Serialize}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stderr] --> src/settlements.rs:5:13 [INFO] [stderr] | [INFO] [stderr] 5 | use serde::{Deserialize, Serialize}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stderr] --> src/shop.rs:6:13 [INFO] [stderr] | [INFO] [stderr] 6 | use serde::{Deserialize, Serialize}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `new_shop_npc` [INFO] [stderr] --> src/gamestate.rs:8:46 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::npc::{new_comm_npc, new_conv_npc, new_shop_npc, BaseNPC, Convo, NPC}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Cells` [INFO] [stderr] --> src/gamestate/locations.rs:1:20 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::enums::{Cells, CompMode, GUIMode, GameMode, Interactable, Location, NPCWrap}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ratatui::symbols::border::QUADRANT_TOP_LEFT_TOP_RIGHT_BOTTOM_LEFT` [INFO] [stderr] --> src/gamestate/locations.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | use ratatui::symbols::border::QUADRANT_TOP_LEFT_TOP_RIGHT_BOTTOM_LEFT; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `CommNPC` [INFO] [stderr] --> src/gamestate/npcs.rs:10:63 [INFO] [stderr] | [INFO] [stderr] 10 | new_comm_npc, new_conv_npc, new_spawn_npc, new_trade_npc, CommNPC, ConvNPC, Convo, ShopNPC, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self` [INFO] [stderr] --> src/gamestate.rs:39:15 [INFO] [stderr] | [INFO] [stderr] 39 | use std::io::{self, BufRead, BufReader, Write}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/features.rs:108:13 [INFO] [stderr] | [INFO] [stderr] 108 | let mut small_cells = vec![vec![Cells::Empty; 80]; 40]; [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/features.rs:113:13 [INFO] [stderr] | [INFO] [stderr] 113 | let mut small_cells = vec![vec![Cells::Empty; 80]; 40]; [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `b` [INFO] [stderr] --> src/gui.rs:1372:21 [INFO] [stderr] | [INFO] [stderr] 1372 | let b = Block::bordered(); [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_b` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `area` [INFO] [stderr] --> src/gui.rs:1377:26 [INFO] [stderr] | [INFO] [stderr] 1377 | let [area] = vertical.areas(a); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_area` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `px` is never read [INFO] [stderr] --> src/map.rs:129:17 [INFO] [stderr] | [INFO] [stderr] 129 | let mut px = 0; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] = note: `#[warn(unused_assignments)]` on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `py` is never read [INFO] [stderr] --> src/map.rs:130:17 [INFO] [stderr] | [INFO] [stderr] 130 | let mut py = 0; [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `new_settle_pos` [INFO] [stderr] --> src/puzzles.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | let new_settle_pos = { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_settle_pos` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/settlement.rs:1298:5 [INFO] [stderr] | [INFO] [stderr] 1298 | mut npcs: HashMap<(usize, usize), NPCWrap>, [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cells` [INFO] [stderr] --> src/settlement.rs:1392:13 [INFO] [stderr] | [INFO] [stderr] 1392 | let cells = vec![vec![Cells::Null; 150]; 50]; [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_cells` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `npcs` [INFO] [stderr] --> src/settlement.rs:1391:41 [INFO] [stderr] | [INFO] [stderr] 1391 | pub fn demo_settle(pos: (i64, i64), npcs: HashMap<(usize, usize), NPCWrap>) -> Self { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_npcs` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/settlement.rs:1395:19 [INFO] [stderr] | [INFO] [stderr] 1395 | let (map, mut mpcs, sitems, items, env_inters) = build_small_settle(true); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `snpcs` [INFO] [stderr] --> src/settlement.rs:1441:21 [INFO] [stderr] | [INFO] [stderr] 1441 | let (shops, snpcs) = get_npc_shops(npcs.clone(), sitems); [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_snpcs` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/settlement.rs:1439:19 [INFO] [stderr] | [INFO] [stderr] 1439 | let (map, mut npcs, sitems, items, env_inters) = build_small_settle(false); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sh` [INFO] [stderr] --> src/settlement.rs:1479:14 [INFO] [stderr] | [INFO] [stderr] 1479 | for (sh, s) in &self.shops { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_sh` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/settlement.rs:1480:26 [INFO] [stderr] | [INFO] [stderr] 1480 | for ((x, y), i) in s.get_stock() { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `win` is never read [INFO] [stderr] --> src/gamestate/enemies.rs:274:17 [INFO] [stderr] | [INFO] [stderr] 274 | let mut win = None; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/gamestate/locations.rs:327:13 [INFO] [stderr] | [INFO] [stderr] 327 | _ => false, [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] note: multiple earlier patterns match some of the same values [INFO] [stderr] --> src/gamestate/locations.rs:327:13 [INFO] [stderr] | [INFO] [stderr] 308 | Location::Null => false, [INFO] [stderr] | -------------- matches some of the same values [INFO] [stderr] 309 | Location::Settlement(mut settle) => { [INFO] [stderr] | -------------------------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 318 | Location::Puzzle(mut puzzle) => { [INFO] [stderr] | ---------------------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 327 | _ => false, [INFO] [stderr] | ^ collectively making this unreachable [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `buy_item` is never read [INFO] [stderr] --> src/gamestate/locations.rs:421:17 [INFO] [stderr] | [INFO] [stderr] 421 | let mut buy_item = false; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/gamestate.rs:436:9 [INFO] [stderr] | [INFO] [stderr] 436 | _ => todo!(), [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] note: multiple earlier patterns match some of the same values [INFO] [stderr] --> src/gamestate.rs:436:9 [INFO] [stderr] | [INFO] [stderr] 418 | Location::Null => HashMap::new(), [INFO] [stderr] | -------------- matches some of the same values [INFO] [stderr] 419 | Location::Settlement(mut settle) => { [INFO] [stderr] | -------------------------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 435 | Location::Puzzle(_puzzle) => HashMap::new(), [INFO] [stderr] | ------------------------- matches some of the same values [INFO] [stderr] 436 | _ => todo!(), [INFO] [stderr] | ^ collectively making this unreachable [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/gamestate.rs:1347:13 [INFO] [stderr] | [INFO] [stderr] 1347 | _ => todo!(), [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] note: multiple earlier patterns match some of the same values [INFO] [stderr] --> src/gamestate.rs:1347:13 [INFO] [stderr] | [INFO] [stderr] 1338 | Interactable::Item(item) => { [INFO] [stderr] | ------------------------ matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 1342 | Interactable::ShopItem(sitem) => {} [INFO] [stderr] | ----------------------------- matches some of the same values [INFO] [stderr] 1343 | Interactable::Enemy(enemy) => {} [INFO] [stderr] | -------------------------- matches some of the same values [INFO] [stderr] 1344 | Interactable::NPC(npc) => {} [INFO] [stderr] | ---------------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 1347 | _ => todo!(), [INFO] [stderr] | ^ ...and 2 other patterns collectively make this unreachable [INFO] [stderr] [INFO] [stderr] warning: unused variable: `st` [INFO] [stderr] --> src/gamestate.rs:1332:19 [INFO] [stderr] | [INFO] [stderr] 1332 | let (pos, st) = self.gui.get_interactee(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_st` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sitem` [INFO] [stderr] --> src/gamestate.rs:1342:36 [INFO] [stderr] | [INFO] [stderr] 1342 | Interactable::ShopItem(sitem) => {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_sitem` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `enemy` [INFO] [stderr] --> src/gamestate.rs:1343:33 [INFO] [stderr] | [INFO] [stderr] 1343 | Interactable::Enemy(enemy) => {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `npc` [INFO] [stderr] --> src/gamestate.rs:1344:31 [INFO] [stderr] | [INFO] [stderr] 1344 | Interactable::NPC(npc) => {} [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_npc` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `env_inter` [INFO] [stderr] --> src/gamestate.rs:1345:36 [INFO] [stderr] | [INFO] [stderr] 1345 | Interactable::EnvInter(env_inter) => {} [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_env_inter` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `itm` [INFO] [stderr] --> src/gamestate.rs:1353:21 [INFO] [stderr] | [INFO] [stderr] 1353 | if let Some(itm) = self.items.remove(&(item.x, item.y)) {} [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_itm` [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/gamestate.rs:1876:21 [INFO] [stderr] | [INFO] [stderr] 1876 | _ => "dunno".to_string(), [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] note: multiple earlier patterns match some of the same values [INFO] [stderr] --> src/gamestate.rs:1876:21 [INFO] [stderr] | [INFO] [stderr] 1873 | PuzzleType::Maze => "Maze".to_string(), [INFO] [stderr] | ---------------- matches some of the same values [INFO] [stderr] 1874 | PuzzleType::Teleport => "Teleport".to_string(), [INFO] [stderr] | -------------------- matches some of the same values [INFO] [stderr] 1875 | PuzzleType::Inverted => "Inverted".to_string(), [INFO] [stderr] | -------------------- matches some of the same values [INFO] [stderr] 1876 | _ => "dunno".to_string(), [INFO] [stderr] | ^ collectively making this unreachable [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/gamestate.rs:2053:13 [INFO] [stderr] | [INFO] [stderr] 2053 | _ => todo!(), [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] note: multiple earlier patterns match some of the same values [INFO] [stderr] --> src/gamestate.rs:2053:13 [INFO] [stderr] | [INFO] [stderr] 2044 | Interactable::Item(_) => self.item_interaction(), [INFO] [stderr] | --------------------- matches some of the same values [INFO] [stderr] 2045 | Interactable::ShopItem(si) => self.shop_item_interaction(si), [INFO] [stderr] | -------------------------- matches some of the same values [INFO] [stderr] 2046 | Interactable::NPC(_) => self.npc_interaction(), [INFO] [stderr] | -------------------- matches some of the same values [INFO] [stderr] 2047 | Interactable::Enemy(e) => { [INFO] [stderr] | ---------------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 2053 | _ => todo!(), [INFO] [stderr] | ^ ...and 2 other patterns collectively make this unreachable [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | let mut game_state = GameState::new(); [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: constant `PALLETE` is never used [INFO] [stderr] --> src/enemy.rs:4:7 [INFO] [stderr] | [INFO] [stderr] 4 | const PALLETE: &str = "empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ═ ║ ╣ ╠ ╩ ╦ ╗ ╝ ╚ ╔ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ ≡ ° × ¤ ¸ ¨ · ■ ¦ ... [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variants `Tunnel`, `Inter`, `Exup`, `NPCM`, `Enemy`, and `NPC` are never constructed [INFO] [stderr] --> src/enums.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 10 | pub enum Cells { [INFO] [stderr] | ----- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 22 | Tunnel, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 51 | Inter, [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 55 | Exup, [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 59 | NPCM, [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 65 | Enemy, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 66 | NPC, [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Cells` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: multiple variants are never constructed [INFO] [stderr] --> src/enums.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 76 | pub enum Items { [INFO] [stderr] | ----- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 81 | IronShield, // +10 defence [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 82 | IronSword, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 89 | IronClaymore, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 90 | SteelClaymore, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 91 | BronzeLongsword, [INFO] [stderr] 92 | IronLongsword, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 93 | SteelLongsword, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 94 | BronzeGreatsword, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] 95 | IronGreatsword, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 96 | SteelGreatsword, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 97 | BronzeShortsword, [INFO] [stderr] 98 | IronShortsword, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 99 | SteelShortsword, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 100 | BasicStaff, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 101 | PineStaff, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 102 | WoodStaff, [INFO] [stderr] 103 | MapleStaff, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 104 | OakStaff, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 105 | BludgeonStaff, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 106 | GemStaff, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 107 | BronzeHeavyAxe, [INFO] [stderr] 108 | IronHeavyAxe, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 109 | SteelHeavyAxe, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 110 | BronzeLightAxe, [INFO] [stderr] 111 | IronLightAxe, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 112 | SteelLightAxe, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 113 | BronzePickAxe, [INFO] [stderr] 114 | IronPickAxe, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 115 | SteelPickAxe, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 116 | BronzePickHammer, [INFO] [stderr] 117 | IronPickHammer, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 118 | SteelPickHammer, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 119 | ShadowAxe, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 120 | BronzeWarAxe, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 121 | IronWarAxe, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 122 | SteelWarAxe, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 125 | MagicRing, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 126 | WeirdCloak, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 127 | PhoenixFeather, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 128 | Antidote, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 129 | ShadowBoots, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Items` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `Armour`, `Wearing`, `Hands`, and `Head` are never constructed [INFO] [stderr] --> src/enums.rs:137:5 [INFO] [stderr] | [INFO] [stderr] 134 | pub enum Equip { [INFO] [stderr] | ----- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 137 | Armour, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 138 | Wearing, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 139 | Hands, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 140 | Head, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Equip` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `Attack` is never constructed [INFO] [stderr] --> src/enums.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 147 | pub enum ItemEffect { [INFO] [stderr] | ---------- variant in this enum [INFO] [stderr] 148 | Health, [INFO] [stderr] 149 | Attack, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ItemEffect` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `Null` is never constructed [INFO] [stderr] --> src/enums.rs:166:5 [INFO] [stderr] | [INFO] [stderr] 156 | pub enum Enemies { [INFO] [stderr] | ------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 166 | Null, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Enemies` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `QuestNPC` is never constructed [INFO] [stderr] --> src/enums.rs:173:5 [INFO] [stderr] | [INFO] [stderr] 170 | pub enum NPCs { [INFO] [stderr] | ---- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 173 | QuestNPC, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `NPCs` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `Null` is never constructed [INFO] [stderr] --> src/enums.rs:188:5 [INFO] [stderr] | [INFO] [stderr] 181 | pub enum NPCWrap { [INFO] [stderr] | ------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 188 | Null, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `NPCWrap` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `NPC` and `Fight` are never constructed [INFO] [stderr] --> src/enums.rs:199:5 [INFO] [stderr] | [INFO] [stderr] 192 | pub enum GUIMode { [INFO] [stderr] | ------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 199 | NPC, [INFO] [stderr] | ^^^ [INFO] [stderr] 200 | Fight, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `GUIMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `Menu` and `Null` are never constructed [INFO] [stderr] --> src/enums.rs:205:5 [INFO] [stderr] | [INFO] [stderr] 204 | pub enum GameMode { [INFO] [stderr] | -------- variants in this enum [INFO] [stderr] 205 | Menu, [INFO] [stderr] | ^^^^ [INFO] [stderr] ... [INFO] [stderr] 210 | Null, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `GameMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `Message` is never constructed [INFO] [stderr] --> src/enums.rs:225:5 [INFO] [stderr] | [INFO] [stderr] 221 | pub enum FightSteps { [INFO] [stderr] | ---------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 225 | Message, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `FightSteps` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `Null` is never constructed [INFO] [stderr] --> src/enums.rs:245:5 [INFO] [stderr] | [INFO] [stderr] 240 | pub enum EnvInter { [INFO] [stderr] | -------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 245 | Null, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `EnvInter` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `Med`, `Large`, and `Null` are never constructed [INFO] [stderr] --> src/enums.rs:276:5 [INFO] [stderr] | [INFO] [stderr] 274 | pub enum Settle { [INFO] [stderr] | ------ variants in this enum [INFO] [stderr] 275 | Small, [INFO] [stderr] 276 | Med, [INFO] [stderr] | ^^^ [INFO] [stderr] 277 | Large, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 278 | Null, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Settle` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: constant `palette` is never used [INFO] [stderr] --> src/features.rs:4:7 [INFO] [stderr] | [INFO] [stderr] 4 | const palette: &str = r#" [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `GRASS_PATCH` is never used [INFO] [stderr] --> src/features.rs:14:7 [INFO] [stderr] | [INFO] [stderr] 14 | const GRASS_PATCH: &str = r#" [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `GRASS_PATCH_IN_CORNER` is never used [INFO] [stderr] --> src/features.rs:25:7 [INFO] [stderr] | [INFO] [stderr] 25 | const GRASS_PATCH_IN_CORNER: &str = r#" [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `GRASS_PATCH_OUT_CORNER` is never used [INFO] [stderr] --> src/features.rs:36:7 [INFO] [stderr] | [INFO] [stderr] 36 | const GRASS_PATCH_OUT_CORNER: &str = r#" [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `GRASS_PATCH_HORZ_EDGE` is never used [INFO] [stderr] --> src/features.rs:47:7 [INFO] [stderr] | [INFO] [stderr] 47 | const GRASS_PATCH_HORZ_EDGE: &str = r#" [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `GRASS_PATCH_VERT_EDGE` is never used [INFO] [stderr] --> src/features.rs:58:7 [INFO] [stderr] | [INFO] [stderr] 58 | const GRASS_PATCH_VERT_EDGE: &str = r#" [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `SHRUB_PATCH` is never used [INFO] [stderr] --> src/features.rs:69:7 [INFO] [stderr] | [INFO] [stderr] 69 | const SHRUB_PATCH: &str = r#" [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `RUIN_BLOCK` is never used [INFO] [stderr] --> src/features.rs:80:7 [INFO] [stderr] | [INFO] [stderr] 80 | const RUIN_BLOCK: &str = r#" [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `make_ruin_feature` is never used [INFO] [stderr] --> src/features.rs:91:4 [INFO] [stderr] | [INFO] [stderr] 91 | fn make_ruin_feature() -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `features` is never read [INFO] [stderr] --> src/features.rs:97:5 [INFO] [stderr] | [INFO] [stderr] 96 | pub struct Features { [INFO] [stderr] | -------- field in this struct [INFO] [stderr] 97 | features: HashMap<(i64, i64), Vec>>, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `new_ruin_feature` and `new_field_feature` are never used [INFO] [stderr] --> src/features.rs:107:12 [INFO] [stderr] | [INFO] [stderr] 100 | impl Features { [INFO] [stderr] | ------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 107 | pub fn new_ruin_feature(&mut self, pos: (i64, i64)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 112 | pub fn new_field_feature(&mut self, pos: (i64, i64)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple associated items are never used [INFO] [stderr] --> src/item.rs:46:12 [INFO] [stderr] | [INFO] [stderr] 45 | impl Item { [INFO] [stderr] | --------- associated items in this implementation [INFO] [stderr] 46 | pub fn new( [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 289 | pub fn new_iron_claymore(x: usize, y: usize) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 314 | pub fn new_steel_claymore(x: usize, y: usize) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 364 | pub fn new_iron_longsword(x: usize, y: usize) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 389 | pub fn new_bronze_greatsword(x: usize, y: usize) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 439 | pub fn new_basic_staff(x: usize, y: usize) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 489 | pub fn new_bludgeon_staff(x: usize, y: usize) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 514 | pub fn new_gem_staff(x: usize, y: usize) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 639 | pub fn new_bronze_shadow_axe(x: usize, y: usize) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 664 | pub fn new_bronze_war_axe(x: usize, y: usize) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 716 | pub fn get_itype(&mut self) -> Items { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `LSystem` is never constructed [INFO] [stderr] --> src/lsystems.rs:3:8 [INFO] [stderr] | [INFO] [stderr] 3 | struct LSystem { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `main_rules` is never used [INFO] [stderr] --> src/lsystems.rs:8:4 [INFO] [stderr] | [INFO] [stderr] 8 | fn main_rules (axiom: String) -> String { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `side_quests` is never used [INFO] [stderr] --> src/lsystems.rs:19:4 [INFO] [stderr] | [INFO] [stderr] 19 | fn side_quests (axiom: String) -> String { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `enemy_rules` is never used [INFO] [stderr] --> src/lsystems.rs:30:4 [INFO] [stderr] | [INFO] [stderr] 30 | fn enemy_rules (axiom: String) -> String { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `item_rules` is never used [INFO] [stderr] --> src/lsystems.rs:41:4 [INFO] [stderr] | [INFO] [stderr] 41 | fn item_rules (axiom: String) -> String { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `LSystems` is never constructed [INFO] [stderr] --> src/lsystems.rs:52:12 [INFO] [stderr] | [INFO] [stderr] 52 | pub struct LSystems { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `process_enemies` are never used [INFO] [stderr] --> src/lsystems.rs:60:12 [INFO] [stderr] | [INFO] [stderr] 59 | impl LSystems { [INFO] [stderr] | ------------- associated items in this implementation [INFO] [stderr] 60 | pub fn new () -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 88 | fn process_enemies (&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `px`, `py`, and `dead_tunnels` are never read [INFO] [stderr] --> src/map.rs:19:9 [INFO] [stderr] | [INFO] [stderr] 17 | pub struct Map { [INFO] [stderr] | --- fields in this struct [INFO] [stderr] 18 | pub cells: Vec>, [INFO] [stderr] 19 | pub px: usize, [INFO] [stderr] | ^^ [INFO] [stderr] 20 | pub py: usize, [INFO] [stderr] | ^^ [INFO] [stderr] 21 | pub tunnels: HashMap<(usize, usize), (usize, usize)>, [INFO] [stderr] 22 | pub dead_tunnels: HashMap<(usize, usize), (usize, usize)>, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Map` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `format_hashmap` is never used [INFO] [stderr] --> src/map.rs:34:4 [INFO] [stderr] | [INFO] [stderr] 34 | fn format_hashmap(hashmap: HashMap<(usize, usize), (usize, usize)>) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `map_to_string` and `replace_dead_tunnels` are never used [INFO] [stderr] --> src/map.rs:181:8 [INFO] [stderr] | [INFO] [stderr] 42 | impl Map { [INFO] [stderr] | -------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 181 | fn map_to_string(&self, cells: &Vec>) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 422 | fn replace_dead_tunnels( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `INVENTORY_MAX` is never used [INFO] [stderr] --> src/player.rs:9:7 [INFO] [stderr] | [INFO] [stderr] 9 | const INVENTORY_MAX: usize = 75; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `inv_full`, `move_up`, `move_down`, `move_left`, and `move_right` are never used [INFO] [stderr] --> src/player.rs:129:12 [INFO] [stderr] | [INFO] [stderr] 29 | impl Player { [INFO] [stderr] | ----------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 129 | pub fn inv_full(&mut self) -> bool { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 162 | pub fn move_up(&mut self) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 166 | pub fn move_down(&mut self) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 170 | pub fn move_left(&mut self) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 174 | pub fn move_right(&mut self) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `make_teleport_map` is never used [INFO] [stderr] --> src/puzzle.rs:81:4 [INFO] [stderr] | [INFO] [stderr] 81 | fn make_teleport_map() -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `place_portals` is never used [INFO] [stderr] --> src/puzzle.rs:234:4 [INFO] [stderr] | [INFO] [stderr] 234 | fn place_portals(cells: Vec>) -> HashMap<(usize, usize), (usize, usize)> { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `new_teleport`, and `set_pos` are never used [INFO] [stderr] --> src/puzzle.rs:324:12 [INFO] [stderr] | [INFO] [stderr] 323 | impl Puzzle { [INFO] [stderr] | ----------- associated items in this implementation [INFO] [stderr] 324 | pub fn new( [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 368 | pub fn new_teleport(pos: (i64, i64)) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 392 | pub fn set_pos(&mut self, tpos: (i64, i64)) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/puzzles.rs:16:12 [INFO] [stderr] | [INFO] [stderr] 15 | impl Puzzles { [INFO] [stderr] | ------------ associated function in this implementation [INFO] [stderr] 16 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `large_settlement_empty` is never used [INFO] [stderr] --> src/settlement.rs:17:7 [INFO] [stderr] | [INFO] [stderr] 17 | const large_settlement_empty: &str = r#". [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `twn` is never used [INFO] [stderr] --> src/settlement.rs:121:7 [INFO] [stderr] | [INFO] [stderr] 121 | const twn: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `chnk` is never used [INFO] [stderr] --> src/settlement.rs:225:7 [INFO] [stderr] | [INFO] [stderr] 225 | const chnk: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `a` is never used [INFO] [stderr] --> src/settlement.rs:279:7 [INFO] [stderr] | [INFO] [stderr] 279 | const a: &str = r#" empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: constant `gg` is never used [INFO] [stderr] --> src/settlement.rs:332:7 [INFO] [stderr] | [INFO] [stderr] 332 | const gg: &str = r#" [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: constant `q` is never used [INFO] [stderr] --> src/settlement.rs:360:7 [INFO] [stderr] | [INFO] [stderr] 360 | const q: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: constant `smt` is never used [INFO] [stderr] --> src/settlement.rs:388:7 [INFO] [stderr] | [INFO] [stderr] 388 | const smt: &str = r#"| [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `pal` is never used [INFO] [stderr] --> src/settlement.rs:502:7 [INFO] [stderr] | [INFO] [stderr] 502 | const pal: &str = "empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ═ ║ ╣ ╠ ╩ ╦ ╗ ╝ ╚ ╔ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ ≡ ° × ¤ ¸ ¨ · ■ ¦ ± ¡ ... [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `cave_o` is never used [INFO] [stderr] --> src/settlement.rs:680:7 [INFO] [stderr] | [INFO] [stderr] 680 | const cave_o: &str = r#"CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC|HealthPotion HealthPotion HealthPotion Sa... [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `palette` is never used [INFO] [stderr] --> src/settlement.rs:733:7 [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] running 0 tests [INFO] [stderr] 733 | const palette: &str = "empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ═ ║ ╣ ╠ ╩ ╦ ╗ ╝ ╚ ╔ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ ≡ ° × ¤ ¸ ¨ · ■ ¦ ... [INFO] [stdout] [INFO] [stderr] | ^^^^^^^ [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: associated items `new`, `set_pos`, `get_items_sent`, `tog_items_sent`, and `get_shops` are never used [INFO] [stderr] --> src/settlement.rs:1367:12 [INFO] [stderr] | [INFO] [stderr] 1366 | impl Settlement { [INFO] [stderr] | --------------- associated items in this implementation [INFO] [stderr] 1367 | pub fn new( [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1499 | pub fn set_pos(&mut self, tpos: (i64, i64)) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1519 | pub fn get_items_sent(&mut self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1523 | pub fn tog_items_sent(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1527 | pub fn get_shops(&mut self) -> HashMap { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `get_settle_pos` are never used [INFO] [stderr] --> src/settlements.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 13 | impl Settlements { [INFO] [stderr] | ---------------- associated items in this implementation [INFO] [stderr] 14 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 70 | pub fn get_settle_pos(&mut self) -> Vec<(i64, i64)> { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `place_npcs` is never used [INFO] [stderr] --> src/gamestate.rs:98:4 [INFO] [stderr] | [INFO] [stderr] 98 | fn place_npcs(map: Vec>) -> HashMap<(usize, usize), NPCWrap> { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `map_to_string` is never used [INFO] [stderr] --> src/gamestate.rs:264:4 [INFO] [stderr] | [INFO] [stderr] 264 | fn map_to_string(cells: &Vec>) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_dir` is never used [INFO] [stderr] --> src/gamestate.rs:491:4 [INFO] [stderr] | [INFO] [stderr] 491 | fn get_dir(vec: (i64, i64)) -> (i8, i8) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `features`, `level`, `l_rate`, and `loc_map` are never read [INFO] [stderr] --> src/gamestate.rs:510:5 [INFO] [stderr] | [INFO] [stderr] 502 | pub struct GameState { [INFO] [stderr] | --------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 510 | features: Features, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 517 | level: u32, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 518 | //l_systems: LSystems, [INFO] [stderr] 519 | l_rate: u64, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 537 | loc_map: Option>>, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `pursue_player` is never used [INFO] [stderr] --> src/gamestate/enemies.rs:63:12 [INFO] [stderr] | [INFO] [stderr] 17 | impl GameState { [INFO] [stderr] | -------------- associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 63 | pub fn pursue_player() {} [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `palette` should have an upper case name [INFO] [stderr] --> src/features.rs:4:7 [INFO] [stderr] | [INFO] [stderr] 4 | const palette: &str = r#" [INFO] [stderr] | ^^^^^^^ help: convert the identifier to upper case: `PALETTE` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stderr] [INFO] [stderr] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type [INFO] [stderr] --> src/gui/gui_man_draw.rs:1357:53 [INFO] [stderr] | [INFO] [stderr] 1357 | Cell::from(Span::styled(cell.clone(), ratatui::style::Style::default().fg(ratatui::style::Color::Yellow))) [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(suspicious_double_ref_op)]` on by default [INFO] [stderr] [INFO] [stderr] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type [INFO] [stderr] --> src/gui/gui_man_draw.rs:1359:40 [INFO] [stderr] | [INFO] [stderr] 1359 | Cell::from(cell.clone()) [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `large_settlement_empty` should have an upper case name [INFO] [stderr] --> src/settlement.rs:17:7 [INFO] [stderr] | [INFO] [stderr] 17 | const large_settlement_empty: &str = r#". [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `LARGE_SETTLEMENT_EMPTY` [INFO] [stderr] [INFO] [stderr] warning: constant `twn` should have an upper case name [INFO] [stderr] --> src/settlement.rs:121:7 [INFO] [stderr] | [INFO] [stderr] 121 | const twn: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stderr] | ^^^ help: convert the identifier to upper case: `TWN` [INFO] [stderr] [INFO] [stderr] warning: constant `chnk` should have an upper case name [INFO] [stderr] --> src/settlement.rs:225:7 [INFO] [stderr] | [INFO] [stderr] 225 | const chnk: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stderr] | ^^^^ help: convert the identifier to upper case: `CHNK` [INFO] [stderr] [INFO] [stderr] warning: constant `a` should have an upper case name [INFO] [stderr] --> src/settlement.rs:279:7 [INFO] [stderr] | [INFO] [stderr] 279 | const a: &str = r#" empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stderr] | ^ help: convert the identifier to upper case: `A` [INFO] [stderr] [INFO] [stderr] warning: constant `gg` should have an upper case name [INFO] [stderr] --> src/settlement.rs:332:7 [INFO] [stderr] | [INFO] [stderr] 332 | const gg: &str = r#" [INFO] [stderr] | ^^ help: convert the identifier to upper case: `GG` [INFO] [stderr] [INFO] [stderr] warning: constant `q` should have an upper case name [INFO] [stderr] --> src/settlement.rs:360:7 [INFO] [stderr] | [INFO] [stderr] 360 | const q: &str = r#"| empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ╣ ║ ╗ ╝ ╚ ╔ ╩ ╦ ╠ ═ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ [INFO] [stderr] | ^ help: convert the identifier to upper case: `Q` [INFO] [stderr] [INFO] [stderr] warning: constant `smt` should have an upper case name [INFO] [stderr] --> src/settlement.rs:388:7 [INFO] [stderr] | [INFO] [stderr] 388 | const smt: &str = r#"| [INFO] [stderr] | ^^^ help: convert the identifier to upper case: `SMT` [INFO] [stderr] [INFO] [stderr] warning: constant `itm_sh1` should have an upper case name [INFO] [stderr] --> src/settlement.rs:418:7 [INFO] [stderr] | [INFO] [stderr] 418 | const itm_sh1: &str = r#"CommNPC CommNPC CommNPC ShopNPC|HealthPotion HealthPotion HealthPotion Salve Salve Dowel WoodenBoard Apple Apple... [INFO] [stderr] | ^^^^^^^ help: convert the identifier to upper case: `ITM_SH1` [INFO] [stderr] [INFO] [stderr] warning: constant `itm_sh2` should have an upper case name [INFO] [stderr] --> src/settlement.rs:446:7 [INFO] [stderr] | [INFO] [stderr] 446 | const itm_sh2: &str = r#"ShopNPC ConvNPC|HealthPotion HealthPotion HealthPotion Salve Salve Dowel WoodenBoard Apple Apple Apple HealthPot... [INFO] [stderr] | ^^^^^^^ help: convert the identifier to upper case: `ITM_SH2` [INFO] [stderr] [INFO] [stderr] warning: constant `church1` should have an upper case name [INFO] [stderr] --> src/settlement.rs:474:7 [INFO] [stderr] | [INFO] [stderr] 474 | const church1: &str = r#"ConvNPC ShopNPC|Null|HealthPotion [INFO] [stderr] | ^^^^^^^ help: convert the identifier to upper case: `CHURCH1` [INFO] [stderr] [INFO] [stderr] warning: constant `pal` should have an upper case name [INFO] [stderr] --> src/settlement.rs:502:7 [INFO] [stderr] | [INFO] [stderr] 502 | const pal: &str = "empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ═ ║ ╣ ╠ ╩ ╦ ╗ ╝ ╚ ╔ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ ≡ ° × ¤ ¸ ¨ · ■ ¦ ± ¡ ... [INFO] [stderr] | ^^^ help: convert the identifier to upper case: `PAL` [INFO] [stderr] [INFO] [stderr] warning: constant `guild1` should have an upper case name [INFO] [stderr] --> src/settlement.rs:504:7 [INFO] [stderr] | [INFO] [stderr] 504 | const guild1: &str = r#"ConvNPC CommNPC ConvNPC ShopNPC|Null|HealthPotion [INFO] [stderr] | ^^^^^^ help: convert the identifier to upper case: `GUILD1` [INFO] [stderr] [INFO] [stderr] warning: constant `anchor1` should have an upper case name [INFO] [stderr] --> src/settlement.rs:532:7 [INFO] [stderr] | [INFO] [stderr] 532 | const anchor1: &str = r#"CommNPC|Null|Null [INFO] [stderr] | ^^^^^^^ help: convert the identifier to upper case: `ANCHOR1` [INFO] [stderr] [INFO] [stderr] warning: constant `item_shops` should have an upper case name [INFO] [stderr] --> src/settlement.rs:560:7 [INFO] [stderr] | [INFO] [stderr] 560 | const item_shops: [&str; 2] = [itm_sh1, itm_sh2]; [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to upper case: `ITEM_SHOPS` [INFO] [stderr] [INFO] [stderr] warning: constant `guild_shops` should have an upper case name [INFO] [stderr] --> src/settlement.rs:562:7 [INFO] [stderr] | [INFO] [stderr] 562 | const guild_shops: [&str; 1] = [guild1]; [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to upper case: `GUILD_SHOPS` [INFO] [stderr] [INFO] [stderr] warning: constant `churches` should have an upper case name [INFO] [stderr] --> src/settlement.rs:564:7 [INFO] [stderr] | [INFO] [stderr] 564 | const churches: [&str; 1] = [church1]; [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to upper case: `CHURCHES` [INFO] [stderr] [INFO] [stderr] warning: constant `anchors` should have an upper case name [INFO] [stderr] --> src/settlement.rs:566:7 [INFO] [stderr] | [INFO] [stderr] 566 | const anchors: [&str; 1] = [anchor1]; [INFO] [stderr] | ^^^^^^^ help: convert the identifier to upper case: `ANCHORS` [INFO] [stderr] [INFO] [stderr] warning: constant `cave_o1` should have an upper case name [INFO] [stderr] --> src/settlement.rs:568:7 [INFO] [stderr] | [INFO] [stderr] 568 | const cave_o1: &str = r#"ShopNPC|HealthPotion BronzeLongsword BronzeLightAxe Salve Salve Dowel WoodenBoard BronzePickHammer BronzeShortsw... [INFO] [stderr] | ^^^^^^^ help: convert the identifier to upper case: `CAVE_O1` [INFO] [stderr] [INFO] [stderr] warning: constant `cave_o2` should have an upper case name [INFO] [stderr] --> src/settlement.rs:596:7 [INFO] [stderr] | [INFO] [stderr] 596 | const cave_o2: &str = r#"CommNPC|Null|Null [INFO] [stderr] | ^^^^^^^ help: convert the identifier to upper case: `CAVE_O2` [INFO] [stderr] [INFO] [stderr] warning: constant `cave_o3` should have an upper case name [INFO] [stderr] --> src/settlement.rs:624:7 [INFO] [stderr] | [INFO] [stderr] 624 | const cave_o3: &str = r#"CommNPC CommNPC CommNPC CommNPC ShopNPC CommNPC|Null|Null [INFO] [stderr] | ^^^^^^^ help: convert the identifier to upper case: `CAVE_O3` [INFO] [stderr] [INFO] [stderr] warning: constant `cave_o4` should have an upper case name [INFO] [stderr] --> src/settlement.rs:652:7 [INFO] [stderr] | [INFO] [stderr] 652 | const cave_o4: &str = r#"CommNPC ShopNPC|Null|Null [INFO] [stderr] | ^^^^^^^ help: convert the identifier to upper case: `CAVE_O4` [INFO] [stderr] [INFO] [stderr] warning: constant `cave_o` should have an upper case name [INFO] [stderr] --> src/settlement.rs:680:7 [INFO] [stderr] | [INFO] [stderr] 680 | const cave_o: &str = r#"CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC CommNPC|HealthPotion HealthPotion HealthPotion Sa... [INFO] [stderr] | ^^^^^^ help: convert the identifier to upper case: `CAVE_O` [INFO] [stderr] [INFO] [stderr] warning: constant `palette` should have an upper case name [INFO] [stderr] --> src/settlement.rs:733:7 [INFO] [stderr] | [INFO] [stderr] 733 | const palette: &str = "empty: ' . , ' * | wall: ▒ | other ▓ ░ ~ | pipes: ═ ║ ╣ ╠ ╩ ╦ ╗ ╝ ╚ ╔ ╬ ┐ └ ┴ ┬ ├ ─ ┼ ┘ ┌ ┤ │ ≡ ° × ¤ ¸ ¨ · ■ ¦ ... [INFO] [stderr] | ^^^^^^^ help: convert the identifier to upper case: `PALETTE` [INFO] [stderr] [INFO] [stderr] warning: constant `collision_cells` should have an upper case name [INFO] [stderr] --> src/gamestate.rs:440:7 [INFO] [stderr] | [INFO] [stderr] 440 | const collision_cells: [Cells; 35] = [ [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `COLLISION_CELLS` [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/gamestate.rs:1639:9 [INFO] [stderr] | [INFO] [stderr] 1639 | sfile.write_all(json.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 1639 | let _ = sfile.write_all(json.as_bytes()); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/gamestate.rs:1645:9 [INFO] [stderr] | [INFO] [stderr] 1645 | writeln!(nfile, "{}", filename.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `dungeon` (bin "dungeon" test) generated 131 warnings (run `cargo fix --bin "dungeon" --tests` to apply 21 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/dungeon-78236799f5184e10) [INFO] running `Command { std: "docker" "inspect" "8c7b07a190b12840c5895ab8f21068313f16a19b5945a454173deaea34f9dc17", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8c7b07a190b12840c5895ab8f21068313f16a19b5945a454173deaea34f9dc17", kill_on_drop: false }` [INFO] [stdout] 8c7b07a190b12840c5895ab8f21068313f16a19b5945a454173deaea34f9dc17