[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 try#48c9d93cf65d550d124c40108859fd993778c157 for pr-153692-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FM1Fream%2FIdle_Game_Rust" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[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-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/M1Fream/Idle_Game_Rust on toolchain 48c9d93cf65d550d124c40108859fd993778c157
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+48c9d93cf65d550d124c40108859fd993778c157" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[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" "+48c9d93cf65d550d124c40108859fd993778c157" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 201 packages to latest compatible versions
[INFO] [stderr]       Adding ab_glyph_rasterizer v0.1.10
[INFO] [stderr]       Adding addr2line v0.25.1
[INFO] [stderr]       Adding adler2 v2.0.1
[INFO] [stderr]       Adding ahash v0.7.8
[INFO] [stderr]       Adding andrew v0.3.1
[INFO] [stderr]       Adding android_glue v0.2.3
[INFO] [stderr]       Adding arrayvec v0.7.6
[INFO] [stderr]       Adding atomic_refcell v0.1.14
[INFO] [stderr]       Adding autocfg v1.5.0
[INFO] [stderr]       Adding backtrace v0.3.76
[INFO] [stderr]       Adding bitflags v1.3.2
[INFO] [stderr]       Adding block v0.1.6
[INFO] [stderr]       Adding bumpalo v3.20.2
[INFO] [stderr]       Adding calloop v0.6.5
[INFO] [stderr]       Adding cc v1.2.62
[INFO] [stderr]       Adding cfg-if v0.1.10
[INFO] [stderr]       Adding cfg-if v1.0.4
[INFO] [stderr]       Adding cgl v0.3.2
[INFO] [stderr]       Adding clipboard-win v3.1.1
[INFO] [stderr]       Adding cocoa v0.23.0
[INFO] [stderr]       Adding cocoa v0.24.1
[INFO] [stderr]       Adding cocoa-foundation v0.1.2
[INFO] [stderr]       Adding copypasta v0.7.1
[INFO] [stderr]       Adding core-foundation v0.7.0
[INFO] [stderr]       Adding core-foundation v0.9.4
[INFO] [stderr]       Adding core-foundation-sys v0.7.0
[INFO] [stderr]       Adding core-foundation-sys v0.8.7
[INFO] [stderr]       Adding core-graphics v0.19.2
[INFO] [stderr]       Adding core-graphics v0.22.3
[INFO] [stderr]       Adding core-graphics-types v0.1.3
[INFO] [stderr]       Adding core-video-sys v0.1.4
[INFO] [stderr]       Adding cty v0.2.2
[INFO] [stderr]       Adding darling v0.10.2
[INFO] [stderr]       Adding darling_core v0.10.2
[INFO] [stderr]       Adding darling_macro v0.10.2
[INFO] [stderr]       Adding derivative v2.2.0
[INFO] [stderr]       Adding dispatch v0.2.0
[INFO] [stderr]       Adding dlib v0.4.2
[INFO] [stderr]       Adding dlib v0.5.3
[INFO] [stderr]       Adding downcast-rs v1.2.1
[INFO] [stderr]       Adding eframe v0.12.0 (available: v0.34.2)
[INFO] [stderr]       Adding egui v0.12.0
[INFO] [stderr]       Adding egui_glium v0.12.0
[INFO] [stderr]       Adding egui_web v0.12.0
[INFO] [stderr]       Adding emath v0.12.0
[INFO] [stderr]       Adding epaint v0.12.0
[INFO] [stderr]       Adding epi v0.12.0
[INFO] [stderr]       Adding find-msvc-tools v0.1.9
[INFO] [stderr]       Adding fnv v1.0.7
[INFO] [stderr]       Adding foreign-types v0.3.2
[INFO] [stderr]       Adding foreign-types-shared v0.1.1
[INFO] [stderr]       Adding fuchsia-zircon v0.3.3
[INFO] [stderr]       Adding fuchsia-zircon-sys v0.3.3
[INFO] [stderr]       Adding futures-core v0.3.32
[INFO] [stderr]       Adding futures-task v0.3.32
[INFO] [stderr]       Adding futures-util v0.3.32
[INFO] [stderr]       Adding getrandom v0.2.17
[INFO] [stderr]       Adding gimli v0.32.3
[INFO] [stderr]       Adding gl_generator v0.14.0
[INFO] [stderr]       Adding glium v0.29.1
[INFO] [stderr]       Adding glutin v0.26.0
[INFO] [stderr]       Adding glutin_egl_sys v0.1.6
[INFO] [stderr]       Adding glutin_emscripten_sys v0.1.1
[INFO] [stderr]       Adding glutin_gles2_sys v0.1.5
[INFO] [stderr]       Adding glutin_glx_sys v0.1.8
[INFO] [stderr]       Adding glutin_wgl_sys v0.1.5
[INFO] [stderr]       Adding ident_case v1.0.1
[INFO] [stderr]       Adding instant v0.1.13
[INFO] [stderr]       Adding iovec v0.1.4
[INFO] [stderr]       Adding jni-sys v0.3.1
[INFO] [stderr]       Adding jni-sys v0.4.1
[INFO] [stderr]       Adding jni-sys-macros v0.4.1
[INFO] [stderr]       Adding js-sys v0.3.98
[INFO] [stderr]       Adding kernel32-sys v0.2.2
[INFO] [stderr]       Adding khronos_api v3.1.0
[INFO] [stderr]       Adding lazy-bytes-cast v5.0.1
[INFO] [stderr]       Adding lazy_static v1.5.0
[INFO] [stderr]       Adding lazycell v1.3.0
[INFO] [stderr]       Adding libc v0.2.186
[INFO] [stderr]       Adding libloading v0.6.7
[INFO] [stderr]       Adding libloading v0.8.9
[INFO] [stderr]       Adding lock_api v0.4.14
[INFO] [stderr]       Adding log v0.4.29
[INFO] [stderr]       Adding malloc_buf v0.0.6
[INFO] [stderr]       Adding memchr v2.8.0
[INFO] [stderr]       Adding memmap2 v0.1.0
[INFO] [stderr]       Adding memmap2 v0.5.10
[INFO] [stderr]       Adding memoffset v0.6.5
[INFO] [stderr]       Adding miniz_oxide v0.8.9
[INFO] [stderr]       Adding mio v0.6.23
[INFO] [stderr]       Adding mio-extras v2.0.6
[INFO] [stderr]       Adding miow v0.2.2
[INFO] [stderr]       Adding ndk v0.2.1
[INFO] [stderr]       Adding ndk-glue v0.2.1
[INFO] [stderr]       Adding ndk-macro v0.2.0
[INFO] [stderr]       Adding ndk-sys v0.2.2
[INFO] [stderr]       Adding net2 v0.2.39
[INFO] [stderr]       Adding nix v0.18.0
[INFO] [stderr]       Adding nix v0.20.0 (available: v0.20.2)
[INFO] [stderr]       Adding nix v0.24.3
[INFO] [stderr]       Adding num v0.4.3
[INFO] [stderr]       Adding num-bigint v0.4.6
[INFO] [stderr]       Adding num-complex v0.4.6
[INFO] [stderr]       Adding num-derive v0.3.3 (available: v0.4.2)
[INFO] [stderr]       Adding num-integer v0.1.46
[INFO] [stderr]       Adding num-iter v0.1.45
[INFO] [stderr]       Adding num-rational v0.4.2
[INFO] [stderr]       Adding num-traits v0.2.19
[INFO] [stderr]       Adding num_enum v0.4.3
[INFO] [stderr]       Adding num_enum_derive v0.4.3
[INFO] [stderr]       Adding objc v0.2.7
[INFO] [stderr]       Adding objc-foundation v0.1.1
[INFO] [stderr]       Adding objc_id v0.1.1
[INFO] [stderr]       Adding object v0.37.3
[INFO] [stderr]       Adding once_cell v1.21.4
[INFO] [stderr]       Adding ordered-float v2.10.1
[INFO] [stderr]       Adding osmesa-sys v0.1.2
[INFO] [stderr]       Adding owned_ttf_parser v0.15.2
[INFO] [stderr]       Adding parking_lot v0.11.2
[INFO] [stderr]       Adding parking_lot_core v0.8.6
[INFO] [stderr]       Adding percent-encoding v2.3.2
[INFO] [stderr]       Adding pin-project-lite v0.2.17
[INFO] [stderr]       Adding pkg-config v0.3.33
[INFO] [stderr]       Adding ppv-lite86 v0.2.21
[INFO] [stderr]       Adding proc-macro-crate v0.1.5
[INFO] [stderr]       Adding proc-macro2 v1.0.106
[INFO] [stderr]       Adding quick-xml v0.22.0
[INFO] [stderr]       Adding quote v1.0.45
[INFO] [stderr]       Adding rand v0.8.6 (available: v0.10.1)
[INFO] [stderr]       Adding rand_chacha v0.3.1
[INFO] [stderr]       Adding rand_core v0.6.4
[INFO] [stderr]       Adding raw-window-handle v0.3.4
[INFO] [stderr]       Adding raw-window-handle v0.4.3
[INFO] [stderr]       Adding redox_syscall v0.2.16
[INFO] [stderr]       Adding rustc-demangle v0.1.27
[INFO] [stderr]       Adding rusttype v0.9.3
[INFO] [stderr]       Adding rustversion v1.0.22
[INFO] [stderr]       Adding same-file v1.0.6
[INFO] [stderr]       Adding scoped-tls v1.0.1
[INFO] [stderr]       Adding scopeguard v1.2.0
[INFO] [stderr]       Adding serde v1.0.228
[INFO] [stderr]       Adding serde_core v1.0.228
[INFO] [stderr]       Adding serde_derive v1.0.228
[INFO] [stderr]       Adding shared_library v0.1.9
[INFO] [stderr]       Adding shlex v1.3.0
[INFO] [stderr]       Adding slab v0.4.12
[INFO] [stderr]       Adding smallvec v1.15.1
[INFO] [stderr]       Adding smithay-client-toolkit v0.12.3
[INFO] [stderr]       Adding smithay-client-toolkit v0.16.1
[INFO] [stderr]       Adding smithay-clipboard v0.6.6
[INFO] [stderr]       Adding strsim v0.9.3
[INFO] [stderr]       Adding syn v1.0.109
[INFO] [stderr]       Adding syn v2.0.117
[INFO] [stderr]       Adding takeable-option v0.5.0
[INFO] [stderr]       Adding thiserror v1.0.69
[INFO] [stderr]       Adding thiserror-impl v1.0.69
[INFO] [stderr]       Adding toml v0.5.11
[INFO] [stderr]       Adding ttf-parser v0.15.2
[INFO] [stderr]       Adding unicode-ident v1.0.24
[INFO] [stderr]       Adding version_check v0.9.5
[INFO] [stderr]       Adding walkdir v2.5.0
[INFO] [stderr]       Adding wasi v0.11.1+wasi-snapshot-preview1
[INFO] [stderr]       Adding wasm-bindgen v0.2.121
[INFO] [stderr]       Adding wasm-bindgen-futures v0.4.71
[INFO] [stderr]       Adding wasm-bindgen-macro v0.2.121
[INFO] [stderr]       Adding wasm-bindgen-macro-support v0.2.121
[INFO] [stderr]       Adding wasm-bindgen-shared v0.2.121
[INFO] [stderr]       Adding wayland-client v0.28.6
[INFO] [stderr]       Adding wayland-client v0.29.5
[INFO] [stderr]       Adding wayland-commons v0.28.6
[INFO] [stderr]       Adding wayland-commons v0.29.5
[INFO] [stderr]       Adding wayland-cursor v0.28.6
[INFO] [stderr]       Adding wayland-cursor v0.29.5
[INFO] [stderr]       Adding wayland-egl v0.28.6
[INFO] [stderr]       Adding wayland-protocols v0.28.6
[INFO] [stderr]       Adding wayland-protocols v0.29.5
[INFO] [stderr]       Adding wayland-scanner v0.28.6
[INFO] [stderr]       Adding wayland-scanner v0.29.5
[INFO] [stderr]       Adding wayland-sys v0.28.6
[INFO] [stderr]       Adding wayland-sys v0.29.5
[INFO] [stderr]       Adding web-sys v0.3.98
[INFO] [stderr]       Adding webbrowser v0.5.5
[INFO] [stderr]       Adding widestring v0.4.3
[INFO] [stderr]       Adding winapi v0.2.8
[INFO] [stderr]       Adding winapi v0.3.9
[INFO] [stderr]       Adding winapi-build v0.1.1
[INFO] [stderr]       Adding winapi-i686-pc-windows-gnu v0.4.0
[INFO] [stderr]       Adding winapi-util v0.1.11
[INFO] [stderr]       Adding winapi-x86_64-pc-windows-gnu v0.4.0
[INFO] [stderr]       Adding windows-link v0.2.1
[INFO] [stderr]       Adding windows-sys v0.61.2
[INFO] [stderr]       Adding winit v0.24.0
[INFO] [stderr]       Adding ws2_32-sys v0.2.1
[INFO] [stderr]       Adding x11-clipboard v0.5.3
[INFO] [stderr]       Adding x11-dl v2.21.0
[INFO] [stderr]       Adding xcb v0.10.1
[INFO] [stderr]       Adding xcursor v0.3.10
[INFO] [stderr]       Adding xdg v2.5.2
[INFO] [stderr]       Adding xml-rs v0.8.28
[INFO] [stderr]       Adding zerocopy v0.8.48
[INFO] [stderr]       Adding zerocopy-derive v0.8.48
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+48c9d93cf65d550d124c40108859fd993778c157" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] be43926f215720a0cf385dcbdc2ea67f0fa42265eb51784be6082d17427fe9cb
[INFO] running `Command { std: "docker" "start" "-a" "be43926f215720a0cf385dcbdc2ea67f0fa42265eb51784be6082d17427fe9cb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "be43926f215720a0cf385dcbdc2ea67f0fa42265eb51784be6082d17427fe9cb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "be43926f215720a0cf385dcbdc2ea67f0fa42265eb51784be6082d17427fe9cb", kill_on_drop: false }`
[INFO] [stdout] be43926f215720a0cf385dcbdc2ea67f0fa42265eb51784be6082d17427fe9cb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+48c9d93cf65d550d124c40108859fd993778c157" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9773d00ec86fb91163bd61f2a3ae38042c199d1a5f02d2a6e06c19593c70b016
[INFO] running `Command { std: "docker" "start" "-a" "9773d00ec86fb91163bd61f2a3ae38042c199d1a5f02d2a6e06c19593c70b016", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]    Compiling xml-rs v0.8.28
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking ttf-parser v0.15.2
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.10
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]     Checking libloading v0.8.9
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]     Checking libloading v0.6.7
[INFO] [stderr]    Compiling ahash v0.7.8
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]     Checking dlib v0.5.3
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]     Checking xdg v2.5.2
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]     Checking raw-window-handle v0.4.3
[INFO] [stderr]     Checking dlib v0.4.2
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]     Checking lazycell v1.3.0
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]     Checking atomic_refcell v0.1.14
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]     Checking gimli v0.32.3
[INFO] [stderr]     Checking emath v0.12.0
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking rustc-demangle v0.1.27
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking takeable-option v0.5.0
[INFO] [stderr]     Checking webbrowser v0.5.5
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]    Compiling wayland-sys v0.28.6
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling quick-xml v0.22.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.16.1
[INFO] [stderr]     Checking ordered-float v2.10.1
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking num-iter v0.1.45
[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 owned_ttf_parser v0.15.2
[INFO] [stderr]     Checking rusttype v0.9.3
[INFO] [stderr]     Checking andrew v0.3.1
[INFO] [stderr]    Compiling wayland-client v0.28.6
[INFO] [stderr]     Checking nix v0.20.0
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]    Compiling wayland-protocols v0.28.6
[INFO] [stderr]     Checking net2 v0.2.39
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]     Checking memmap2 v0.1.0
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]    Compiling xcb v0.10.1
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]     Checking raw-window-handle v0.3.4
[INFO] [stderr]     Checking epaint v0.12.0
[INFO] [stderr]     Checking osmesa-sys v0.1.2
[INFO] [stderr]     Checking addr2line v0.25.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking egui v0.12.0
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking calloop v0.6.5
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking epi v0.12.0
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking wayland-commons v0.28.6
[INFO] [stderr]     Checking x11-clipboard v0.5.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]    Compiling num-derive v0.3.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 glutin v0.26.0
[INFO] [stderr]     Checking smithay-clipboard v0.6.6
[INFO] [stderr]     Checking copypasta v0.7.1
[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)]` (part of `#[warn(nonstandard_style)]`) 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] error: `self` parameter type does not contain `Self`
[INFO] [stdout]    --> src/production.rs:142:21
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn index<'a>(self: &'a [Box<dyn production_obj>], idx: game_types::BuildingType) -> &'a  Box<dyn production_obj> {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `&self`, `&mut self`, or `self: &Self` for correct lifetime elision
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #140611 <https://github.com/rust-lang/rust/issues/140611>
[INFO] [stdout]     = note: `#[deny(self_lifetime_elision_not_applicable)]` (part of `#[deny(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `self` parameter type does not contain `Self`
[INFO] [stdout]    --> src/production.rs:150:25
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn index_mut<'a>(self: &'a mut [Box<dyn production_obj>], idx: game_types::BuildingType) -> &'a mut Box<dyn production_obj> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `&self`, `&mut self`, or `self: &Self` for correct lifetime elision
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #140611 <https://github.com/rust-lang/rust/issues/140611>
[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] error: `self` parameter type does not contain `Self`
[INFO] [stdout]   --> src/game_types.rs:77:17
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn index(self: &Resources, idx: ResourceType) -> &f64 {
[INFO] [stdout]    |                    ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `&self`, `&mut self`, or `self: &Self` for correct lifetime elision
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #140611 <https://github.com/rust-lang/rust/issues/140611>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `self` parameter type does not contain `Self`
[INFO] [stdout]   --> src/game_types.rs:83:21
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn index_mut(self: &mut Resources, idx: ResourceType) -> &mut f64 {
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `&self`, `&mut self`, or `self: &Self` for correct lifetime elision
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #140611 <https://github.com/rust-lang/rust/issues/140611>
[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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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...
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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 `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)]` (part of `#[warn(nonstandard_style)]`) 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] error: `self` parameter type does not contain `Self`
[INFO] [stdout]    --> src/production.rs:142:21
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn index<'a>(self: &'a [Box<dyn production_obj>], idx: game_types::BuildingType) -> &'a  Box<dyn production_obj> {
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `&self`, `&mut self`, or `self: &Self` for correct lifetime elision
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #140611 <https://github.com/rust-lang/rust/issues/140611>
[INFO] [stdout]     = note: `#[deny(self_lifetime_elision_not_applicable)]` (part of `#[deny(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `self` parameter type does not contain `Self`
[INFO] [stdout]    --> src/production.rs:150:25
[INFO] [stdout]     |
[INFO] [stdout] 150 |     fn index_mut<'a>(self: &'a mut [Box<dyn production_obj>], idx: game_types::BuildingType) -> &'a mut Box<dyn production_obj> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `&self`, `&mut self`, or `self: &Self` for correct lifetime elision
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #140611 <https://github.com/rust-lang/rust/issues/140611>
[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] error: `self` parameter type does not contain `Self`
[INFO] [stdout]   --> src/game_types.rs:77:17
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn index(self: &Resources, idx: ResourceType) -> &f64 {
[INFO] [stdout]    |                    ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `&self`, `&mut self`, or `self: &Self` for correct lifetime elision
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #140611 <https://github.com/rust-lang/rust/issues/140611>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: `self` parameter type does not contain `Self`
[INFO] [stdout]   --> src/game_types.rs:83:21
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn index_mut(self: &mut Resources, idx: ResourceType) -> &mut f64 {
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `&self`, `&mut self`, or `self: &Self` for correct lifetime elision
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #140611 <https://github.com/rust-lang/rust/issues/140611>
[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)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(unused)]`) 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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...
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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)]` (part of `#[warn(unused)]`) 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: 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)]` (part of `#[warn(unused)]`) on by default
[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: 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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, 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/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/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)]` (part of `#[warn(unused)]`) 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: 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)]` (part of `#[warn(unused)]`) on by default
[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: 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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Bonus` is never used
[INFO] [stdout]   --> src/production.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | trait Bonus {
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HasBonus` is never used
[INFO] [stdout]   --> src/production.rs:43:7
[INFO] [stdout]    |
[INFO] [stdout] 43 | trait HasBonus<'a> {
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResetBonus` is never constructed
[INFO] [stdout]   --> src/production.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | struct ResetBonus {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UpgradeBonus` is never constructed
[INFO] [stdout]   --> src/production.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | struct UpgradeBonus {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TileBonus` is never constructed
[INFO] [stdout]   --> src/production.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | struct TileBonus<'a> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `basic_production` is never constructed
[INFO] [stdout]    --> src/production.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | struct 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: fields `name`, `num`, `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] 90 |     num: usize,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 91 |     cost: Resources,
[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: struct `always_unlocked` is never constructed
[INFO] [stdout]    --> src/game_types.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout] 267 | struct always_unlocked {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `and_unlock` is never constructed
[INFO] [stdout]    --> src/game_types.rs:276:8
[INFO] [stdout]     |
[INFO] [stdout] 276 | struct and_unlock {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `upgrade_unlock` is never constructed
[INFO] [stdout]    --> src/game_types.rs:291:8
[INFO] [stdout]     |
[INFO] [stdout] 291 | struct upgrade_unlock {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `tech_unlock` is never constructed
[INFO] [stdout]    --> src/game_types.rs:306:8
[INFO] [stdout]     |
[INFO] [stdout] 306 | struct tech_unlock {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `resource_unlock` is never constructed
[INFO] [stdout]    --> src/game_types.rs:321:8
[INFO] [stdout]     |
[INFO] [stdout] 321 | struct resource_unlock {
[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: 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: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/world.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(FromPrimitive, Copy, Clone)]
[INFO] [stdout]    |          ^------------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `FromPrimitive` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_TerrainType`
[INFO] [stdout] 29 | pub enum TerrainType {
[INFO] [stdout]    |          ----------- `TerrainType` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[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] [stderr] error: could not compile `Idle_Game_Rust` (bin "Idle_Game_Rust") due to 4 previous errors; 64 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Bonus` is never used
[INFO] [stdout]   --> src/production.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | trait Bonus {
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HasBonus` is never used
[INFO] [stdout]   --> src/production.rs:43:7
[INFO] [stdout]    |
[INFO] [stdout] 43 | trait HasBonus<'a> {
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResetBonus` is never constructed
[INFO] [stdout]   --> src/production.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | struct ResetBonus {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UpgradeBonus` is never constructed
[INFO] [stdout]   --> src/production.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | struct UpgradeBonus {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TileBonus` is never constructed
[INFO] [stdout]   --> src/production.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | struct TileBonus<'a> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `basic_production` is never constructed
[INFO] [stdout]    --> src/production.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | struct 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: fields `name`, `num`, `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] 90 |     num: usize,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 91 |     cost: Resources,
[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: struct `always_unlocked` is never constructed
[INFO] [stdout]    --> src/game_types.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout] 267 | struct always_unlocked {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `and_unlock` is never constructed
[INFO] [stdout]    --> src/game_types.rs:276:8
[INFO] [stdout]     |
[INFO] [stdout] 276 | struct and_unlock {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `upgrade_unlock` is never constructed
[INFO] [stdout]    --> src/game_types.rs:291:8
[INFO] [stdout]     |
[INFO] [stdout] 291 | struct upgrade_unlock {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `tech_unlock` is never constructed
[INFO] [stdout]    --> src/game_types.rs:306:8
[INFO] [stdout]     |
[INFO] [stdout] 306 | struct tech_unlock {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `resource_unlock` is never constructed
[INFO] [stdout]    --> src/game_types.rs:321:8
[INFO] [stdout]     |
[INFO] [stdout] 321 | struct resource_unlock {
[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: 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: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/world.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(FromPrimitive, Copy, Clone)]
[INFO] [stdout]    |          ^------------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `FromPrimitive` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_TerrainType`
[INFO] [stdout] 29 | pub enum TerrainType {
[INFO] [stdout]    |          ----------- `TerrainType` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `Idle_Game_Rust` (bin "Idle_Game_Rust" test) due to 4 previous errors; 64 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "9773d00ec86fb91163bd61f2a3ae38042c199d1a5f02d2a6e06c19593c70b016", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9773d00ec86fb91163bd61f2a3ae38042c199d1a5f02d2a6e06c19593c70b016", kill_on_drop: false }`
[INFO] [stdout] 9773d00ec86fb91163bd61f2a3ae38042c199d1a5f02d2a6e06c19593c70b016
