[INFO] cloning repository https://github.com/tetio/rusty_sword
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tetio/rusty_sword" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftetio%2Frusty_sword", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftetio%2Frusty_sword'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f7a9314949bcb533010562329bc44f77aa94d6ca
[INFO] checking tetio/rusty_sword against master#3139ff09e9d07f7700f8d15ed25a231e29c43627 for pr-121848-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftetio%2Frusty_sword" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/tetio/rusty_sword on toolchain 3139ff09e9d07f7700f8d15ed25a231e29c43627
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3139ff09e9d07f7700f8d15ed25a231e29c43627" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/tetio/rusty_sword
[INFO] finished tweaking git repo https://github.com/tetio/rusty_sword
[INFO] tweaked toml for git repo https://github.com/tetio/rusty_sword written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/tetio/rusty_sword 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" "+3139ff09e9d07f7700f8d15ed25a231e29c43627" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+3139ff09e9d07f7700f8d15ed25a231e29c43627" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 805f1573f4feebc8c9aa59b93b939f24c4747add0255844ab47dd409e5c647f8
[INFO] running `Command { std: "docker" "start" "-a" "805f1573f4feebc8c9aa59b93b939f24c4747add0255844ab47dd409e5c647f8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "805f1573f4feebc8c9aa59b93b939f24c4747add0255844ab47dd409e5c647f8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "805f1573f4feebc8c9aa59b93b939f24c4747add0255844ab47dd409e5c647f8", kill_on_drop: false }`
[INFO] [stdout] 805f1573f4feebc8c9aa59b93b939f24c4747add0255844ab47dd409e5c647f8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+3139ff09e9d07f7700f8d15ed25a231e29c43627" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 255b6d3dc68b8ca0afc5d60eba52b70036aa944cbbca2320ed66ded457687ceb
[INFO] running `Command { std: "docker" "start" "-a" "255b6d3dc68b8ca0afc5d60eba52b70036aa944cbbca2320ed66ded457687ceb", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.137
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]     Checking getrandom v0.2.8
[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]     Checking heroes v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `make_bow`
[INFO] [stdout]  --> src/heroes.rs:1:31
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{weapons::{Weapon, make_bow}, mobs::Mob};
[INFO] [stdout]   |                               ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `make_dagger`
[INFO] [stdout]  --> src/mobs.rs:1:30
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::weapons::{Weapon, make_dagger, fist};
[INFO] [stdout]   |                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fist` and `make_dagger`
[INFO] [stdout]  --> src/monsters.rs:1:31
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{weapons::{Weapon, make_dagger, fist}, mobs::Mob};
[INFO] [stdout]   |                               ^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mobs::Mob`
[INFO] [stdout]  --> src/combat.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{heroes::Hero, mobs::Mob, weapons::{make_dagger, make_sword}, monsters::Monster};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `combat::simulate`
[INFO] [stdout]  --> src/simulator.rs:1:160
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...getThac04Monster, weapons::make_dagger, weapons::make_bow, combat::simulate};
[INFO] [stdout]   |                                                               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fist`
[INFO] [stdout]  --> src/monsters.rs:1:44
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{weapons::{Weapon, make_dagger, fist}, mobs::Mob};
[INFO] [stdout]   |                                            ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mobs::Mob`
[INFO] [stdout]  --> src/combat.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{heroes::Hero, mobs::Mob, weapons::{make_dagger, make_sword}, monsters::Monster};
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/combat.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     for i in 0..STEPS {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/simulator.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let mut hero = Hero::builder()
[INFO] [stdout]   |         ----^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/simulator.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut goblin = Monster::builder()
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mob` and `inventory` are never read
[INFO] [stdout]  --> src/heroes.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Hero {
[INFO] [stdout]   |            ---- fields in this struct
[INFO] [stdout] 5 |     pub mob: Mob,
[INFO] [stdout]   |         ^^^
[INFO] [stdout] 6 |     pub inventory: Vec<Weapon>,
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Hero` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `weapon`, `thac0`, and `level` are never used
[INFO] [stdout]   --> src/heroes.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl HeroBuilder {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn weapon(mut self, weapon: Weapon) -> HeroBuilder {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn thac0(mut self, thac0: i32) -> HeroBuilder {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn level(mut self, level: i32) -> HeroBuilder {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `weapon`, `thac0`, and `level` are never read
[INFO] [stdout]   --> src/mobs.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout] 4  | pub struct Mob {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7  |     pub weapon: Weapon,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 8  |     pub thac0: i32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 9  |     pub armour: i32,
[INFO] [stdout] 10 |     pub level: i32
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Mob` 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: methods `armour` and `level` are never used
[INFO] [stdout]   --> src/mobs.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl MobBuilder {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn armour(mut self, armour: i32) -> MobBuilder {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn level(mut self, level: i32) -> MobBuilder {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Rookie`, `Special`, and `Elite` are never constructed
[INFO] [stdout]  --> src/monsters.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum MonsterQuality {
[INFO] [stdout]   |          -------------- variants in this enum
[INFO] [stdout] 5 |     Rookie = 0,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8 |     Special,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 9 |     Elite
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `MonsterQuality` 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 `mob` and `monster_quality` are never read
[INFO] [stdout]   --> src/monsters.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Monster {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 14 |     pub mob: Mob,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 15 |     pub monster_quality: MonsterQuality
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Monster` 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: associated function `builder` is never used
[INFO] [stdout]   --> src/monsters.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Monster {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 19 |     pub fn builder() -> MonsterBuilder {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mob` and `monster_quality` are never read
[INFO] [stdout]   --> src/monsters.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct MonsterBuilder {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 26 |     pub mob: Mob,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 27 |     monster_quality: MonsterQuality  
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MonsterBuilder` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/monsters.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl MonsterBuilder {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] 31 |     pub fn name(mut self, name: String) -> MonsterBuilder {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn hp(mut self, hp: i32) -> MonsterBuilder {
[INFO] [stdout]    |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn weapon(mut self, weapon: Weapon) -> MonsterBuilder {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn thac0(mut self, thac0: i32) -> MonsterBuilder {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn armour(mut self, armour: i32) -> MonsterBuilder {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn monster_quality(mut self, monster_quality: MonsterQuality) -> MonsterBuilder {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn level(mut self, level: i32) -> MonsterBuilder {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn build(self) -> Monster {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hero_attacks` is never used
[INFO] [stdout]  --> src/combat.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn hero_attacks(monster: &mut Monster, hero: &Hero) { //-> Mob {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `roll_dice` is never used
[INFO] [stdout]   --> src/combat.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn roll_dice(dice: u8) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_successful` is never used
[INFO] [stdout]   --> src/combat.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn is_successful(attack_value: i32, defense_value: i32) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulate` is never used
[INFO] [stdout]   --> src/combat.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn simulate(hero: &Hero, mob: &Monster) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_up` is never used
[INFO] [stdout]   --> src/combat.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn set_up() -> (Hero, Monster) {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `damage`, and `velocity` are never read
[INFO] [stdout]  --> src/weapons.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Weapon {
[INFO] [stdout]   |            ------ fields in this struct
[INFO] [stdout] 4 |     pub name: String, 
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 5 |     pub damage: u8, 
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 6 |     pub velocity: WeaponVelocity
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Weapon` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VeryFast` is never constructed
[INFO] [stdout]   --> src/weapons.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum WeaponVelocity {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 16 |     VeryFast
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WeaponVelocity` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_flail` is never used
[INFO] [stdout]   --> src/weapons.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn make_flail() -> Weapon {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_cross_bow` is never used
[INFO] [stdout]   --> src/weapons.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn make_cross_bow() -> Weapon {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_THAC0` is never used
[INFO] [stdout]  --> src/thac0.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const MAX_THAC0: i32 = 20;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `getThac04Hero` is never used
[INFO] [stdout]  --> src/thac0.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn getThac04Hero(hero_level: i32) -> i32 {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `getThac04Monster` is never used
[INFO] [stdout]   --> src/thac0.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn getThac04Monster(monster_level: i32, monster_quality: MonsterQuality) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setUp` is never used
[INFO] [stdout]  --> src/simulator.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn setUp() -> (Hero, Monster){
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `getThac04Hero` should have a snake case name
[INFO] [stdout]  --> src/thac0.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn getThac04Hero(hero_level: i32) -> i32 {
[INFO] [stdout]   |        ^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_thac04_hero`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `getThac04Monster` should have a snake case name
[INFO] [stdout]   --> src/thac0.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn getThac04Monster(monster_level: i32, monster_quality: MonsterQuality) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_thac04_monster`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setUp` should have a snake case name
[INFO] [stdout]  --> src/simulator.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn setUp() -> (Hero, Monster){
[INFO] [stdout]   |    ^^^^^ help: convert the identifier to snake case: `set_up`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `monster_level` should have an upper case name
[INFO] [stdout]   --> src/simulator.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 |     const monster_level: i32 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^ help: convert the identifier to upper case: `MONSTER_LEVEL`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `monster_quality` should have an upper case name
[INFO] [stdout]   --> src/simulator.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 |     const monster_quality: MonsterQuality = MonsterQuality::Normal;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `MONSTER_QUALITY`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mob`
[INFO] [stdout]   --> src/mobs.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |     let mob = Mob::builder()
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_mob`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 35 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/combat.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     for i in 0..STEPS {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/simulator.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let mut hero = Hero::builder()
[INFO] [stdout]   |         ----^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/simulator.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut goblin = Monster::builder()
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Rookie`, `Special`, and `Elite` are never constructed
[INFO] [stdout]  --> src/monsters.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum MonsterQuality {
[INFO] [stdout]   |          -------------- variants in this enum
[INFO] [stdout] 5 |     Rookie = 0,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8 |     Special,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 9 |     Elite
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `MonsterQuality` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `monster_quality` is never read
[INFO] [stdout]   --> src/monsters.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Monster {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 14 |     pub mob: Mob,
[INFO] [stdout] 15 |     pub monster_quality: MonsterQuality
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Monster` 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: fields `name` and `velocity` are never read
[INFO] [stdout]  --> src/weapons.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Weapon {
[INFO] [stdout]   |            ------ fields in this struct
[INFO] [stdout] 4 |     pub name: String, 
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 5 |     pub damage: u8, 
[INFO] [stdout] 6 |     pub velocity: WeaponVelocity
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Weapon` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VeryFast` is never constructed
[INFO] [stdout]   --> src/weapons.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum WeaponVelocity {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 16 |     VeryFast
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WeaponVelocity` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_flail` is never used
[INFO] [stdout]   --> src/weapons.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn make_flail() -> Weapon {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_cross_bow` is never used
[INFO] [stdout]   --> src/weapons.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn make_cross_bow() -> Weapon {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `getThac04Hero` should have a snake case name
[INFO] [stdout]  --> src/thac0.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn getThac04Hero(hero_level: i32) -> i32 {
[INFO] [stdout]   |        ^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_thac04_hero`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `getThac04Monster` should have a snake case name
[INFO] [stdout]   --> src/thac0.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn getThac04Monster(monster_level: i32, monster_quality: MonsterQuality) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `get_thac04_monster`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `setUp` should have a snake case name
[INFO] [stdout]  --> src/simulator.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn setUp() -> (Hero, Monster){
[INFO] [stdout]   |    ^^^^^ help: convert the identifier to snake case: `set_up`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `monster_level` should have an upper case name
[INFO] [stdout]   --> src/simulator.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 |     const monster_level: i32 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^ help: convert the identifier to upper case: `MONSTER_LEVEL`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `monster_quality` should have an upper case name
[INFO] [stdout]   --> src/simulator.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 |     const monster_quality: MonsterQuality = MonsterQuality::Normal;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `MONSTER_QUALITY`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 17 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.10s
[INFO] running `Command { std: "docker" "inspect" "255b6d3dc68b8ca0afc5d60eba52b70036aa944cbbca2320ed66ded457687ceb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "255b6d3dc68b8ca0afc5d60eba52b70036aa944cbbca2320ed66ded457687ceb", kill_on_drop: false }`
[INFO] [stdout] 255b6d3dc68b8ca0afc5d60eba52b70036aa944cbbca2320ed66ded457687ceb
