[INFO] cloning repository https://github.com/TrialByTile/rs2sim
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/TrialByTile/rs2sim" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTrialByTile%2Frs2sim", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTrialByTile%2Frs2sim'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 747131f567cbffaf2e0a1ee55393e2f5bd06d3a7
[INFO] checking TrialByTile/rs2sim against try#04ea1e1f1a12cfa912c228ca278237d92d0bb6df for pr-148477-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTrialByTile%2Frs2sim" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/TrialByTile/rs2sim
[INFO] finished tweaking git repo https://github.com/TrialByTile/rs2sim
[INFO] tweaked toml for git repo https://github.com/TrialByTile/rs2sim written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/TrialByTile/rs2sim on toolchain 04ea1e1f1a12cfa912c228ca278237d92d0bb6df
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+04ea1e1f1a12cfa912c228ca278237d92d0bb6df" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/TrialByTile/rs2sim 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" "+04ea1e1f1a12cfa912c228ca278237d92d0bb6df" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+04ea1e1f1a12cfa912c228ca278237d92d0bb6df" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a77e0d204bd3b6bfd1cd34560f7b66977e90adc989ae96bd250c0688eca6d47b
[INFO] running `Command { std: "docker" "start" "-a" "a77e0d204bd3b6bfd1cd34560f7b66977e90adc989ae96bd250c0688eca6d47b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a77e0d204bd3b6bfd1cd34560f7b66977e90adc989ae96bd250c0688eca6d47b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a77e0d204bd3b6bfd1cd34560f7b66977e90adc989ae96bd250c0688eca6d47b", kill_on_drop: false }`
[INFO] [stdout] a77e0d204bd3b6bfd1cd34560f7b66977e90adc989ae96bd250c0688eca6d47b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+04ea1e1f1a12cfa912c228ca278237d92d0bb6df" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 804eb5188139ea996d24efe5d2b641c97567a268fa0f28a3d77c01966b7cb2fe
[INFO] running `Command { std: "docker" "start" "-a" "804eb5188139ea996d24efe5d2b641c97567a268fa0f28a3d77c01966b7cb2fe", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.171
[INFO] [stderr]    Compiling getrandom v0.3.2
[INFO] [stderr]    Compiling zerocopy v0.8.24
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.0
[INFO] [stderr]     Checking rs2sim v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `rng`
[INFO] [stdout]  --> src/main.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rand::{rng, rngs::ThreadRng, Rng};
[INFO] [stdout]   |            ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:389:20
[INFO] [stdout]     |
[INFO] [stdout] 389 |         max_hit *= (attacker.equipment_strength() + 64);
[INFO] [stdout]     |                    ^                                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 389 -         max_hit *= (attacker.equipment_strength() + 64);
[INFO] [stdout] 389 +         max_hit *= attacker.equipment_strength() + 64 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rng`
[INFO] [stdout]  --> src/main.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rand::{rng, rngs::ThreadRng, Rng};
[INFO] [stdout]   |            ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/main.rs:389:20
[INFO] [stdout]     |
[INFO] [stdout] 389 |         max_hit *= (attacker.equipment_strength() + 64);
[INFO] [stdout]     |                    ^                                  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 389 -         max_hit *= (attacker.equipment_strength() + 64);
[INFO] [stdout] 389 +         max_hit *= attacker.equipment_strength() + 64 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `elt`
[INFO] [stdout]    --> src/main.rs:126:42
[INFO] [stdout]     |
[INFO] [stdout] 126 |             items: core::array::from_fn(|elt| None),
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_elt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/main.rs:234:19
[INFO] [stdout]     |
[INFO] [stdout] 234 | fn megarare_table(context: &GameContext, rng: &mut ThreadRng) -> Option<Item> {
[INFO] [stdout]     |                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/main.rs:839:42
[INFO] [stdout]     |
[INFO] [stdout] 839 | fn summarize_search(mob: &RollsGemtable, context: &GameContext, trial_ticks: Vec<Option<TallyReport>>) {
[INFO] [stdout]     |                                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trial`
[INFO] [stdout]    --> src/main.rs:861:9
[INFO] [stdout]     |
[INFO] [stdout] 861 |     for trial in 0..trials {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_trial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `slots_needed` is never used
[INFO] [stdout]   --> src/main.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Item {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     fn slots_needed(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `indices` is never read
[INFO] [stdout]   --> src/main.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Inventory {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] 29 |     pub items: [Option<Item>; 28],
[INFO] [stdout] 30 |     pub indices: HashMap<String, usize>
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Inventory` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bank` is never constructed
[INFO] [stdout]   --> src/main.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct Bank {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `store` is never used
[INFO] [stdout]   --> src/main.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Bank {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 39 |     pub fn store(&mut self, item: &Item) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `index_of`, `first_available`, `can_loot`, `add_item`, `clear`, and `bank` are never used
[INFO] [stdout]    --> src/main.rs:62:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl Inventory {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn index_of(&self, item_name: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn first_available(&self) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn can_loot(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn add_item(&mut self, item: Item) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn bank(&mut self, bank: &mut Bank) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> src/main.rs:136:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | struct PlayerCoords {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] 136 |     x: i32, // east/west
[INFO] [stdout]     |     ^
[INFO] [stdout] 137 |     y: i32, // vertical aka dungeons
[INFO] [stdout]     |     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PlayerCoords` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ultrarare_table` is never used
[INFO] [stdout]    --> src/main.rs:169:4
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn ultrarare_table(context: &GameContext, rng: &mut ThreadRng) -> Option<Item> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Accurate`, `Controlled`, and `Defensive` are never constructed
[INFO] [stdout]    --> src/main.rs:339:5
[INFO] [stdout]     |
[INFO] [stdout] 338 | enum MeleeStyle {
[INFO] [stdout]     |      ---------- variants in this enum
[INFO] [stdout] 339 |     Accurate,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 340 |     Aggressive,
[INFO] [stdout] 341 |     Controlled,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 342 |     Defensive
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MeleeStyle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `style` is never read
[INFO] [stdout]    --> src/main.rs:348:5
[INFO] [stdout]     |
[INFO] [stdout] 346 | struct MeleeDps {
[INFO] [stdout]     |        -------- field in this struct
[INFO] [stdout] 347 |     str_bonus: u32,
[INFO] [stdout] 348 |     style: MeleeStyle,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MeleeDps` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_player` is never used
[INFO] [stdout]    --> src/main.rs:375:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | trait HasCombatStats {
[INFO] [stdout]     |       -------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 375 |     fn is_player(&self) -> bool;
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Accurate`, `Rapid`, and `Longrange` are never constructed
[INFO] [stdout]    --> src/main.rs:424:5
[INFO] [stdout]     |
[INFO] [stdout] 423 | enum RangedStyle {
[INFO] [stdout]     |      ----------- variants in this enum
[INFO] [stdout] 424 |     Accurate,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 425 |     Rapid,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 426 |     Longrange
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RangedStyle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ammo_str`, `accuracy`, `style`, and `rate` are never read
[INFO] [stdout]    --> src/main.rs:431:5
[INFO] [stdout]     |
[INFO] [stdout] 430 | struct RangedDps {
[INFO] [stdout]     |        --------- fields in this struct
[INFO] [stdout] 431 |     ammo_str: u32,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 432 |     accuracy: u32,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 433 |     style: RangedStyle,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 434 |     rate: u32,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RangedDps` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Ranged` and `Magic` are never constructed
[INFO] [stdout]    --> src/main.rs:443:5
[INFO] [stdout]     |
[INFO] [stdout] 441 | enum Loadout {
[INFO] [stdout]     |      ------- variants in this enum
[INFO] [stdout] 442 |     Melee(MeleeDps),
[INFO] [stdout] 443 |     Ranged(RangedDps),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 444 |     Magic(MagicDps),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Loadout` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `elt`
[INFO] [stdout]    --> src/main.rs:126:42
[INFO] [stdout]     |
[INFO] [stdout] 126 |             items: core::array::from_fn(|elt| None),
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_elt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/main.rs:234:19
[INFO] [stdout]     |
[INFO] [stdout] 234 | fn megarare_table(context: &GameContext, rng: &mut ThreadRng) -> Option<Item> {
[INFO] [stdout]     |                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/main.rs:839:42
[INFO] [stdout]     |
[INFO] [stdout] 839 | fn summarize_search(mob: &RollsGemtable, context: &GameContext, trial_ticks: Vec<Option<TallyReport>>) {
[INFO] [stdout]     |                                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trial`
[INFO] [stdout]    --> src/main.rs:861:9
[INFO] [stdout]     |
[INFO] [stdout] 861 |     for trial in 0..trials {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_trial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `slots_needed` is never used
[INFO] [stdout]   --> src/main.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Item {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     fn slots_needed(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `indices` is never read
[INFO] [stdout]   --> src/main.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Inventory {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] 29 |     pub items: [Option<Item>; 28],
[INFO] [stdout] 30 |     pub indices: HashMap<String, usize>
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Inventory` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bank` is never constructed
[INFO] [stdout]   --> src/main.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct Bank {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `store` is never used
[INFO] [stdout]   --> src/main.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Bank {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 39 |     pub fn store(&mut self, item: &Item) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `index_of`, `first_available`, `can_loot`, `add_item`, `clear`, and `bank` are never used
[INFO] [stdout]    --> src/main.rs:62:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl Inventory {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn index_of(&self, item_name: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn first_available(&self) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn can_loot(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn add_item(&mut self, item: Item) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn bank(&mut self, bank: &mut Bank) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> src/main.rs:136:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | struct PlayerCoords {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] 136 |     x: i32, // east/west
[INFO] [stdout]     |     ^
[INFO] [stdout] 137 |     y: i32, // vertical aka dungeons
[INFO] [stdout]     |     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PlayerCoords` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ultrarare_table` is never used
[INFO] [stdout]    --> src/main.rs:169:4
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn ultrarare_table(context: &GameContext, rng: &mut ThreadRng) -> Option<Item> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Accurate`, `Controlled`, and `Defensive` are never constructed
[INFO] [stdout]    --> src/main.rs:339:5
[INFO] [stdout]     |
[INFO] [stdout] 338 | enum MeleeStyle {
[INFO] [stdout]     |      ---------- variants in this enum
[INFO] [stdout] 339 |     Accurate,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 340 |     Aggressive,
[INFO] [stdout] 341 |     Controlled,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 342 |     Defensive
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MeleeStyle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `style` is never read
[INFO] [stdout]    --> src/main.rs:348:5
[INFO] [stdout]     |
[INFO] [stdout] 346 | struct MeleeDps {
[INFO] [stdout]     |        -------- field in this struct
[INFO] [stdout] 347 |     str_bonus: u32,
[INFO] [stdout] 348 |     style: MeleeStyle,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MeleeDps` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_player` is never used
[INFO] [stdout]    --> src/main.rs:375:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | trait HasCombatStats {
[INFO] [stdout]     |       -------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 375 |     fn is_player(&self) -> bool;
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Accurate`, `Rapid`, and `Longrange` are never constructed
[INFO] [stdout]    --> src/main.rs:424:5
[INFO] [stdout]     |
[INFO] [stdout] 423 | enum RangedStyle {
[INFO] [stdout]     |      ----------- variants in this enum
[INFO] [stdout] 424 |     Accurate,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 425 |     Rapid,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 426 |     Longrange
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RangedStyle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ammo_str`, `accuracy`, `style`, and `rate` are never read
[INFO] [stdout]    --> src/main.rs:431:5
[INFO] [stdout]     |
[INFO] [stdout] 430 | struct RangedDps {
[INFO] [stdout]     |        --------- fields in this struct
[INFO] [stdout] 431 |     ammo_str: u32,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 432 |     accuracy: u32,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 433 |     style: RangedStyle,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 434 |     rate: u32,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RangedDps` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Ranged` and `Magic` are never constructed
[INFO] [stdout]    --> src/main.rs:443:5
[INFO] [stdout]     |
[INFO] [stdout] 441 | enum Loadout {
[INFO] [stdout]     |      ------- variants in this enum
[INFO] [stdout] 442 |     Melee(MeleeDps),
[INFO] [stdout] 443 |     Ranged(RangedDps),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 444 |     Magic(MagicDps),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Loadout` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.79s
[INFO] running `Command { std: "docker" "inspect" "804eb5188139ea996d24efe5d2b641c97567a268fa0f28a3d77c01966b7cb2fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "804eb5188139ea996d24efe5d2b641c97567a268fa0f28a3d77c01966b7cb2fe", kill_on_drop: false }`
[INFO] [stdout] 804eb5188139ea996d24efe5d2b641c97567a268fa0f28a3d77c01966b7cb2fe
