[INFO] cloning repository https://github.com/can23384/Proyecto-1-Raycasting
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/can23384/Proyecto-1-Raycasting" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcan23384%2FProyecto-1-Raycasting", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcan23384%2FProyecto-1-Raycasting'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 17a22929cb98f8df65bb4f961265eb0dc411639c
[INFO] checking can23384/Proyecto-1-Raycasting/17a22929cb98f8df65bb4f961265eb0dc411639c against 8d1a76430406c877b35d0b627e7f796dcf0dfeca+rustflags=-Aunfulfilled-lint-expectations for pr-163637
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcan23384%2FProyecto-1-Raycasting" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/can23384/Proyecto-1-Raycasting
[INFO] finished tweaking git repo https://github.com/can23384/Proyecto-1-Raycasting
[INFO] tweaked toml for git repo https://github.com/can23384/Proyecto-1-Raycasting written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/can23384/Proyecto-1-Raycasting on toolchain 8d1a76430406c877b35d0b627e7f796dcf0dfeca
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8d1a76430406c877b35d0b627e7f796dcf0dfeca" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/can23384/Proyecto-1-Raycasting 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" "+8d1a76430406c877b35d0b627e7f796dcf0dfeca" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bitflags v2.9.2
[INFO] [stderr]   Downloaded cc v1.2.33
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1d854243ea12c9c005a269c74b7b453dac38a5501f4aab77b3e76d6217a3707c
[INFO] running `Command { std: "docker" "start" "1d854243ea12c9c005a269c74b7b453dac38a5501f4aab77b3e76d6217a3707c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1d854243ea12c9c005a269c74b7b453dac38a5501f4aab77b3e76d6217a3707c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1d854243ea12c9c005a269c74b7b453dac38a5501f4aab77b3e76d6217a3707c" "/opt/rustwide/cargo-home/bin/cargo" "+8d1a76430406c877b35d0b627e7f796dcf0dfeca" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1d854243ea12c9c005a269c74b7b453dac38a5501f4aab77b3e76d6217a3707c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Aunfulfilled-lint-expectations" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1d854243ea12c9c005a269c74b7b453dac38a5501f4aab77b3e76d6217a3707c" "/opt/rustwide/cargo-home/bin/cargo" "+8d1a76430406c877b35d0b627e7f796dcf0dfeca" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling prettyplease v0.2.36
[INFO] [stderr]    Compiling cfg-if v1.0.1
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling bindgen v0.70.1
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling cc v1.2.33
[INFO] [stderr]    Compiling bitflags v2.9.2
[INFO] [stderr]    Compiling seq-macro v0.3.6
[INFO] [stderr]    Compiling libloading v0.8.8
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling raylib-sys v5.5.1
[INFO] [stderr]     Checking raylib v5.5.1
[INFO] [stderr]     Checking proyecto1 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `raylib::prelude::*`
[INFO] [stdout]  --> src/consts.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use raylib::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Weapon`
[INFO] [stdout]  --> src/hud.rs:4:60
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::types::{SlotItem, Item, ConsumableType, Rarity, Weapon};
[INFO] [stdout]   |                                                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Music` and `RaylibAudio`
[INFO] [stdout]   --> src/main.rs:19:27
[INFO] [stdout]    |
[INFO] [stdout] 19 | use raylib::core::audio::{RaylibAudio, Music};
[INFO] [stdout]    |                           ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `raylib::prelude::*`
[INFO] [stdout]  --> src/consts.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use raylib::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Weapon`
[INFO] [stdout]  --> src/hud.rs:4:60
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::types::{SlotItem, Item, ConsumableType, Rarity, Weapon};
[INFO] [stdout]   |                                                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Music` and `RaylibAudio`
[INFO] [stdout]   --> src/main.rs:19:27
[INFO] [stdout]    |
[INFO] [stdout] 19 | use raylib::core::audio::{RaylibAudio, Music};
[INFO] [stdout]    |                           ^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collides_chest`
[INFO] [stdout]   --> src/player.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let collides_chest = |x: f32, y: f32| -> bool {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collides_chest`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collides_chest`
[INFO] [stdout]   --> src/player.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let collides_chest = |x: f32, y: f32| -> bool {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collides_chest`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chests`
[INFO] [stdout]    --> src/ai.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     chests: &[Chest],
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_chests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ndist`
[INFO] [stdout]    --> src/ai.rs:195:17
[INFO] [stdout]     |
[INFO] [stdout] 195 |             let ndist = (ndx * ndy + ndy * ndy).sqrt(); // <-- ojo: esto tiene un bug (dx*dy). Corrígelo abajo.
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_ndist`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `mvx` is never read
[INFO] [stdout]    --> src/ai.rs:178:17
[INFO] [stdout]     |
[INFO] [stdout] 178 |                 mvx = 0.0;
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `mvy` is never read
[INFO] [stdout]    --> src/ai.rs:189:17
[INFO] [stdout]     |
[INFO] [stdout] 189 |                 mvy = 0.0;
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chests`
[INFO] [stdout]    --> src/ai.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     chests: &[Chest],
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_chests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ndist`
[INFO] [stdout]    --> src/ai.rs:195:17
[INFO] [stdout]     |
[INFO] [stdout] 195 |             let ndist = (ndx * ndy + ndy * ndy).sqrt(); // <-- ojo: esto tiene un bug (dx*dy). Corrígelo abajo.
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_ndist`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `mvx` is never read
[INFO] [stdout]    --> src/ai.rs:178:17
[INFO] [stdout]     |
[INFO] [stdout] 178 |                 mvx = 0.0;
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `mvy` is never read
[INFO] [stdout]    --> src/ai.rs:189:17
[INFO] [stdout]     |
[INFO] [stdout] 189 |                 mvy = 0.0;
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `side` is never read
[INFO] [stdout]    --> src/render.rs:136:24
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let mut side = 0; // 0 = cara X, 1 = cara Y
[INFO] [stdout]     |                        ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 149 |                 side = 1;
[INFO] [stdout]     |                 -------- `side` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `side` is never read
[INFO] [stdout]    --> src/render.rs:136:24
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let mut side = 0; // 0 = cara X, 1 = cara Y
[INFO] [stdout]     |                        ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 149 |                 side = 1;
[INFO] [stdout]     |                 -------- `side` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/map.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let mut health_small_spawns = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/map.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let mut shield_small_spawns = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/map.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         let mut health_small_spawns = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/map.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let mut shield_small_spawns = Vec::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tw`
[INFO] [stdout]    --> src/hud.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let tw = d.measure_text(text, text_fs);
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_tw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tw`
[INFO] [stdout]    --> src/hud.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let tw = d.measure_text(text, text_fs);
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_tw`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:293:77
[INFO] [stdout]     |
[INFO] [stdout] 293 |     let mut enemies: Vec<Enemy> = map.enemy_spawns.iter().enumerate().map(|(i, &(ex, ey))| {
[INFO] [stdout]     |                                                                             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dt`
[INFO] [stdout]    --> src/main.rs:602:9
[INFO] [stdout]     |
[INFO] [stdout] 602 |     let dt = rl.get_frame_time();
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_dt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:293:77
[INFO] [stdout]     |
[INFO] [stdout] 293 |     let mut enemies: Vec<Enemy> = map.enemy_spawns.iter().enumerate().map(|(i, &(ex, ey))| {
[INFO] [stdout]     |                                                                             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dt`
[INFO] [stdout]    --> src/main.rs:602:9
[INFO] [stdout]     |
[INFO] [stdout] 602 |     let dt = rl.get_frame_time();
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_dt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `P_HEALTH_BIG` is never used
[INFO] [stdout]   --> src/consts.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub const P_HEALTH_BIG:   f32 = 0.20; // Vida mayor (+100 hasta 100)
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `P_SHIELD_BIG` is never used
[INFO] [stdout]   --> src/consts.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const P_SHIELD_BIG:   f32 = 0.20; // Escudo mayor (+50 hasta 100)
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `P_HEALTH_BIG` is never used
[INFO] [stdout]   --> src/consts.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub const P_HEALTH_BIG:   f32 = 0.20; // Vida mayor (+100 hasta 100)
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `P_SHIELD_BIG` is never used
[INFO] [stdout]   --> src/consts.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const P_SHIELD_BIG:   f32 = 0.20; // Escudo mayor (+50 hasta 100)
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `P_RARITY_LEGENDARY` is never used
[INFO] [stdout]   --> src/consts.rs:50:11
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub const P_RARITY_LEGENDARY:  f32 = 0.03;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `P_RARITY_LEGENDARY` is never used
[INFO] [stdout]   --> src/consts.rs:50:11
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub const P_RARITY_LEGENDARY:  f32 = 0.03;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `P_AMMO_ROCKET` is never used
[INFO] [stdout]   --> src/consts.rs:64:11
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub const P_AMMO_ROCKET: f32 = 0.05; // cohetes
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `P_AMMO_ROCKET` is never used
[INFO] [stdout]   --> src/consts.rs:64:11
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub const P_AMMO_ROCKET: f32 = 0.05; // cohetes
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/types.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl Rarity {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn name(self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/types.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl Rarity {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn name(self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/types.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 96 | impl WeaponType {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 97 |     pub fn name(self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/types.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 96 | impl WeaponType {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 97 |     pub fn name(self) -> &'static str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/types.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct Weapon {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] 110 |     pub wtype: WeaponType,      // <- tipo
[INFO] [stdout] 111 |     pub name: &'static str,     // nombre visible
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Weapon` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/types.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct Weapon {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] 110 |     pub wtype: WeaponType,      // <- tipo
[INFO] [stdout] 111 |     pub name: &'static str,     // nombre visible
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Weapon` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_alive` is never used
[INFO] [stdout]    --> src/types.rs:140:21
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl Enemy { pub fn is_alive(&self) -> bool { self.state != EnemyState::Dead && self.hp > 0 } }
[INFO] [stdout]     | ----------          ^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | method in this implementation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_alive` is never used
[INFO] [stdout]    --> src/types.rs:140:21
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl Enemy { pub fn is_alive(&self) -> bool { self.state != EnemyState::Dead && self.hp > 0 } }
[INFO] [stdout]     | ----------          ^^^^^^^^
[INFO] [stdout]     | |
[INFO] [stdout]     | method in this implementation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Item` is never constructed
[INFO] [stdout]    --> src/types.rs:155:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub enum PickupKind {
[INFO] [stdout]     |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 155 |     Item { item: Item, count: i32 },
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PickupKind` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `radius` is never read
[INFO] [stdout]    --> src/types.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub struct Pickup {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub radius: f32,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Item` is never constructed
[INFO] [stdout]    --> src/types.rs:155:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub enum PickupKind {
[INFO] [stdout]     |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 155 |     Item { item: Item, count: i32 },
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PickupKind` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `color` is never read
[INFO] [stdout]    --> src/types.rs:190:70
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub struct Decoration { pub x: f32, pub y: f32, pub radius: f32, pub color: Color, pub kind: DecoKind }
[INFO] [stdout]     |            ---------- field in this struct                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `radius` is never read
[INFO] [stdout]    --> src/types.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub struct Pickup {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub radius: f32,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `color_closed` and `color_opened` are never read
[INFO] [stdout]    --> src/types.rs:197:9
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub struct Chest {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub color_closed: Color,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 198 |     pub color_opened: Color,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]    --> src/types.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 211 | impl ConsumableType {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 212 |     pub fn name(self) -> &'static str {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `color` is never read
[INFO] [stdout]    --> src/types.rs:190:70
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub struct Decoration { pub x: f32, pub y: f32, pub radius: f32, pub color: Color, pub kind: DecoKind }
[INFO] [stdout]     |            ---------- field in this struct                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_solid` is never used
[INFO] [stdout]    --> src/map.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl Map {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn is_solid(&self, x: i32, y: i32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ra` is never read
[INFO] [stdout]   --> src/audio.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Audio {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 19 |     ra: &'static RaylibAudio,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_master`, `music_pause`, `music_resume`, and `music_set_volume` are never used
[INFO] [stdout]    --> src/audio.rs:84:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Audio {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn set_master(&self, v: f32) { self.ra.set_master_volume(v.clamp(0.0, 1.0)); }
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn music_pause(&self)  { self.music_game.pause_stream(); }
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 120 | pub fn music_resume(&self) { self.music_game.resume_stream(); }
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 121 | pub fn music_set_volume(&self, v: f32) { self.music_game.set_volume(v.clamp(0.0, 1.0)); }
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `color_closed` and `color_opened` are never read
[INFO] [stdout]    --> src/types.rs:197:9
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub struct Chest {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub color_closed: Color,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 198 |     pub color_opened: Color,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]    --> src/types.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 211 | impl ConsumableType {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 212 |     pub fn name(self) -> &'static str {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_solid` is never used
[INFO] [stdout]    --> src/map.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl Map {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn is_solid(&self, x: i32, y: i32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ra` is never read
[INFO] [stdout]   --> src/audio.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Audio {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 19 |     ra: &'static RaylibAudio,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_master`, `music_pause`, `music_resume`, and `music_set_volume` are never used
[INFO] [stdout]    --> src/audio.rs:84:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Audio {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn set_master(&self, v: f32) { self.ra.set_master_volume(v.clamp(0.0, 1.0)); }
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn music_pause(&self)  { self.music_game.pause_stream(); }
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 120 | pub fn music_resume(&self) { self.music_game.resume_stream(); }
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 121 | pub fn music_set_volume(&self, v: f32) { self.music_game.set_volume(v.clamp(0.0, 1.0)); }
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 45.86s
[INFO] running `Command { std: "docker" "inspect" "1d854243ea12c9c005a269c74b7b453dac38a5501f4aab77b3e76d6217a3707c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1d854243ea12c9c005a269c74b7b453dac38a5501f4aab77b3e76d6217a3707c", kill_on_drop: false }`
[INFO] [stdout] 1d854243ea12c9c005a269c74b7b453dac38a5501f4aab77b3e76d6217a3707c
