[INFO] cloning repository https://github.com/M1Fream/Idle_Game_Rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/M1Fream/Idle_Game_Rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FM1Fream%2FIdle_Game_Rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FM1Fream%2FIdle_Game_Rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7ca883e62bd898c2a1e4840bce54594ba6e1f3a5
[INFO] checking M1Fream/Idle_Game_Rust against master#5518eaa946291f00471af8b254b2a1715f234882 for pr-120393
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FM1Fream%2FIdle_Game_Rust" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/M1Fream/Idle_Game_Rust on toolchain 5518eaa946291f00471af8b254b2a1715f234882
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/M1Fream/Idle_Game_Rust
[INFO] finished tweaking git repo https://github.com/M1Fream/Idle_Game_Rust
[INFO] tweaked toml for git repo https://github.com/M1Fream/Idle_Game_Rust written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/M1Fream/Idle_Game_Rust 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" "+5518eaa946291f00471af8b254b2a1715f234882" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded eframe v0.12.0
[INFO] [stderr]   Downloaded egui_glium v0.12.0
[INFO] [stderr]   Downloaded xdg v2.5.2
[INFO] [stderr]   Downloaded egui_web v0.12.0
[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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1ad66bdf0beffae525a9433610b9560482a7163d0733b9c9d614b4bc1f7a2873
[INFO] running `Command { std: "docker" "start" "-a" "1ad66bdf0beffae525a9433610b9560482a7163d0733b9c9d614b4bc1f7a2873", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1ad66bdf0beffae525a9433610b9560482a7163d0733b9c9d614b4bc1f7a2873", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1ad66bdf0beffae525a9433610b9560482a7163d0733b9c9d614b4bc1f7a2873", kill_on_drop: false }`
[INFO] [stdout] 1ad66bdf0beffae525a9433610b9560482a7163d0733b9c9d614b4bc1f7a2873
[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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ef5638f775ad769b566c268afda48fab9af639110a0d25e4626738a7ae401f6b
[INFO] running `Command { std: "docker" "start" "-a" "ef5638f775ad769b566c268afda48fab9af639110a0d25e4626738a7ae401f6b", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling proc-macro2 v1.0.78
[INFO] [stderr]    Compiling pkg-config v0.3.29
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]     Checking smallvec v1.13.1
[INFO] [stderr]     Checking scoped-tls v1.0.1
[INFO] [stderr]    Compiling khronos_api v3.1.0
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]     Checking ttf-parser v0.15.2
[INFO] [stderr]     Checking xcursor v0.3.5
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]    Compiling memchr v2.7.1
[INFO] [stderr]    Compiling ahash v0.7.7
[INFO] [stderr]     Checking libloading v0.6.7
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]     Checking xdg v2.5.2
[INFO] [stderr]     Checking xml-rs v0.8.19
[INFO] [stderr]     Checking raw-window-handle v0.4.3
[INFO] [stderr]     Checking dlib v0.4.2
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]     Checking lazycell v1.3.0
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]     Checking gimli v0.28.1
[INFO] [stderr]     Checking atomic_refcell v0.1.13
[INFO] [stderr]     Checking emath v0.12.0
[INFO] [stderr]     Checking miniz_oxide v0.7.1
[INFO] [stderr]    Compiling num-bigint v0.4.4
[INFO] [stderr]     Checking rustc-demangle v0.1.23
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking takeable-option v0.5.0
[INFO] [stderr]    Compiling quick-xml v0.22.0
[INFO] [stderr]     Checking webbrowser v0.5.5
[INFO] [stderr]    Compiling wayland-sys v0.28.6
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.16.1
[INFO] [stderr]     Checking object v0.32.2
[INFO] [stderr]    Compiling wayland-scanner v0.28.6
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling glutin_glx_sys v0.1.8
[INFO] [stderr]    Compiling glutin_egl_sys v0.1.6
[INFO] [stderr]    Compiling glium v0.29.1
[INFO] [stderr]     Checking ordered-float v2.10.1
[INFO] [stderr]     Checking num-complex v0.4.4
[INFO] [stderr]     Checking owned_ttf_parser v0.15.2
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]    Compiling wayland-client v0.28.6
[INFO] [stderr]    Compiling wayland-protocols v0.28.6
[INFO] [stderr]     Checking nix v0.20.0
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking rusttype v0.9.3
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking net2 v0.2.39
[INFO] [stderr]    Compiling xcb v0.10.1
[INFO] [stderr]     Checking andrew v0.3.1
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking memmap2 v0.1.0
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]     Checking raw-window-handle v0.3.4
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]     Checking addr2line v0.21.0
[INFO] [stderr]     Checking epaint v0.12.0
[INFO] [stderr]    Compiling backtrace v0.3.69
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking egui v0.12.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking num v0.4.1
[INFO] [stderr]     Checking calloop v0.6.5
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking wayland-commons v0.28.6
[INFO] [stderr]     Checking epi v0.12.0
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]     Checking x11-clipboard v0.5.3
[INFO] [stderr]     Checking wayland-cursor v0.28.6
[INFO] [stderr]     Checking wayland-egl v0.28.6
[INFO] [stderr]     Checking smithay-client-toolkit v0.12.3
[INFO] [stderr]     Checking winit v0.24.0
[INFO] [stderr]     Checking smithay-clipboard v0.6.6
[INFO] [stderr]     Checking copypasta v0.7.1
[INFO] [stderr]     Checking glutin v0.26.0
[INFO] [stderr]     Checking egui_glium v0.12.0
[INFO] [stderr]     Checking eframe v0.12.0
[INFO] [stderr]     Checking Idle_Game_Rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait `production_obj` should have an upper camel case name
[INFO] [stdout]   --> src/production.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait production_obj {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ProductionObj`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `basic_production` should have an upper camel case name
[INFO] [stdout]    --> src/production.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | struct basic_production<'a> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `BasicProduction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `buyable` should have an upper camel case name
[INFO] [stdout]   --> src/game_types.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 | trait buyable {
[INFO] [stdout]    |       ^^^^^^^ help: convert the identifier to upper camel case: `Buyable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Water_well` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:153:2
[INFO] [stdout]     |
[INFO] [stdout] 153 |     Water_well = 2,
[INFO] [stdout]     |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `WaterWell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Furnace_simple` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:154:2
[INFO] [stdout]     |
[INFO] [stdout] 154 |     Furnace_simple = 3,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FurnaceSimple`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Steam_engine` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:155:2
[INFO] [stdout]     |
[INFO] [stdout] 155 |     Steam_engine = 4,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SteamEngine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Electric_motor` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:156:2
[INFO] [stdout]     |
[INFO] [stdout] 156 |     Electric_motor = 5,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ElectricMotor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Mana_well` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:161:2
[INFO] [stdout]     |
[INFO] [stdout] 161 |     Mana_well = 10,
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to upper camel case: `ManaWell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Occult_library` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:162:2
[INFO] [stdout]     |
[INFO] [stdout] 162 |     Occult_library = 11,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OccultLibrary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/game_types.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 |         while(i<Resources::NUM_RESOURCES) {
[INFO] [stdout]     |              ^                          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 179 -         while(i<Resources::NUM_RESOURCES) {
[INFO] [stdout] 179 +         while i<Resources::NUM_RESOURCES {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `production_obj` should have an upper camel case name
[INFO] [stdout]   --> src/production.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait production_obj {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ProductionObj`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/game_types.rs:203:8
[INFO] [stdout]     |
[INFO] [stdout] 203 |         while(i<Resources::NUM_RESOURCES) {
[INFO] [stdout]     |              ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 203 -         while(i<Resources::NUM_RESOURCES) {
[INFO] [stdout] 203 +         while i<Resources::NUM_RESOURCES {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `basic_production` should have an upper camel case name
[INFO] [stdout]    --> src/production.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | struct basic_production<'a> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `BasicProduction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/game_types.rs:217:8
[INFO] [stdout]     |
[INFO] [stdout] 217 |         while(i<Resources::NUM_RESOURCES) {
[INFO] [stdout]     |              ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 217 -         while(i<Resources::NUM_RESOURCES) {
[INFO] [stdout] 217 +         while i<Resources::NUM_RESOURCES {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `buyable` should have an upper camel case name
[INFO] [stdout]   --> src/game_types.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 | trait buyable {
[INFO] [stdout]    |       ^^^^^^^ help: convert the identifier to upper camel case: `Buyable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/game_types.rs:218:6
[INFO] [stdout]     |
[INFO] [stdout] 218 |             if(cost._res[i] > self._res[i]) {
[INFO] [stdout]     |               ^                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 218 -             if(cost._res[i] > self._res[i]) {
[INFO] [stdout] 218 +             if cost._res[i] > self._res[i] {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Water_well` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:153:2
[INFO] [stdout]     |
[INFO] [stdout] 153 |     Water_well = 2,
[INFO] [stdout]     |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `WaterWell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `always_unlocked` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout] 267 | struct always_unlocked {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AlwaysUnlocked`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `and_unlock` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:276:8
[INFO] [stdout]     |
[INFO] [stdout] 276 | struct and_unlock {
[INFO] [stdout]     |        ^^^^^^^^^^ help: convert the identifier to upper camel case: `AndUnlock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Furnace_simple` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:154:2
[INFO] [stdout]     |
[INFO] [stdout] 154 |     Furnace_simple = 3,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FurnaceSimple`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `upgrade_unlock` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:291:8
[INFO] [stdout]     |
[INFO] [stdout] 291 | struct upgrade_unlock {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `UpgradeUnlock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `tech_unlock` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:306:8
[INFO] [stdout]     |
[INFO] [stdout] 306 | struct tech_unlock {
[INFO] [stdout]     |        ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TechUnlock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Steam_engine` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:155:2
[INFO] [stdout]     |
[INFO] [stdout] 155 |     Steam_engine = 4,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SteamEngine`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `resource_unlock` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:321:8
[INFO] [stdout]     |
[INFO] [stdout] 321 | struct resource_unlock {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ResourceUnlock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Electric_motor` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:156:2
[INFO] [stdout]     |
[INFO] [stdout] 156 |     Electric_motor = 5,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ElectricMotor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `game_types::ResourceType`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use game_types::ResourceType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Mana_well` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:161:2
[INFO] [stdout]     |
[INFO] [stdout] 161 |     Mana_well = 10,
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to upper camel case: `ManaWell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Occult_library` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:162:2
[INFO] [stdout]     |
[INFO] [stdout] 162 |     Occult_library = 11,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OccultLibrary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/game_types.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 |         while(i<Resources::NUM_RESOURCES) {
[INFO] [stdout]     |              ^                          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 179 -         while(i<Resources::NUM_RESOURCES) {
[INFO] [stdout] 179 +         while i<Resources::NUM_RESOURCES {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/game_types.rs:203:8
[INFO] [stdout]     |
[INFO] [stdout] 203 |         while(i<Resources::NUM_RESOURCES) {
[INFO] [stdout]     |              ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 203 -         while(i<Resources::NUM_RESOURCES) {
[INFO] [stdout] 203 +         while i<Resources::NUM_RESOURCES {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]    --> src/game_types.rs:217:8
[INFO] [stdout]     |
[INFO] [stdout] 217 |         while(i<Resources::NUM_RESOURCES) {
[INFO] [stdout]     |              ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 217 -         while(i<Resources::NUM_RESOURCES) {
[INFO] [stdout] 217 +         while i<Resources::NUM_RESOURCES {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/game_types.rs:218:6
[INFO] [stdout]     |
[INFO] [stdout] 218 |             if(cost._res[i] > self._res[i]) {
[INFO] [stdout]     |               ^                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 218 -             if(cost._res[i] > self._res[i]) {
[INFO] [stdout] 218 +             if cost._res[i] > self._res[i] {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `always_unlocked` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout] 267 | struct always_unlocked {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AlwaysUnlocked`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `and_unlock` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:276:8
[INFO] [stdout]     |
[INFO] [stdout] 276 | struct and_unlock {
[INFO] [stdout]     |        ^^^^^^^^^^ help: convert the identifier to upper camel case: `AndUnlock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `upgrade_unlock` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:291:8
[INFO] [stdout]     |
[INFO] [stdout] 291 | struct upgrade_unlock {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `UpgradeUnlock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `tech_unlock` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:306:8
[INFO] [stdout]     |
[INFO] [stdout] 306 | struct tech_unlock {
[INFO] [stdout]     |        ^^^^^^^^^^^ help: convert the identifier to upper camel case: `TechUnlock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `resource_unlock` should have an upper camel case name
[INFO] [stdout]    --> src/game_types.rs:321:8
[INFO] [stdout]     |
[INFO] [stdout] 321 | struct resource_unlock {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ResourceUnlock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `game_types::ResourceType`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use game_types::ResourceType;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/production.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 |     bonuses: Vec<&'a Bonus>,
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 82 |     bonuses: Vec<&'a dyn Bonus>,
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/production.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |     get_tiles: Fn(world::WorldMap, world::Tile) -> Vec<world::Tile>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 83 |     get_tiles: dyn Fn(world::WorldMap, world::Tile) -> Vec<world::Tile>,
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/production.rs:109:23
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub bonuses: Vec<&'a Bonus>,
[INFO] [stdout]     |                          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub bonuses: Vec<&'a dyn Bonus>,
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/production.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 |     bonuses: Vec<&'a Bonus>,
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 82 |     bonuses: Vec<&'a dyn Bonus>,
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/production.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |     get_tiles: Fn(world::WorldMap, world::Tile) -> Vec<world::Tile>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 83 |     get_tiles: dyn Fn(world::WorldMap, world::Tile) -> Vec<world::Tile>,
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/production.rs:109:23
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub bonuses: Vec<&'a Bonus>,
[INFO] [stdout]     |                          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub bonuses: Vec<&'a dyn Bonus>,
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/game_types.rs:95:14
[INFO] [stdout]    |
[INFO] [stdout] 95 |     unlock: Box<UnlockFn>,
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 95 |     unlock: Box<dyn UnlockFn>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/game_types.rs:111:14
[INFO] [stdout]     |
[INFO] [stdout] 111 |     unlock: Box<UnlockFn>, //Maybe there shoudn't be a difference between techs and upgrades in the code or maybe it should just be a boo...
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 111 |     unlock: Box<dyn UnlockFn>, //Maybe there shoudn't be a difference between techs and upgrades in the code or maybe it should just be a bool flag
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/game_types.rs:277:20
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub args: Vec<Box<UnlockFn>>,
[INFO] [stdout]     |                       ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub args: Vec<Box<dyn UnlockFn>>,
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/production.rs:44:36
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn get_bonuses(&self) -> &Vec<&'a Bonus>;
[INFO] [stdout]    |                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn get_bonuses(&self) -> &Vec<&'a dyn Bonus>;
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/production.rs:99:36
[INFO] [stdout]    |
[INFO] [stdout] 99 |     fn get_bonuses(&self) -> &Vec<&'a Bonus> {
[INFO] [stdout]    |                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 99 |     fn get_bonuses(&self) -> &Vec<&'a dyn Bonus> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/production.rs:114:36
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn get_bonuses(&self) -> &Vec<&'a Bonus> {
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn get_bonuses(&self) -> &Vec<&'a dyn Bonus> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/production.rs:120:58
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub fn new(res: game_types::Resources, bonuses: Vec<&'a Bonus>, tier : usize) -> basic_production<'a> {
[INFO] [stdout]     |                                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub fn new(res: game_types::Resources, bonuses: Vec<&'a dyn Bonus>, tier : usize) -> basic_production<'a> {
[INFO] [stdout]     |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/game_types.rs:21:28
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn buy(&mut self, b: &buyable) -> bool {
[INFO] [stdout]    |                               ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn buy(&mut self, b: &dyn buyable) -> bool {
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/game_types.rs:95:14
[INFO] [stdout]    |
[INFO] [stdout] 95 |     unlock: Box<UnlockFn>,
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 95 |     unlock: Box<dyn UnlockFn>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/game_types.rs:111:14
[INFO] [stdout]     |
[INFO] [stdout] 111 |     unlock: Box<UnlockFn>, //Maybe there shoudn't be a difference between techs and upgrades in the code or maybe it should just be a boo...
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 111 |     unlock: Box<dyn UnlockFn>, //Maybe there shoudn't be a difference between techs and upgrades in the code or maybe it should just be a bool flag
[INFO] [stdout]     |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/game_types.rs:277:20
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub args: Vec<Box<UnlockFn>>,
[INFO] [stdout]     |                       ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 277 |     pub args: Vec<Box<dyn UnlockFn>>,
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/production.rs:44:36
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn get_bonuses(&self) -> &Vec<&'a Bonus>;
[INFO] [stdout]    |                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn get_bonuses(&self) -> &Vec<&'a dyn Bonus>;
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/production.rs:99:36
[INFO] [stdout]    |
[INFO] [stdout] 99 |     fn get_bonuses(&self) -> &Vec<&'a Bonus> {
[INFO] [stdout]    |                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 99 |     fn get_bonuses(&self) -> &Vec<&'a dyn Bonus> {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/production.rs:114:36
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn get_bonuses(&self) -> &Vec<&'a Bonus> {
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 114 |     fn get_bonuses(&self) -> &Vec<&'a dyn Bonus> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/production.rs:120:58
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub fn new(res: game_types::Resources, bonuses: Vec<&'a Bonus>, tier : usize) -> basic_production<'a> {
[INFO] [stdout]     |                                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub fn new(res: game_types::Resources, bonuses: Vec<&'a dyn Bonus>, tier : usize) -> basic_production<'a> {
[INFO] [stdout]     |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/game_types.rs:21:28
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn buy(&mut self, b: &buyable) -> bool {
[INFO] [stdout]    |                               ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn buy(&mut self, b: &dyn buyable) -> bool {
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]   --> src/production.rs:59:23
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn calc_ratio(&self, g: &game_types::Game, tile: world::Tile) -> f64 {
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile`
[INFO] [stdout]   --> src/production.rs:59:45
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn calc_ratio(&self, g: &game_types::Game, tile: world::Tile) -> f64 {
[INFO] [stdout]    |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile`
[INFO] [stdout]   --> src/production.rs:70:45
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn calc_ratio(&self, g: &game_types::Game, tile: world::Tile) -> f64 {
[INFO] [stdout]    |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/production.rs:89:7
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let t = self.tile;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/production.rs:90:29
[INFO] [stdout]    |
[INFO] [stdout] 90 |         if matches!(tile.my_type, t) {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]    --> src/production.rs:133:22
[INFO] [stdout]     |
[INFO] [stdout] 133 |     fn calc_prod(&self, g: &game_types::Game, i: usize, j:usize) -> game_types::Resources {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/production.rs:133:44
[INFO] [stdout]     |
[INFO] [stdout] 133 |     fn calc_prod(&self, g: &game_types::Game, i: usize, j:usize) -> game_types::Resources {
[INFO] [stdout]     |                                               ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/production.rs:133:54
[INFO] [stdout]     |
[INFO] [stdout] 133 |     fn calc_prod(&self, g: &game_types::Game, i: usize, j:usize) -> game_types::Resources {
[INFO] [stdout]     |                                                         ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/production.rs:134:7
[INFO] [stdout]     |
[INFO] [stdout] 134 |         let mut mult : f64 = 1.0;
[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: unused variable: `g`
[INFO] [stdout]   --> src/production.rs:59:23
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn calc_ratio(&self, g: &game_types::Game, tile: world::Tile) -> f64 {
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile`
[INFO] [stdout]   --> src/production.rs:59:45
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn calc_ratio(&self, g: &game_types::Game, tile: world::Tile) -> f64 {
[INFO] [stdout]    |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile`
[INFO] [stdout]   --> src/production.rs:70:45
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn calc_ratio(&self, g: &game_types::Game, tile: world::Tile) -> f64 {
[INFO] [stdout]    |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/production.rs:89:7
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let t = self.tile;
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/production.rs:90:29
[INFO] [stdout]    |
[INFO] [stdout] 90 |         if matches!(tile.my_type, t) {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]    --> src/production.rs:133:22
[INFO] [stdout]     |
[INFO] [stdout] 133 |     fn calc_prod(&self, g: &game_types::Game, i: usize, j:usize) -> game_types::Resources {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/production.rs:133:44
[INFO] [stdout]     |
[INFO] [stdout] 133 |     fn calc_prod(&self, g: &game_types::Game, i: usize, j:usize) -> game_types::Resources {
[INFO] [stdout]     |                                               ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/production.rs:133:54
[INFO] [stdout]     |
[INFO] [stdout] 133 |     fn calc_prod(&self, g: &game_types::Game, i: usize, j:usize) -> game_types::Resources {
[INFO] [stdout]     |                                                         ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/production.rs:134:7
[INFO] [stdout]     |
[INFO] [stdout] 134 |         let mut mult : f64 = 1.0;
[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: unused variable: `g`
[INFO] [stdout]    --> src/game_types.rs:271:26
[INFO] [stdout]     |
[INFO] [stdout] 271 |     fn should_unlock(&self, g: &Game) -> bool {
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]   --> src/world.rs:12:27
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn get_edge_neighbors(map: WorldMap, tile: Tile) -> Vec<Tile> {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile`
[INFO] [stdout]   --> src/world.rs:12:42
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn get_edge_neighbors(map: WorldMap, tile: Tile) -> Vec<Tile> {
[INFO] [stdout]    |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]    --> src/game_types.rs:271:26
[INFO] [stdout]     |
[INFO] [stdout] 271 |     fn should_unlock(&self, g: &Game) -> bool {
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]   --> src/world.rs:12:27
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn get_edge_neighbors(map: WorldMap, tile: Tile) -> Vec<Tile> {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tile`
[INFO] [stdout]   --> src/world.rs:12:42
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn get_edge_neighbors(map: WorldMap, tile: Tile) -> Vec<Tile> {
[INFO] [stdout]    |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `buyable` is more private than the item `Game::buy`
[INFO] [stdout]   --> src/game_types.rs:21:2
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn buy(&mut self, b: &buyable) -> bool {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Game::buy` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `buyable` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/game_types.rs:65:1
[INFO] [stdout]    |
[INFO] [stdout] 65 | trait buyable {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `buyable` is more private than the item `Game::buy`
[INFO] [stdout]   --> src/game_types.rs:21:2
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn buy(&mut self, b: &buyable) -> bool {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `Game::buy` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but trait `buyable` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/game_types.rs:65:1
[INFO] [stdout]    |
[INFO] [stdout] 65 | trait buyable {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]  --> src/production.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn test() -> usize {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test` is never used
[INFO] [stdout]  --> src/production.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn test() -> usize {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tier` is never read
[INFO] [stdout]   --> src/production.rs:55:6
[INFO] [stdout]    |
[INFO] [stdout] 54 | struct ResetBonus {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] 55 |     pub tier: usize,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tier` is never read
[INFO] [stdout]   --> src/production.rs:55:6
[INFO] [stdout]    |
[INFO] [stdout] 54 | struct ResetBonus {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] 55 |     pub tier: usize,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `get_tiles` is never read
[INFO] [stdout]   --> src/production.rs:83:2
[INFO] [stdout]    |
[INFO] [stdout] 79 | struct TileBonus<'a> {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 83 |     get_tiles: Fn(world::WorldMap, world::Tile) -> Vec<world::Tile>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `get_tiles` is never read
[INFO] [stdout]   --> src/production.rs:83:2
[INFO] [stdout]    |
[INFO] [stdout] 79 | struct TileBonus<'a> {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 83 |     get_tiles: Fn(world::WorldMap, world::Tile) -> Vec<world::Tile>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tier` is never read
[INFO] [stdout]    --> src/production.rs:110:6
[INFO] [stdout]     |
[INFO] [stdout] 104 | struct basic_production<'a> {
[INFO] [stdout]     |        ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub tier: usize,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tier` is never read
[INFO] [stdout]    --> src/production.rs:110:6
[INFO] [stdout]     |
[INFO] [stdout] 104 | struct basic_production<'a> {
[INFO] [stdout]     |        ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub tier: usize,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/production.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl<'a> basic_production<'a> {
[INFO] [stdout]     | ----------------------------- associated function in this implementation
[INFO] [stdout] 120 |     pub fn new(res: game_types::Resources, bonuses: Vec<&'a Bonus>, tier : usize) -> basic_production<'a> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/production.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl<'a> basic_production<'a> {
[INFO] [stdout]     | ----------------------------- associated function in this implementation
[INFO] [stdout] 120 |     pub fn new(res: game_types::Resources, bonuses: Vec<&'a Bonus>, tier : usize) -> basic_production<'a> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_prod_objs` is never used
[INFO] [stdout]    --> src/production.rs:155:4
[INFO] [stdout]     |
[INFO] [stdout] 155 | fn init_prod_objs() ->  ArrayVec<Box<dyn production_obj>, { game_types::Building::NUM_BUILDINGS }> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_prod_objs` is never used
[INFO] [stdout]    --> src/production.rs:155:4
[INFO] [stdout]     |
[INFO] [stdout] 155 | fn init_prod_objs() ->  ArrayVec<Box<dyn production_obj>, { game_types::Building::NUM_BUILDINGS }> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `tier`, and `desc` are never read
[INFO] [stdout]   --> src/game_types.rs:89:2
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct Tech {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] 89 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     tier: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 93 |     desc: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `tier`, and `desc` are never read
[INFO] [stdout]   --> src/game_types.rs:89:2
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct Tech {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] 89 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     tier: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 93 |     desc: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `tier`, and `desc` are never read
[INFO] [stdout]    --> src/game_types.rs:105:2
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub struct Upgrade {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 105 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     tier: usize,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 109 |     desc: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `NUM_TECHS` is never used
[INFO] [stdout]    --> src/game_types.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl Tech {
[INFO] [stdout]     | --------- associated constant in this implementation
[INFO] [stdout] 121 |     const NUM_TECHS : usize = 2;
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `level` is never read
[INFO] [stdout]    --> src/game_types.rs:133:2
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct Building {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 132 |     pub my_type: BuildingType,
[INFO] [stdout] 133 |     level: u8,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Building` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `tier`, and `desc` are never read
[INFO] [stdout]    --> src/game_types.rs:105:2
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub struct Upgrade {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 105 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     tier: usize,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 109 |     desc: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `unlocked` is never read
[INFO] [stdout]  --> src/world.rs:7:2
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Tile {
[INFO] [stdout]   |            ---- field in this struct
[INFO] [stdout] 6 |     pub my_type: TileType,
[INFO] [stdout] 7 |     unlocked: bool,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Tile` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `NUM_TECHS` is never used
[INFO] [stdout]    --> src/game_types.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl Tech {
[INFO] [stdout]     | --------- associated constant in this implementation
[INFO] [stdout] 121 |     const NUM_TECHS : usize = 2;
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_edge_neighbors` is never used
[INFO] [stdout]   --> src/world.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn get_edge_neighbors(map: WorldMap, tile: Tile) -> Vec<Tile> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `level` is never read
[INFO] [stdout]    --> src/game_types.rs:133:2
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct Building {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 132 |     pub my_type: BuildingType,
[INFO] [stdout] 133 |     level: u8,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Building` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate `Idle_Game_Rust` should have a snake case name
[INFO] [stdout]   |
[INFO] [stdout]   = help: convert the identifier to snake case: `idle_game_rust`
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `unlocked` is never read
[INFO] [stdout]  --> src/world.rs:7:2
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Tile {
[INFO] [stdout]   |            ---- field in this struct
[INFO] [stdout] 6 |     pub my_type: TileType,
[INFO] [stdout] 7 |     unlocked: bool,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Tile` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_edge_neighbors` is never used
[INFO] [stdout]   --> src/world.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn get_edge_neighbors(map: WorldMap, tile: Tile) -> Vec<Tile> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate `Idle_Game_Rust` should have a snake case name
[INFO] [stdout]   |
[INFO] [stdout]   = help: convert the identifier to snake case: `idle_game_rust`
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 56 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 56 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 18.94s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: quick-xml v0.22.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "ef5638f775ad769b566c268afda48fab9af639110a0d25e4626738a7ae401f6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ef5638f775ad769b566c268afda48fab9af639110a0d25e4626738a7ae401f6b", kill_on_drop: false }`
[INFO] [stdout] ef5638f775ad769b566c268afda48fab9af639110a0d25e4626738a7ae401f6b
