[INFO] cloning repository https://github.com/jzhang113/7drl-2022
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jzhang113/7drl-2022" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjzhang113%2F7drl-2022", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjzhang113%2F7drl-2022'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b267dc42368460e144031061c8fcbf7f6a05e578
[INFO] checking jzhang113/7drl-2022 against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjzhang113%2F7drl-2022" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jzhang113/7drl-2022
[INFO] finished tweaking git repo https://github.com/jzhang113/7drl-2022
[INFO] tweaked toml for git repo https://github.com/jzhang113/7drl-2022 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jzhang113/7drl-2022 on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jzhang113/7drl-2022 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" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.7
[INFO] [stderr]   Downloaded shrev v1.1.1
[INFO] [stderr]   Downloaded tynm v0.1.6
[INFO] [stderr]   Downloaded tuple_utils v0.3.0
[INFO] [stderr]   Downloaded specs-derive v0.4.1
[INFO] [stderr]   Downloaded rand_xorshift v0.3.0
[INFO] [stderr]   Downloaded bracket-random v0.8.2
[INFO] [stderr]   Downloaded wasm-timer v0.1.3
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.79
[INFO] [stderr]   Downloaded wayland-egl v0.28.6
[INFO] [stderr]   Downloaded xdg v2.4.1
[INFO] [stderr]   Downloaded bracket-lib v0.8.1
[INFO] [stderr]   Downloaded crossbeam-queue v0.3.4
[INFO] [stderr]   Downloaded bracket-algorithm-traits v0.8.2
[INFO] [stderr]   Downloaded bracket-geometry v0.8.3
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.79
[INFO] [stderr]   Downloaded bracket-noise v0.8.2
[INFO] [stderr]   Downloaded redox_syscall v0.2.11
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.79
[INFO] [stderr]   Downloaded anyhow v1.0.55
[INFO] [stderr]   Downloaded miniz_oxide v0.4.4
[INFO] [stderr]   Downloaded wide v0.6.5
[INFO] [stderr]   Downloaded flate2 v1.0.22
[INFO] [stderr]   Downloaded safe_arch v0.5.2
[INFO] [stderr]   Downloaded atom v0.3.6
[INFO] [stderr]   Downloaded crossbeam-channel v0.5.2
[INFO] [stderr]   Downloaded glow v0.10.0
[INFO] [stderr]   Downloaded specs v0.17.0
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.79
[INFO] [stderr]   Downloaded ezing v0.2.1
[INFO] [stderr]   Downloaded js-sys v0.3.56
[INFO] [stderr]   Downloaded jpeg-decoder v0.1.22
[INFO] [stderr]   Downloaded glutin v0.26.0
[INFO] [stderr]   Downloaded rltk v0.8.1
[INFO] [stderr]   Downloaded ultraviolet v0.8.1
[INFO] [stderr]   Downloaded shred v0.12.0
[INFO] [stderr]   Downloaded serde_yaml v0.8.23
[INFO] [stderr]   Downloaded bracket-pathfinding v0.8.4
[INFO] [stderr]   Downloaded bracket-color v0.8.2
[INFO] [stderr]   Downloaded cocoa v0.23.0
[INFO] [stderr]   Downloaded bytemuck v1.8.0
[INFO] [stderr]   Downloaded getrandom v0.2.5
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.7
[INFO] [stderr]   Downloaded libc v0.2.119
[INFO] [stderr]   Downloaded hibitset v0.6.3
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.79
[INFO] [stderr]   Downloaded web-sys v0.3.56
[INFO] [stderr]   Downloaded bracket-terminal v0.8.5
[INFO] [stderr]   Downloaded object-pool v0.5.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0548342b254abe2e07a5d4e67e091c6984d0cf377bc8dd3300a2cfc18263de09
[INFO] running `Command { std: "docker" "start" "-a" "0548342b254abe2e07a5d4e67e091c6984d0cf377bc8dd3300a2cfc18263de09", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0548342b254abe2e07a5d4e67e091c6984d0cf377bc8dd3300a2cfc18263de09", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0548342b254abe2e07a5d4e67e091c6984d0cf377bc8dd3300a2cfc18263de09", kill_on_drop: false }`
[INFO] [stdout] 0548342b254abe2e07a5d4e67e091c6984d0cf377bc8dd3300a2cfc18263de09
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 088d14d45968c7658719b7cab41d0176d1f18bb14343fe28aca2c922647d0d29
[INFO] running `Command { std: "docker" "start" "-a" "088d14d45968c7658719b7cab41d0176d1f18bb14343fe28aca2c922647d0d29", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.119
[INFO] [stderr]    Compiling xml-rs v0.8.4
[INFO] [stderr]    Compiling memchr v2.4.1
[INFO] [stderr]     Checking smallvec v1.8.0
[INFO] [stderr]     Checking once_cell v1.10.0
[INFO] [stderr]     Checking libloading v0.7.3
[INFO] [stderr]    Compiling wayland-sys v0.28.6
[INFO] [stderr]    Compiling crossbeam-utils v0.8.7
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]    Compiling nom v7.1.0
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]     Checking bytemuck v1.8.0
[INFO] [stderr]     Checking downcast-rs v1.2.0
[INFO] [stderr]     Checking scoped-tls v1.0.0
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]     Checking dlib v0.5.0
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]     Checking ttf-parser v0.6.2
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling x11-dl v2.19.1
[INFO] [stderr]     Checking safe_arch v0.5.2
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.7
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.5
[INFO] [stderr]    Compiling syn v1.0.86
[INFO] [stderr]     Checking libloading v0.6.7
[INFO] [stderr]    Compiling ahash v0.7.6
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]     Checking slab v0.4.5
[INFO] [stderr]    Compiling rayon-core v1.9.1
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]     Checking raw-window-handle v0.4.2
[INFO] [stderr]     Checking dlib v0.4.2
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]     Checking lazycell v1.3.0
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]     Checking wide v0.6.5
[INFO] [stderr]     Checking deflate v0.8.6
[INFO] [stderr]    Compiling rayon v1.5.1
[INFO] [stderr]    Compiling nom v5.1.2
[INFO] [stderr]     Checking regex-syntax v0.6.25
[INFO] [stderr]    Compiling wayland-scanner v0.28.6
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.2
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]    Compiling anyhow v1.0.55
[INFO] [stderr]     Checking crossbeam-deque v0.8.1
[INFO] [stderr]     Checking png v0.16.8
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking getrandom v0.2.5
[INFO] [stderr]     Checking nix v0.20.0
[INFO] [stderr]     Checking dirs-sys v0.3.6
[INFO] [stderr]     Checking parking_lot_core v0.8.5
[INFO] [stderr]     Checking net2 v0.2.37
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking dirs v4.0.0
[INFO] [stderr]     Checking ultraviolet v0.8.1
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.7
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.5
[INFO] [stderr]    Compiling wayland-client v0.28.6
[INFO] [stderr]    Compiling wayland-protocols v0.28.6
[INFO] [stderr]     Checking xdg v2.4.1
[INFO] [stderr]     Checking memmap2 v0.1.0
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking owned_ttf_parser v0.6.0
[INFO] [stderr]     Checking xcursor v0.3.4
[INFO] [stderr]     Checking rusttype v0.9.2
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]     Checking raw-window-handle v0.3.4
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking rand_xorshift v0.3.0
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]     Checking bracket-color v0.8.2
[INFO] [stderr]     Checking regex v1.5.4
[INFO] [stderr]     Checking andrew v0.3.1
[INFO] [stderr]     Checking object-pool v0.5.4
[INFO] [stderr]     Checking image v0.23.14
[INFO] [stderr]     Checking flate2 v1.0.22
[INFO] [stderr]     Checking bracket-geometry v0.8.3
[INFO] [stderr]    Compiling indexmap v1.8.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.4
[INFO] [stderr]     Checking glow v0.10.0
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking linked-hash-map v0.5.4
[INFO] [stderr]     Checking mopa v0.2.2
[INFO] [stderr]     Checking atom v0.3.6
[INFO] [stderr]     Checking bracket-algorithm-traits v0.8.2
[INFO] [stderr]     Checking ryu v1.0.9
[INFO] [stderr]     Checking bracket-pathfinding v0.8.4
[INFO] [stderr]     Checking tuple_utils v0.3.0
[INFO] [stderr]     Checking bracket-random v0.8.2
[INFO] [stderr]     Checking shrev v1.1.1
[INFO] [stderr]     Checking ezing v0.2.1
[INFO] [stderr]     Checking yaml-rust v0.4.5
[INFO] [stderr]     Checking bracket-noise v0.8.2
[INFO] [stderr]     Checking calloop v0.6.5
[INFO] [stderr]     Checking tynm v0.1.6
[INFO] [stderr]     Checking wayland-commons v0.28.6
[INFO] [stderr]     Checking hibitset v0.6.3
[INFO] [stderr]     Checking shred v0.12.0
[INFO] [stderr]    Compiling serde_derive v1.0.136
[INFO] [stderr]    Compiling specs-derive v0.4.1
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]     Checking specs v0.17.0
[INFO] [stderr]     Checking wayland-cursor v0.28.6
[INFO] [stderr]     Checking wayland-egl v0.28.6
[INFO] [stderr]     Checking serde v1.0.136
[INFO] [stderr]     Checking serde_yaml v0.8.23
[INFO] [stderr]     Checking smithay-client-toolkit v0.12.3
[INFO] [stderr]     Checking winit v0.24.0
[INFO] [stderr]     Checking glutin v0.26.0
[INFO] [stderr]     Checking bracket-terminal v0.8.5
[INFO] [stderr]     Checking bracket-lib v0.8.1
[INFO] [stderr]     Checking rltk v0.8.1
[INFO] [stderr]     Checking mhrl v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `AreaInfo`
[INFO] [stdout]  --> src/data/mod.rs:2:38
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use area_info::{get_random_area, AreaInfo};
[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: `AreaInfo`
[INFO] [stdout]  --> src/data/mod.rs:2:38
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub use area_info::{get_random_area, AreaInfo};
[INFO] [stdout]   |                                      ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x` is never read
[INFO] [stdout]    --> src/gui/controls.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |         x += name.len() + 5;
[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 `x` is never read
[INFO] [stdout]    --> src/gui/controls.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |         x += name.len() + 5;
[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: unused variable: `depth`
[INFO] [stdout]  --> src/map_builder/bsp.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     depth: i32,
[INFO] [stdout]   |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exit_x`
[INFO] [stdout]   --> src/map_builder/bsp.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let exit_x = rng.range(map.rooms[exit_room].x1, map.rooms[exit_room].x2);
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_exit_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exit_y`
[INFO] [stdout]   --> src/map_builder/bsp.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let exit_y = rng.range(map.rooms[exit_room].y1, map.rooms[exit_room].y2);
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_exit_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/map_builder/bsp.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let mut map = {
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `room`
[INFO] [stdout]   --> src/map_builder/bsp.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |     for room in cloned_rooms.iter() {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_room`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `quality`
[INFO] [stdout]   --> src/map_builder/bsp.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let quality = depth;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_quality`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exit_tile`
[INFO] [stdout]    --> src/map_builder/drunk_walk.rs:258:13
[INFO] [stdout]     |
[INFO] [stdout] 258 |         let exit_tile = remove_unreachable_areas_returning_most_distant(&mut self.map, start_idx);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exit_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spawn_info`
[INFO] [stdout]   --> src/map_builder/overworld.rs:28:51
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn spawn_entities(&mut self, ecs: &mut World, spawn_info: &crate::SpawnInfo) {
[INFO] [stdout]    |                                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spawn_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/player.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut attacks = ecs.write_storage::<AttackIntent>();
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attacks`
[INFO] [stdout]   --> src/player.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut attacks = ecs.write_storage::<AttackIntent>();
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attacks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/player.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |     let mut stamina = stams.get_mut(*player).unwrap();
[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/player.rs:337:17
[INFO] [stdout]     |
[INFO] [stdout] 337 |             let mut stamina = stams.get_mut(*player).unwrap();
[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/player.rs:408:9
[INFO] [stdout]     |
[INFO] [stdout] 408 |     let mut stamina = stams.get_mut(*player).unwrap();
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `viewables`
[INFO] [stdout]    --> src/player.rs:715:15
[INFO] [stdout]     |
[INFO] [stdout] 715 |     for (ent, viewables, v_index) in (&entities, &viewables, &v_indexes).join() {
[INFO] [stdout]     |               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_viewables`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]  --> src/map_builder/bsp.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     depth: i32,
[INFO] [stdout]   |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exit_x`
[INFO] [stdout]   --> src/map_builder/bsp.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let exit_x = rng.range(map.rooms[exit_room].x1, map.rooms[exit_room].x2);
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_exit_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exit_y`
[INFO] [stdout]   --> src/map_builder/bsp.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let exit_y = rng.range(map.rooms[exit_room].y1, map.rooms[exit_room].y2);
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_exit_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/map_builder/bsp.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let mut map = {
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `room`
[INFO] [stdout]   --> src/map_builder/bsp.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |     for room in cloned_rooms.iter() {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_room`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `quality`
[INFO] [stdout]   --> src/map_builder/bsp.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let quality = depth;
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_quality`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exit_tile`
[INFO] [stdout]    --> src/map_builder/drunk_walk.rs:258:13
[INFO] [stdout]     |
[INFO] [stdout] 258 |         let exit_tile = remove_unreachable_areas_returning_most_distant(&mut self.map, start_idx);
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exit_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spawn_info`
[INFO] [stdout]   --> src/map_builder/overworld.rs:28:51
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn spawn_entities(&mut self, ecs: &mut World, spawn_info: &crate::SpawnInfo) {
[INFO] [stdout]    |                                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_spawn_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/player.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut attacks = ecs.write_storage::<AttackIntent>();
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attacks`
[INFO] [stdout]   --> src/player.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut attacks = ecs.write_storage::<AttackIntent>();
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attacks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/player.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |     let mut stamina = stams.get_mut(*player).unwrap();
[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/player.rs:337:17
[INFO] [stdout]     |
[INFO] [stdout] 337 |             let mut stamina = stams.get_mut(*player).unwrap();
[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/sys_attack.rs:83:41
[INFO] [stdout]    |
[INFO] [stdout] 83 | ...                   if let Some(mut aff_health) = healths.get_mut(*ent_hit) {
[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/player.rs:408:9
[INFO] [stdout]     |
[INFO] [stdout] 408 |     let mut stamina = stams.get_mut(*player).unwrap();
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `viewables`
[INFO] [stdout]    --> src/player.rs:715:15
[INFO] [stdout]     |
[INFO] [stdout] 715 |     for (ent, viewables, v_index) in (&entities, &viewables, &v_indexes).join() {
[INFO] [stdout]     |               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_viewables`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/sys_particle.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 |     for (ent, mut lifetime) in (&entities, &mut particles).join() {
[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/sys_pickup.rs:19:41
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let (entities, player, mut map, mut run_state, positions, scheds, heals, mut healths) =
[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/sys_pickup.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 |         for (ent, pos, mut health, _) in (&entities, &positions, &mut healths, &scheds).join() {
[INFO] [stdout]    |                        ----^^^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]   --> src/sys_pickup.rs:19:24
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let (entities, player, mut map, mut run_state, positions, scheds, heals, mut healths) =
[INFO] [stdout]    |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `run_state`
[INFO] [stdout]   --> src/sys_pickup.rs:19:41
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let (entities, player, mut map, mut run_state, positions, scheds, heals, mut healths) =
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_run_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ent`
[INFO] [stdout]   --> src/sys_pickup.rs:23:14
[INFO] [stdout]    |
[INFO] [stdout] 23 |         for (ent, pos, mut health, _) in (&entities, &positions, &mut healths, &scheds).join() {
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_ent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ent`
[INFO] [stdout]    --> src/sys_push.rs:141:5
[INFO] [stdout]     |
[INFO] [stdout] 141 |     ent: Entity,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_ent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force`
[INFO] [stdout]    --> src/sys_push.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     force: &crate::PushForce,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_force`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `multi`
[INFO] [stdout]    --> src/sys_push.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 144 |     multi: &crate::MultiTile,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_multi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]    --> src/sys_push.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     map: &mut crate::Map,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/sys_attack.rs:83:41
[INFO] [stdout]    |
[INFO] [stdout] 83 | ...                   if let Some(mut aff_health) = healths.get_mut(*ent_hit) {
[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/sys_visibility.rs:19:66
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let (mut map, entities, mut viewsheds, mut view_indexes, mut viewables, pos, player) = data;
[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/sys_visibility.rs:59:23
[INFO] [stdout]    |
[INFO] [stdout] 59 |             for (ent, mut v_index) in (&entities, &mut view_indexes).join() {
[INFO] [stdout]    |                       ----^^^^^^^
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `viewables`
[INFO] [stdout]   --> src/sys_visibility.rs:19:66
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let (mut map, entities, mut viewsheds, mut view_indexes, mut viewables, pos, player) = data;
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_viewables`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:270:17
[INFO] [stdout]     |
[INFO] [stdout] 270 |             let mut player_pos = positions
[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/main.rs:297:13
[INFO] [stdout]     |
[INFO] [stdout] 297 |         let mut player_healths = healths
[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/main.rs:318:25
[INFO] [stdout]     |
[INFO] [stdout] 318 |             if let Some(mut log_quest) = log_quest {
[INFO] [stdout]     |                         ----^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_controls_text` is never used
[INFO] [stdout]  --> src/gui/controls.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn update_controls_text(ecs: &World, ctx: &mut Rltk, status: &RunState) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_weapon_text` is never used
[INFO] [stdout]    --> src/gui/controls.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub fn add_weapon_text(ctx: &mut Rltk, weapon: &Box<dyn crate::weapon::Weapon>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_movement_controls` is never used
[INFO] [stdout]    --> src/gui/controls.rs:164:4
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn draw_movement_controls(ctx: &mut Rltk, x: i32, y: i32, fg: RGB, bg: RGB, inactive: bool) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_blocked_tiles` is never used
[INFO] [stdout]    --> src/gui/map.rs:151:8
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub fn draw_blocked_tiles(ecs: &World, ctx: &mut Rltk) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `consumables` is never read
[INFO] [stdout]  --> src/inventory.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Inventory {
[INFO] [stdout]   |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 5 |     pub consumables: Vec<String>,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `build_room` and `build_hallway` are never used
[INFO] [stdout]    --> src/map.rs:211:19
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl Map {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub(crate) fn build_room(&mut self, room: Rect) {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub(crate) fn build_hallway(&mut self, start: Point, end: Point) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_snapshot_history` is never used
[INFO] [stdout]   --> src/map_builder/mod.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait MapBuilder {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 13 |     fn get_snapshot_history(&self) -> Vec<super::Map>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_builder` is never used
[INFO] [stdout]   --> src/map_builder/mod.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn random_builder(width: i32, height: i32, name: String) -> Box<dyn MapBuilder> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_rogue_map` is never used
[INFO] [stdout]  --> src/map_builder/bsp.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn build_rogue_map(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_level` is never used
[INFO] [stdout]   --> src/map_builder/bsp.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn build_level(ecs: &mut specs::World, width: i32, height: i32, depth: i32) -> Map {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_room_to_map` is never used
[INFO] [stdout]  --> src/map_builder/common.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn apply_room_to_map(map: &mut Map, room: &Rect) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_horizontal_tunnel` is never used
[INFO] [stdout]   --> src/map_builder/common.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn apply_horizontal_tunnel(map: &mut Map, x1: i32, x2: i32, y: i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_vertical_tunnel` is never used
[INFO] [stdout]   --> src/map_builder/common.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn apply_vertical_tunnel(map: &mut Map, y1: i32, y2: i32, x: i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Gather` and `Urgent` are never constructed
[INFO] [stdout]   --> src/quest/quest.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum QuestType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 24 |     Hunt,
[INFO] [stdout] 25 |     Gather,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 26 |     Urgent,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QuestType` 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 `short_name` is never used
[INFO] [stdout]   --> src/quest/quest.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl QuestType {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn short_name(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `barrel_builder` is never used
[INFO] [stdout]    --> src/spawn/spawner.rs:335:4
[INFO] [stdout]     |
[INFO] [stdout] 335 | fn barrel_builder(ecs: &mut World, point: Point) -> EntityBuilder {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_empty_barrel` is never used
[INFO] [stdout]    --> src/spawn/spawner.rs:360:8
[INFO] [stdout]     |
[INFO] [stdout] 360 | pub fn build_empty_barrel(ecs: &mut World, point: Point, _quality: i32) -> Entity {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `p_builder` is never read
[INFO] [stdout]   --> src/sys_ai.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | struct AiStepData<'a> {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     p_builder: &'a mut crate::ParticleBuilder,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Counter` and `Guard` are never constructed
[INFO] [stdout]   --> src/weapon/lance.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | enum LanceState {
[INFO] [stdout]    |      ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 15 |     Counter,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 16 |     Guard,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/spawn/spawner.rs:153:30
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub fn build_enemy_base(ecs: &mut World) -> EntityBuilder {
[INFO] [stdout]     |                              ^^^^^^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub fn build_enemy_base(ecs: &mut World) -> EntityBuilder<'_> {
[INFO] [stdout]     |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/spawn/spawner.rs:335:24
[INFO] [stdout]     |
[INFO] [stdout] 335 | fn barrel_builder(ecs: &mut World, point: Point) -> EntityBuilder {
[INFO] [stdout]     |                        ^^^^^^^^^^                   ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 335 | fn barrel_builder(ecs: &mut World, point: Point) -> EntityBuilder<'_> {
[INFO] [stdout]     |                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/spawn/spawner.rs:385:24
[INFO] [stdout]     |
[INFO] [stdout] 385 | fn build_npc_base(ecs: &mut World, point: Point) -> EntityBuilder {
[INFO] [stdout]     |                        ^^^^^^^^^^                   ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 385 | fn build_npc_base(ecs: &mut World, point: Point) -> EntityBuilder<'_> {
[INFO] [stdout]     |                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/sys_particle.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 |     for (ent, mut lifetime) in (&entities, &mut particles).join() {
[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/sys_pickup.rs:19:41
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let (entities, player, mut map, mut run_state, positions, scheds, heals, mut healths) =
[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/sys_pickup.rs:23:24
[INFO] [stdout]    |
[INFO] [stdout] 23 |         for (ent, pos, mut health, _) in (&entities, &positions, &mut healths, &scheds).join() {
[INFO] [stdout]    |                        ----^^^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]   --> src/sys_pickup.rs:19:24
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let (entities, player, mut map, mut run_state, positions, scheds, heals, mut healths) =
[INFO] [stdout]    |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `run_state`
[INFO] [stdout]   --> src/sys_pickup.rs:19:41
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let (entities, player, mut map, mut run_state, positions, scheds, heals, mut healths) =
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_run_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ent`
[INFO] [stdout]   --> src/sys_pickup.rs:23:14
[INFO] [stdout]    |
[INFO] [stdout] 23 |         for (ent, pos, mut health, _) in (&entities, &positions, &mut healths, &scheds).join() {
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_ent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ent`
[INFO] [stdout]    --> src/sys_push.rs:141:5
[INFO] [stdout]     |
[INFO] [stdout] 141 |     ent: Entity,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_ent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force`
[INFO] [stdout]    --> src/sys_push.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     force: &crate::PushForce,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_force`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `multi`
[INFO] [stdout]    --> src/sys_push.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 144 |     multi: &crate::MultiTile,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_multi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]    --> src/sys_push.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     map: &mut crate::Map,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/sys_visibility.rs:19:66
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let (mut map, entities, mut viewsheds, mut view_indexes, mut viewables, pos, player) = data;
[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/sys_visibility.rs:59:23
[INFO] [stdout]    |
[INFO] [stdout] 59 |             for (ent, mut v_index) in (&entities, &mut view_indexes).join() {
[INFO] [stdout]    |                       ----^^^^^^^
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `viewables`
[INFO] [stdout]   --> src/sys_visibility.rs:19:66
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let (mut map, entities, mut viewsheds, mut view_indexes, mut viewables, pos, player) = data;
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_viewables`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:270:17
[INFO] [stdout]     |
[INFO] [stdout] 270 |             let mut player_pos = positions
[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/main.rs:297:13
[INFO] [stdout]     |
[INFO] [stdout] 297 |         let mut player_healths = healths
[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/main.rs:318:25
[INFO] [stdout]     |
[INFO] [stdout] 318 |             if let Some(mut log_quest) = log_quest {
[INFO] [stdout]     |                         ----^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_controls_text` is never used
[INFO] [stdout]  --> src/gui/controls.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn update_controls_text(ecs: &World, ctx: &mut Rltk, status: &RunState) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add_weapon_text` is never used
[INFO] [stdout]    --> src/gui/controls.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub fn add_weapon_text(ctx: &mut Rltk, weapon: &Box<dyn crate::weapon::Weapon>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_movement_controls` is never used
[INFO] [stdout]    --> src/gui/controls.rs:164:4
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn draw_movement_controls(ctx: &mut Rltk, x: i32, y: i32, fg: RGB, bg: RGB, inactive: bool) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_blocked_tiles` is never used
[INFO] [stdout]    --> src/gui/map.rs:151:8
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub fn draw_blocked_tiles(ecs: &World, ctx: &mut Rltk) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `consumables` is never read
[INFO] [stdout]  --> src/inventory.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Inventory {
[INFO] [stdout]   |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 5 |     pub consumables: Vec<String>,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `build_room` and `build_hallway` are never used
[INFO] [stdout]    --> src/map.rs:211:19
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl Map {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub(crate) fn build_room(&mut self, room: Rect) {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub(crate) fn build_hallway(&mut self, start: Point, end: Point) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_snapshot_history` is never used
[INFO] [stdout]   --> src/map_builder/mod.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait MapBuilder {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 13 |     fn get_snapshot_history(&self) -> Vec<super::Map>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_builder` is never used
[INFO] [stdout]   --> src/map_builder/mod.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn random_builder(width: i32, height: i32, name: String) -> Box<dyn MapBuilder> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_rogue_map` is never used
[INFO] [stdout]  --> src/map_builder/bsp.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn build_rogue_map(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_level` is never used
[INFO] [stdout]   --> src/map_builder/bsp.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn build_level(ecs: &mut specs::World, width: i32, height: i32, depth: i32) -> Map {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_room_to_map` is never used
[INFO] [stdout]  --> src/map_builder/common.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn apply_room_to_map(map: &mut Map, room: &Rect) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_horizontal_tunnel` is never used
[INFO] [stdout]   --> src/map_builder/common.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn apply_horizontal_tunnel(map: &mut Map, x1: i32, x2: i32, y: i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_vertical_tunnel` is never used
[INFO] [stdout]   --> src/map_builder/common.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn apply_vertical_tunnel(map: &mut Map, y1: i32, y2: i32, x: i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Gather` and `Urgent` are never constructed
[INFO] [stdout]   --> src/quest/quest.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum QuestType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 24 |     Hunt,
[INFO] [stdout] 25 |     Gather,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 26 |     Urgent,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QuestType` 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 `short_name` is never used
[INFO] [stdout]   --> src/quest/quest.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl QuestType {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn short_name(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `barrel_builder` is never used
[INFO] [stdout]    --> src/spawn/spawner.rs:335:4
[INFO] [stdout]     |
[INFO] [stdout] 335 | fn barrel_builder(ecs: &mut World, point: Point) -> EntityBuilder {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_empty_barrel` is never used
[INFO] [stdout]    --> src/spawn/spawner.rs:360:8
[INFO] [stdout]     |
[INFO] [stdout] 360 | pub fn build_empty_barrel(ecs: &mut World, point: Point, _quality: i32) -> Entity {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `p_builder` is never read
[INFO] [stdout]   --> src/sys_ai.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | struct AiStepData<'a> {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     p_builder: &'a mut crate::ParticleBuilder,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Counter` and `Guard` are never constructed
[INFO] [stdout]   --> src/weapon/lance.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | enum LanceState {
[INFO] [stdout]    |      ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 15 |     Counter,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 16 |     Guard,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/spawn/spawner.rs:153:30
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub fn build_enemy_base(ecs: &mut World) -> EntityBuilder {
[INFO] [stdout]     |                              ^^^^^^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub fn build_enemy_base(ecs: &mut World) -> EntityBuilder<'_> {
[INFO] [stdout]     |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/spawn/spawner.rs:335:24
[INFO] [stdout]     |
[INFO] [stdout] 335 | fn barrel_builder(ecs: &mut World, point: Point) -> EntityBuilder {
[INFO] [stdout]     |                        ^^^^^^^^^^                   ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 335 | fn barrel_builder(ecs: &mut World, point: Point) -> EntityBuilder<'_> {
[INFO] [stdout]     |                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/spawn/spawner.rs:385:24
[INFO] [stdout]     |
[INFO] [stdout] 385 | fn build_npc_base(ecs: &mut World, point: Point) -> EntityBuilder {
[INFO] [stdout]     |                        ^^^^^^^^^^                   ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 385 | fn build_npc_base(ecs: &mut World, point: Point) -> EntityBuilder<'_> {
[INFO] [stdout]     |                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.03s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v5.1.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 4`
[INFO] running `Command { std: "docker" "inspect" "088d14d45968c7658719b7cab41d0176d1f18bb14343fe28aca2c922647d0d29", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "088d14d45968c7658719b7cab41d0176d1f18bb14343fe28aca2c922647d0d29", kill_on_drop: false }`
[INFO] [stdout] 088d14d45968c7658719b7cab41d0176d1f18bb14343fe28aca2c922647d0d29
