[INFO] cloning repository https://github.com/sh4ka/rust-adventure [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sh4ka/rust-adventure" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsh4ka%2Frust-adventure", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsh4ka%2Frust-adventure'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] dafc3f3b20bec4f369239f01172256ce90dd4758 [INFO] checking sh4ka/rust-adventure against master#8a65ee08296b36342bf7c3cdc15312ccbc357227 for pr-142704 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsh4ka%2Frust-adventure" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/sh4ka/rust-adventure on toolchain 8a65ee08296b36342bf7c3cdc15312ccbc357227 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/sh4ka/rust-adventure [INFO] finished tweaking git repo https://github.com/sh4ka/rust-adventure [INFO] tweaked toml for git repo https://github.com/sh4ka/rust-adventure written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/sh4ka/rust-adventure 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" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2683efee38567d4791283f2f8e4e05d76ff2b1ffc1967aba8d18bc90147910d5 [INFO] running `Command { std: "docker" "start" "-a" "2683efee38567d4791283f2f8e4e05d76ff2b1ffc1967aba8d18bc90147910d5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2683efee38567d4791283f2f8e4e05d76ff2b1ffc1967aba8d18bc90147910d5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2683efee38567d4791283f2f8e4e05d76ff2b1ffc1967aba8d18bc90147910d5", kill_on_drop: false }` [INFO] [stdout] 2683efee38567d4791283f2f8e4e05d76ff2b1ffc1967aba8d18bc90147910d5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8a65ee08296b36342bf7c3cdc15312ccbc357227" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ab1429ea19774fb5f5934646524f4080aa55fa3a208939a1ac9dc432db5ee90d [INFO] running `Command { std: "docker" "start" "-a" "ab1429ea19774fb5f5934646524f4080aa55fa3a208939a1ac9dc432db5ee90d", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling zerocopy v0.8.25 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking adventure-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Location`, `Passage`, and `find_passage` [INFO] [stdout] --> src/models/player/mod.rs:2:29 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::models::object::{Location, Item, NPC, Passage, find_location, find_npc, find_item_in_location, find_passage, find_item, PASSAG... [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Class` and `Equipment` [INFO] [stdout] --> src/models/player/mod.rs:3:32 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::models::character::{Equipment, EquipmentType, WeaponType, ArmorType, Class, parse_new_character}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write` and `self` [INFO] [stdout] --> src/models/player/mod.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::enemy` [INFO] [stdout] --> src/models/player/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use super::enemy; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Item` [INFO] [stdout] --> src/models/character/mod.rs:2:29 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::models::object::{Item, NPCTag}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `GameObject` [INFO] [stdout] --> src/models/enemy.rs:3:44 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::models::object::{NPC, Attitude, GameObject}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/character_creation.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/main.rs:10:15 [INFO] [stdout] | [INFO] [stdout] 10 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Enemy`, `get_enemies_by_difficulty`, `get_enemies_by_level_range`, `get_enemies_by_location`, and `get_enemy` [INFO] [stdout] --> src/main.rs:12:28 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::models::enemy::{Enemy, get_enemy, get_enemies_by_difficulty, get_enemies_by_level_range, get_enemies_by_location}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/parsexec/mod.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 113 | std::process::exit(0); [INFO] [stdout] | --------------------- any code following this expression is unreachable [INFO] [stdout] 114 | "".to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `location` [INFO] [stdout] --> src/models/player/mod.rs:104:25 [INFO] [stdout] | [INFO] [stdout] 104 | if let Some(location) = find_location(tag) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `destination` [INFO] [stdout] --> src/models/player/mod.rs:192:41 [INFO] [stdout] | [INFO] [stdout] 192 | ... if let Some(destination) = find_location(tag) { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_destination` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Location`, `Passage`, and `find_passage` [INFO] [stdout] --> src/models/player/mod.rs:2:29 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::models::object::{Location, Item, NPC, Passage, find_location, find_npc, find_item_in_location, find_passage, find_item, PASSAG... [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Class` and `Equipment` [INFO] [stdout] --> src/models/player/mod.rs:3:32 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::models::character::{Equipment, EquipmentType, WeaponType, ArmorType, Class, parse_new_character}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Write` and `self` [INFO] [stdout] --> src/models/player/mod.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::enemy` [INFO] [stdout] --> src/models/player/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use super::enemy; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Item` [INFO] [stdout] --> src/models/character/mod.rs:2:29 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::models::object::{Item, NPCTag}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `GameObject` [INFO] [stdout] --> src/models/enemy.rs:3:44 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::models::object::{NPC, Attitude, GameObject}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `location` [INFO] [stdout] --> src/models/player/mod.rs:498:25 [INFO] [stdout] | [INFO] [stdout] 498 | if let Some(location) = find_location(location_tag) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/character_creation.rs:6:15 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/main.rs:10:15 [INFO] [stdout] | [INFO] [stdout] 10 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Enemy`, `get_enemies_by_difficulty`, `get_enemies_by_level_range`, `get_enemies_by_location`, and `get_enemy` [INFO] [stdout] --> src/main.rs:12:28 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::models::enemy::{Enemy, get_enemy, get_enemies_by_difficulty, get_enemies_by_level_range, get_enemies_by_location}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `shield` [INFO] [stdout] --> src/models/character/mod.rs:237:21 [INFO] [stdout] | [INFO] [stdout] 237 | if let Some(shield) = &self.shield { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_shield` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/parsexec/mod.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | _ => "Comando no válido.".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/parsexec/mod.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 56 | Command::Go(location) => player.execute_go(location.as_deref()), [INFO] [stdout] | --------------------- matches some of the same values [INFO] [stdout] 57 | Command::Look => { [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 61 | Command::Take(item) => { [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 68 | Command::Drop(item) => { [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 132 | _ => "Comando no válido.".to_string(), [INFO] [stdout] | ^ ...and 9 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TestInputReader` is never constructed [INFO] [stdout] --> src/models/player/mod.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct TestInputReader { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/models/player/mod.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl TestInputReader { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 29 | pub fn new(input: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MockDiceRoller` is never constructed [INFO] [stdout] --> src/models/player/mod.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct MockDiceRoller { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `execute_new` is never used [INFO] [stdout] --> src/models/player/mod.rs:977:12 [INFO] [stdout] | [INFO] [stdout] 76 | impl Player { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 977 | pub fn execute_new(&mut self, input: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `hidden_items`, `is_visited`, `is_locked`, and `required_key` are never read [INFO] [stdout] --> src/models/object/mod.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct RoomContent { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 22 | pub items: Vec, // Items en la sala [INFO] [stdout] 23 | pub hidden_items: Vec, // Items ocultos en la sala [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 24 | pub npcs: Vec, // Tags de los NPCs en la sala [INFO] [stdout] 25 | pub is_visited: bool, // Si la sala ha sido visitada [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 26 | pub is_locked: bool, // Si la sala está bloqueada [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 27 | pub required_key: Option, // Tag del item necesario para desbloquear la sala [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RoomContent` 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 methods are never used [INFO] [stdout] --> src/models/object/mod.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 30 | impl RoomContent { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn add_hidden_item(&mut self, item: Item) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn remove_item(&mut self, item_tag: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn remove_hidden_item(&mut self, item_tag: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn reveal_hidden_item(&mut self, item_tag: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn find_hidden_item(&self, item_tag: &str) -> Option<&Item> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn remove_npc(&mut self, npc_tag: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn mark_as_visited(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn lock(&mut self, key_tag: Option<&str>) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn unlock(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `is_dropped` is never read [INFO] [stdout] --> src/models/object/mod.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 103 | pub struct Item { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 104 | pub base: GameObject, [INFO] [stdout] 105 | pub is_dropped: bool, // Si el item fue soltado por el jugador [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Item` 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/models/object/mod.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 111 | pub enum NPCTag { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 114 | Elf, [INFO] [stdout] | ^^^ [INFO] [stdout] 115 | Dwarf, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | Halfling, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | Merchant, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 126 | Bandit, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 127 | Troll, [INFO] [stdout] 128 | Ogre, [INFO] [stdout] | ^^^^ [INFO] [stdout] 129 | Giant, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | Friendly, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 134 | Neutral, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 135 | Hostile, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NPCTag` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `location` is never read [INFO] [stdout] --> src/models/object/mod.rs:141:9 [INFO] [stdout] | [INFO] [stdout] 139 | pub struct NPC { [INFO] [stdout] | --- field in this struct [INFO] [stdout] 140 | pub base: GameObject, [INFO] [stdout] 141 | pub location: String, // Tag de la ubicación donde está el NPC [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NPC` 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: method `with_long_description` is never used [INFO] [stdout] --> src/models/object/mod.rs:174:12 [INFO] [stdout] | [INFO] [stdout] 164 | impl GameObject { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 174 | pub fn with_long_description(mut self, long_description: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_passage` is never used [INFO] [stdout] --> src/models/object/mod.rs:511:8 [INFO] [stdout] | [INFO] [stdout] 511 | pub fn find_passage(tag: &str) -> Option<&'static Passage> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_items_in_location` is never used [INFO] [stdout] --> src/models/object/mod.rs:516:8 [INFO] [stdout] | [INFO] [stdout] 516 | pub fn get_items_in_location(location_tag: &str) -> Vec<&'static Item> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_hidden_items_in_location` is never used [INFO] [stdout] --> src/models/object/mod.rs:523:8 [INFO] [stdout] | [INFO] [stdout] 523 | pub fn get_hidden_items_in_location(location: &Location) -> Vec<&Item> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_npcs_in_location` is never used [INFO] [stdout] --> src/models/object/mod.rs:528:8 [INFO] [stdout] | [INFO] [stdout] 528 | pub fn get_npcs_in_location(location_tag: &str) -> Vec<&'static NPC> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_passages_from_location` is never used [INFO] [stdout] --> src/models/object/mod.rs:535:8 [INFO] [stdout] | [INFO] [stdout] 535 | pub fn get_passages_from_location(location_tag: &str) -> Vec<&'static Passage> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/models/character/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum CharacterTrait { [INFO] [stdout] | -------------- variants in this enum [INFO] [stdout] 7 | // Traits de combate [INFO] [stdout] 8 | Strong, // Fuerte: +1 al daño con armas pesadas [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 9 | Agile, // Ágil: +1 a la defensa con armadura ligera [INFO] [stdout] | ^^^^^ [INFO] [stdout] 10 | Tough, // Resistente: +1 PV por nivel [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | Precise, // Preciso: +1 al ataque con armas a distancia [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 12 | ShieldMaster, // Maestro de escudo: +1 a la defensa con escudo [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | Stealthy, // Sigiloso: +20% probabilidad de encontrar objetos ocultos [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 16 | Perceptive, // Perspicaz: Puede ver objetos ocultos sin buscarlos [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 17 | Lucky, // Afortunado: +10% probabilidad de éxito en todas las acciones [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | Spellcaster, // Lanzador de conjuros: Puede usar objetos mágicos [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 21 | Healer, // Sanador: Puede usar pociones de forma más efectiva [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 22 | Thief, // Ladrón: Puede abrir cerraduras sin ganzúas [INFO] [stdout] | ^^^^^ [INFO] [stdout] 23 | Berserker, // Berserker: +2 al ataque cuando está herido [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 24 | NaturalArmor, // Armadura natural: +1 a la defensa sin armadura [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 25 | ForestFriend, // Amigo del bosque: Bonus en zonas naturales [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 26 | MountainBorn, // Nacido en la montaña: Bonus en zonas montañosas [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 27 | Nimble, // Ágil: Puede esquivar ataques más fácilmente [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CharacterTrait` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `traits` is never read [INFO] [stdout] --> src/models/character/mod.rs:138:9 [INFO] [stdout] | [INFO] [stdout] 128 | pub struct Character { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 138 | pub traits: HashSet [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Character` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `take_damage`, `is_alive`, and `has_trait` are never used [INFO] [stdout] --> src/models/character/mod.rs:295:12 [INFO] [stdout] | [INFO] [stdout] 141 | impl Character { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 295 | pub fn take_damage(&mut self, damage: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 301 | pub fn is_alive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 305 | pub fn has_trait(&self, trait_type: &CharacterTrait) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_bonus` is never used [INFO] [stdout] --> src/models/character/mod.rs:318:12 [INFO] [stdout] | [INFO] [stdout] 310 | impl Equipment { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 318 | pub fn get_bonus(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_new_character` is never used [INFO] [stdout] --> src/models/character/mod.rs:335:8 [INFO] [stdout] | [INFO] [stdout] 335 | pub fn parse_new_character(input: String, existing_names: &HashSet) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `difficulty`, `min_level`, `max_level`, and `experience` are never read [INFO] [stdout] --> src/models/enemy.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Enemy { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 9 | pub base: NPC, [INFO] [stdout] 10 | pub difficulty: u8, // 1-5, donde 5 es el más difícil [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 11 | pub min_level: u8, // Nivel mínimo recomendado para enfrentarlo [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 12 | pub max_level: u8, // Nivel máximo recomendado para enfrentarlo [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 13 | pub loot_table: Vec, // Tags de los items que puede soltar [INFO] [stdout] 14 | pub experience: u32, // Experiencia que otorga al derrotarlo [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Enemy` 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 `get_enemy` is never used [INFO] [stdout] --> src/models/enemy.rs:174:8 [INFO] [stdout] | [INFO] [stdout] 174 | pub fn get_enemy(tag: &str) -> Option<&'static Enemy> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_enemies_by_difficulty` is never used [INFO] [stdout] --> src/models/enemy.rs:178:8 [INFO] [stdout] | [INFO] [stdout] 178 | pub fn get_enemies_by_difficulty(difficulty: u8) -> Vec<&'static Enemy> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_enemies_by_level_range` is never used [INFO] [stdout] --> src/models/enemy.rs:184:8 [INFO] [stdout] | [INFO] [stdout] 184 | pub fn get_enemies_by_level_range(min_level: u8, max_level: u8) -> Vec<&'static Enemy> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_enemies_by_location` is never used [INFO] [stdout] --> src/models/enemy.rs:190:8 [INFO] [stdout] | [INFO] [stdout] 190 | pub fn get_enemies_by_location(location: &str) -> Vec<&'static Enemy> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/parsexec/mod.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 113 | std::process::exit(0); [INFO] [stdout] | --------------------- any code following this expression is unreachable [INFO] [stdout] 114 | "".to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `location` [INFO] [stdout] --> src/models/player/mod.rs:104:25 [INFO] [stdout] | [INFO] [stdout] 104 | if let Some(location) = find_location(tag) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `destination` [INFO] [stdout] --> src/models/player/mod.rs:192:41 [INFO] [stdout] | [INFO] [stdout] 192 | ... if let Some(destination) = find_location(tag) { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_destination` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `location` [INFO] [stdout] --> src/models/player/mod.rs:498:25 [INFO] [stdout] | [INFO] [stdout] 498 | if let Some(location) = find_location(location_tag) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `shield` [INFO] [stdout] --> src/models/character/mod.rs:237:21 [INFO] [stdout] | [INFO] [stdout] 237 | if let Some(shield) = &self.shield { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_shield` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/parsexec/mod.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 132 | _ => "Comando no válido.".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/parsexec/mod.rs:132:9 [INFO] [stdout] | [INFO] [stdout] 56 | Command::Go(location) => player.execute_go(location.as_deref()), [INFO] [stdout] | --------------------- matches some of the same values [INFO] [stdout] 57 | Command::Look => { [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 61 | Command::Take(item) => { [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 68 | Command::Drop(item) => { [INFO] [stdout] | ------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 132 | _ => "Comando no válido.".to_string(), [INFO] [stdout] | ^ ...and 9 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `execute_new` is never used [INFO] [stdout] --> src/models/player/mod.rs:977:12 [INFO] [stdout] | [INFO] [stdout] 76 | impl Player { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 977 | pub fn execute_new(&mut self, input: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `hidden_items`, `is_visited`, `is_locked`, and `required_key` are never read [INFO] [stdout] --> src/models/object/mod.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct RoomContent { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 22 | pub items: Vec, // Items en la sala [INFO] [stdout] 23 | pub hidden_items: Vec, // Items ocultos en la sala [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 24 | pub npcs: Vec, // Tags de los NPCs en la sala [INFO] [stdout] 25 | pub is_visited: bool, // Si la sala ha sido visitada [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 26 | pub is_locked: bool, // Si la sala está bloqueada [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 27 | pub required_key: Option, // Tag del item necesario para desbloquear la sala [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RoomContent` 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 methods are never used [INFO] [stdout] --> src/models/object/mod.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 30 | impl RoomContent { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn add_hidden_item(&mut self, item: Item) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn remove_item(&mut self, item_tag: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn remove_hidden_item(&mut self, item_tag: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn reveal_hidden_item(&mut self, item_tag: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn find_hidden_item(&self, item_tag: &str) -> Option<&Item> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn remove_npc(&mut self, npc_tag: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn mark_as_visited(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn lock(&mut self, key_tag: Option<&str>) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn unlock(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `is_dropped` is never read [INFO] [stdout] --> src/models/object/mod.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 103 | pub struct Item { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 104 | pub base: GameObject, [INFO] [stdout] 105 | pub is_dropped: bool, // Si el item fue soltado por el jugador [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Item` 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/models/object/mod.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 111 | pub enum NPCTag { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 114 | Elf, [INFO] [stdout] | ^^^ [INFO] [stdout] 115 | Dwarf, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | Halfling, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | Merchant, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 126 | Bandit, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 127 | Troll, [INFO] [stdout] 128 | Ogre, [INFO] [stdout] | ^^^^ [INFO] [stdout] 129 | Giant, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | Friendly, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 134 | Neutral, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 135 | Hostile, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NPCTag` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `location` is never read [INFO] [stdout] --> src/models/object/mod.rs:141:9 [INFO] [stdout] | [INFO] [stdout] 139 | pub struct NPC { [INFO] [stdout] | --- field in this struct [INFO] [stdout] 140 | pub base: GameObject, [INFO] [stdout] 141 | pub location: String, // Tag de la ubicación donde está el NPC [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NPC` 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: method `with_long_description` is never used [INFO] [stdout] --> src/models/object/mod.rs:174:12 [INFO] [stdout] | [INFO] [stdout] 164 | impl GameObject { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 174 | pub fn with_long_description(mut self, long_description: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_passage` is never used [INFO] [stdout] --> src/models/object/mod.rs:511:8 [INFO] [stdout] | [INFO] [stdout] 511 | pub fn find_passage(tag: &str) -> Option<&'static Passage> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_items_in_location` is never used [INFO] [stdout] --> src/models/object/mod.rs:516:8 [INFO] [stdout] | [INFO] [stdout] 516 | pub fn get_items_in_location(location_tag: &str) -> Vec<&'static Item> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_hidden_items_in_location` is never used [INFO] [stdout] --> src/models/object/mod.rs:523:8 [INFO] [stdout] | [INFO] [stdout] 523 | pub fn get_hidden_items_in_location(location: &Location) -> Vec<&Item> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_npcs_in_location` is never used [INFO] [stdout] --> src/models/object/mod.rs:528:8 [INFO] [stdout] | [INFO] [stdout] 528 | pub fn get_npcs_in_location(location_tag: &str) -> Vec<&'static NPC> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_passages_from_location` is never used [INFO] [stdout] --> src/models/object/mod.rs:535:8 [INFO] [stdout] | [INFO] [stdout] 535 | pub fn get_passages_from_location(location_tag: &str) -> Vec<&'static Passage> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/models/character/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum CharacterTrait { [INFO] [stdout] | -------------- variants in this enum [INFO] [stdout] 7 | // Traits de combate [INFO] [stdout] 8 | Strong, // Fuerte: +1 al daño con armas pesadas [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 9 | Agile, // Ágil: +1 a la defensa con armadura ligera [INFO] [stdout] | ^^^^^ [INFO] [stdout] 10 | Tough, // Resistente: +1 PV por nivel [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | Precise, // Preciso: +1 al ataque con armas a distancia [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 12 | ShieldMaster, // Maestro de escudo: +1 a la defensa con escudo [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | Stealthy, // Sigiloso: +20% probabilidad de encontrar objetos ocultos [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 16 | Perceptive, // Perspicaz: Puede ver objetos ocultos sin buscarlos [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 17 | Lucky, // Afortunado: +10% probabilidad de éxito en todas las acciones [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | Spellcaster, // Lanzador de conjuros: Puede usar objetos mágicos [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 21 | Healer, // Sanador: Puede usar pociones de forma más efectiva [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 22 | Thief, // Ladrón: Puede abrir cerraduras sin ganzúas [INFO] [stdout] | ^^^^^ [INFO] [stdout] 23 | Berserker, // Berserker: +2 al ataque cuando está herido [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 24 | NaturalArmor, // Armadura natural: +1 a la defensa sin armadura [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 25 | ForestFriend, // Amigo del bosque: Bonus en zonas naturales [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 26 | MountainBorn, // Nacido en la montaña: Bonus en zonas montañosas [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 27 | Nimble, // Ágil: Puede esquivar ataques más fácilmente [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CharacterTrait` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `traits` is never read [INFO] [stdout] --> src/models/character/mod.rs:138:9 [INFO] [stdout] | [INFO] [stdout] 128 | pub struct Character { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 138 | pub traits: HashSet [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Character` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `take_damage`, `is_alive`, and `has_trait` are never used [INFO] [stdout] --> src/models/character/mod.rs:295:12 [INFO] [stdout] | [INFO] [stdout] 141 | impl Character { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 295 | pub fn take_damage(&mut self, damage: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 301 | pub fn is_alive(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 305 | pub fn has_trait(&self, trait_type: &CharacterTrait) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_bonus` is never used [INFO] [stdout] --> src/models/character/mod.rs:318:12 [INFO] [stdout] | [INFO] [stdout] 310 | impl Equipment { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 318 | pub fn get_bonus(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_new_character` is never used [INFO] [stdout] --> src/models/character/mod.rs:335:8 [INFO] [stdout] | [INFO] [stdout] 335 | pub fn parse_new_character(input: String, existing_names: &HashSet) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `difficulty`, `min_level`, `max_level`, and `experience` are never read [INFO] [stdout] --> src/models/enemy.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Enemy { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 9 | pub base: NPC, [INFO] [stdout] 10 | pub difficulty: u8, // 1-5, donde 5 es el más difícil [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 11 | pub min_level: u8, // Nivel mínimo recomendado para enfrentarlo [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 12 | pub max_level: u8, // Nivel máximo recomendado para enfrentarlo [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 13 | pub loot_table: Vec, // Tags de los items que puede soltar [INFO] [stdout] 14 | pub experience: u32, // Experiencia que otorga al derrotarlo [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Enemy` 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 `get_enemy` is never used [INFO] [stdout] --> src/models/enemy.rs:174:8 [INFO] [stdout] | [INFO] [stdout] 174 | pub fn get_enemy(tag: &str) -> Option<&'static Enemy> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_enemies_by_difficulty` is never used [INFO] [stdout] --> src/models/enemy.rs:178:8 [INFO] [stdout] | [INFO] [stdout] 178 | pub fn get_enemies_by_difficulty(difficulty: u8) -> Vec<&'static Enemy> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_enemies_by_level_range` is never used [INFO] [stdout] --> src/models/enemy.rs:184:8 [INFO] [stdout] | [INFO] [stdout] 184 | pub fn get_enemies_by_level_range(min_level: u8, max_level: u8) -> Vec<&'static Enemy> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_enemies_by_location` is never used [INFO] [stdout] --> src/models/enemy.rs:190:8 [INFO] [stdout] | [INFO] [stdout] 190 | pub fn get_enemies_by_location(location: &str) -> Vec<&'static Enemy> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.93s [INFO] running `Command { std: "docker" "inspect" "ab1429ea19774fb5f5934646524f4080aa55fa3a208939a1ac9dc432db5ee90d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ab1429ea19774fb5f5934646524f4080aa55fa3a208939a1ac9dc432db5ee90d", kill_on_drop: false }` [INFO] [stdout] ab1429ea19774fb5f5934646524f4080aa55fa3a208939a1ac9dc432db5ee90d