[INFO] fetching crate rust_tetris 0.9.1...
[INFO] checking rust_tetris-0.9.1 against f10db292a3733b5c67c8da8c7661195ff4b05774 for pr-158914
[INFO] extracting crate rust_tetris 0.9.1 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate rust_tetris 0.9.1
[INFO] finished tweaking crates.io crate rust_tetris 0.9.1
[INFO] tweaked toml for crates.io crate rust_tetris 0.9.1 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate rust_tetris 0.9.1 on toolchain f10db292a3733b5c67c8da8c7661195ff4b05774
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f10db292a3733b5c67c8da8c7661195ff4b05774" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate rust_tetris 0.9.1 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" "+f10db292a3733b5c67c8da8c7661195ff4b05774" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cc v1.1.37
[INFO] [stderr]   Downloaded xml-rs v0.8.23
[INFO] [stderr]   Downloaded calloop v0.10.6
[INFO] [stderr]   Downloaded bytemuck_derive v1.8.0
[INFO] [stderr]   Downloaded sctk-adwaita v0.5.4
[INFO] [stderr]   Downloaded tiny-skia-path v0.8.4
[INFO] [stderr]   Downloaded bytemuck v1.19.0
[INFO] [stderr]   Downloaded fdeflate v0.3.6
[INFO] [stderr]   Downloaded hashbrown v0.15.1
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.16.1
[INFO] [stderr]   Downloaded range-alloc v0.1.3
[INFO] [stderr]   Downloaded ggez v0.9.3
[INFO] [stderr]   Downloaded gpu-descriptor v0.2.4
[INFO] [stderr]   Downloaded png v0.17.14
[INFO] [stderr]   Downloaded khronos-egl v4.1.0
[INFO] [stderr]   Downloaded hassle-rs v0.10.0
[INFO] [stderr]   Downloaded com-rs v0.2.1
[INFO] [stderr]   Downloaded gpu-descriptor-types v0.1.2
[INFO] [stderr]   Downloaded wgpu-types v0.16.1
[INFO] [stderr]   Downloaded spirv v0.2.0+1.5.4
[INFO] [stderr]   Downloaded gpu-alloc-types v0.2.0
[INFO] [stderr]   Downloaded skeptic v0.13.7
[INFO] [stderr]   Downloaded d3d12 v0.6.0
[INFO] [stderr]   Downloaded gpu-alloc v0.5.4
[INFO] [stderr]   Downloaded symphonia v0.5.4
[INFO] [stderr]   Downloaded unicase v2.8.0
[INFO] [stderr]   Downloaded error-chain v0.12.4
[INFO] [stderr]   Downloaded cargo_metadata v0.14.2
[INFO] [stderr]   Downloaded tiny-skia v0.8.4
[INFO] [stderr]   Downloaded ttf-parser v0.25.0
[INFO] [stderr]   Downloaded symphonia-metadata v0.5.4
[INFO] [stderr]   Downloaded gpu-allocator v0.22.0
[INFO] [stderr]   Downloaded rodio v0.17.3
[INFO] [stderr]   Downloaded hound v3.5.1
[INFO] [stderr]   Downloaded symphonia-bundle-mp3 v0.5.4
[INFO] [stderr]   Downloaded coreaudio-sys v0.2.16
[INFO] [stderr]   Downloaded wgpu v0.16.3
[INFO] [stderr]   Downloaded symphonia-core v0.5.4
[INFO] [stderr]   Downloaded bytes v1.8.0
[INFO] [stderr]   Downloaded glow v0.12.3
[INFO] [stderr]   Downloaded lyon v1.0.1
[INFO] [stderr]   Downloaded lyon_path v1.0.6
[INFO] [stderr]   Downloaded lyon_algorithms v1.0.4
[INFO] [stderr]   Downloaded wgpu-hal v0.16.2
[INFO] [stderr]   Downloaded wgpu-core v0.16.1
[INFO] [stderr]   Downloaded lyon_geom v1.0.6
[INFO] [stderr]   Downloaded claxon v0.4.3
[INFO] [stderr]   Downloaded lyon_tessellation v1.0.15
[INFO] [stderr]   Downloaded twox-hash v2.0.1
[INFO] [stderr]   Downloaded gif v0.13.1
[INFO] [stderr]   Downloaded ordered-float v4.5.0
[INFO] [stderr]   Downloaded glyph_brush_draw_cache v0.1.6
[INFO] [stderr]   Downloaded rustix v0.38.40
[INFO] [stderr]   Downloaded glyph_brush v0.7.11
[INFO] [stderr]   Downloaded glyph_brush_layout v0.2.4
[INFO] [stderr]   Downloaded naga v0.12.3
[INFO] [stderr]   Downloaded ash v0.37.3+1.3.251
[INFO] [stderr]   Downloaded xi-unicode v0.3.0
[INFO] [stderr]   Downloaded libc v0.2.162
[INFO] [stderr]   Downloaded metal v0.24.0
[INFO] [stderr]   Downloaded gilrs v0.10.10
[INFO] [stderr]   Downloaded gilrs-core v0.5.15
[INFO] [stderr]   Downloaded crevice-derive v0.10.0
[INFO] [stderr]   Downloaded inotify v0.10.2
[INFO] [stderr]   Downloaded crevice v0.13.0
[INFO] [stderr]   Downloaded windows v0.44.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] ece2509842302ad4328a86f0ab525e226cca5f7b481c25cc1117c84d4377017d
[INFO] running `Command { std: "docker" "start" "ece2509842302ad4328a86f0ab525e226cca5f7b481c25cc1117c84d4377017d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ece2509842302ad4328a86f0ab525e226cca5f7b481c25cc1117c84d4377017d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ece2509842302ad4328a86f0ab525e226cca5f7b481c25cc1117c84d4377017d" "/opt/rustwide/cargo-home/bin/cargo" "+f10db292a3733b5c67c8da8c7661195ff4b05774" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ece2509842302ad4328a86f0ab525e226cca5f7b481c25cc1117c84d4377017d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ece2509842302ad4328a86f0ab525e226cca5f7b481c25cc1117c84d4377017d" "/opt/rustwide/cargo-home/bin/cargo" "+f10db292a3733b5c67c8da8c7661195ff4b05774" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.162
[INFO] [stderr]    Compiling pkg-config v0.3.31
[INFO] [stderr]    Compiling libm v0.2.11
[INFO] [stderr]     Checking log v0.4.22
[INFO] [stderr]    Compiling xml-rs v0.8.23
[INFO] [stderr]    Compiling proc-macro2 v1.0.89
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling serde v1.0.215
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]     Checking libloading v0.8.5
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]     Checking bitflags v2.6.0
[INFO] [stderr]     Checking miniz_oxide v0.8.0
[INFO] [stderr]     Checking crc32fast v1.4.2
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]     Checking ttf-parser v0.25.0
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling rustix v0.38.40
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling semver v1.0.23
[INFO] [stderr]     Checking downcast-rs v1.2.1
[INFO] [stderr]    Compiling serde_json v1.0.132
[INFO] [stderr]    Compiling camino v1.1.9
[INFO] [stderr]     Checking flate2 v1.0.34
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.8
[INFO] [stderr]     Checking fdeflate v0.3.6
[INFO] [stderr]    Compiling error-chain v0.12.4
[INFO] [stderr]     Checking libloading v0.7.4
[INFO] [stderr]    Compiling pulldown-cmark v0.9.6
[INFO] [stderr]    Compiling ash v0.37.3+1.3.251
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking allocator-api2 v0.2.20
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]    Compiling linux-raw-sys v0.4.14
[INFO] [stderr]    Compiling itoa v1.0.11
[INFO] [stderr]    Compiling khronos-egl v4.1.0
[INFO] [stderr]    Compiling ryu v1.0.18
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]     Checking png v0.17.14
[INFO] [stderr]    Compiling syn v2.0.87
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling smithay-client-toolkit v0.16.1
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]     Checking gpu-descriptor-types v0.1.2
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]    Compiling cc v1.1.37
[INFO] [stderr]     Checking gpu-alloc-types v0.2.0
[INFO] [stderr]    Compiling zstd-safe v5.0.2+zstd.1.5.2
[INFO] [stderr]     Checking xcursor v0.3.8
[INFO] [stderr]    Compiling unicase v2.8.0
[INFO] [stderr]     Checking raw-window-handle v0.5.2
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]     Checking hexf-parse v0.2.1
[INFO] [stderr]    Compiling once_cell v1.20.2
[INFO] [stderr]     Checking strict-num v0.1.1
[INFO] [stderr]     Checking unicode-xid v0.2.6
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking nix v0.25.1
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling hashbrown v0.15.1
[INFO] [stderr]    Compiling fastrand v2.2.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking gpu-alloc v0.5.4
[INFO] [stderr]    Compiling indexmap v2.6.0
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking wgpu-types v0.16.1
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling glob v0.3.1
[INFO] [stderr]     Checking profiling v1.0.16
[INFO] [stderr]    Compiling toml_datetime v0.6.8
[INFO] [stderr]    Compiling bytecount v0.6.8
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]     Checking euclid v0.22.11
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]     Checking spirv v0.2.0+1.5.4
[INFO] [stderr]    Compiling winnow v0.6.20
[INFO] [stderr]     Checking weezl v0.1.8
[INFO] [stderr]     Checking owned_ttf_parser v0.25.0
[INFO] [stderr]     Checking ab_glyph v0.2.29
[INFO] [stderr]     Checking either v1.13.0
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking glow v0.12.3
[INFO] [stderr]     Checking renderdoc-sys v1.1.0
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]    Compiling winit v0.28.7
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling zstd-sys v2.0.13+zstd.1.5.6
[INFO] [stderr]    Compiling bzip2-sys v0.1.11+1.0.8
[INFO] [stderr]    Compiling tempfile v3.14.0
[INFO] [stderr]     Checking lyon_geom v1.0.6
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling bytemuck_derive v1.8.0
[INFO] [stderr]    Compiling serde_derive v1.0.215
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking inotify v0.10.2
[INFO] [stderr]     Checking lyon_path v1.0.6
[INFO] [stderr]     Checking crossbeam-channel v0.5.13
[INFO] [stderr]    Compiling memoffset v0.8.0
[INFO] [stderr]     Checking ogg v0.8.0
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking xi-unicode v0.3.0
[INFO] [stderr]     Checking float_next_after v1.0.0
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking rustc-hash v2.0.0
[INFO] [stderr]     Checking jpeg-decoder v0.3.1
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking uuid v1.11.0
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]    Compiling gilrs v0.10.10
[INFO] [stderr]     Checking mint v0.5.9
[INFO] [stderr]     Checking glyph_brush_layout v0.2.4
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]    Compiling toml_edit v0.22.22
[INFO] [stderr]     Checking bytemuck v1.19.0
[INFO] [stderr]     Checking gilrs-core v0.5.15
[INFO] [stderr]     Checking lyon_tessellation v1.0.15
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]     Checking gif v0.13.1
[INFO] [stderr]     Checking symphonia-core v0.5.4
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking tiny-skia-path v0.8.4
[INFO] [stderr]     Checking calloop v0.10.6
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking naga v0.12.3
[INFO] [stderr]     Checking glyph_brush_draw_cache v0.1.6
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking bzip2 v0.4.4
[INFO] [stderr]     Checking lyon_algorithms v1.0.4
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking ordered-float v4.5.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking tiny-skia v0.8.4
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]     Checking claxon v0.4.3
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking gpu-descriptor v0.2.4
[INFO] [stderr]     Checking lyon v1.0.1
[INFO] [stderr]     Checking directories v5.0.1
[INFO] [stderr]     Checking glam v0.24.2
[INFO] [stderr]    Compiling smart-default v0.7.1
[INFO] [stderr]     Checking ordered-float v3.9.2
[INFO] [stderr]    Compiling crevice-derive v0.10.0
[INFO] [stderr]     Checking symphonia-metadata v0.5.4
[INFO] [stderr]     Checking pollster v0.3.0
[INFO] [stderr]     Checking colored v2.1.0
[INFO] [stderr]     Checking crevice v0.13.0
[INFO] [stderr]     Checking twox-hash v2.0.1
[INFO] [stderr]     Checking symphonia-bundle-mp3 v0.5.4
[INFO] [stderr]     Checking glyph_brush v0.7.11
[INFO] [stderr]    Compiling proc-macro-crate v3.2.0
[INFO] [stderr]     Checking symphonia v0.5.4
[INFO] [stderr]     Checking rodio v0.17.3
[INFO] [stderr]    Compiling num_enum_derive v0.7.3
[INFO] [stderr]     Checking num_enum v0.7.3
[INFO] [stderr]     Checking toml v0.5.11
[INFO] [stderr]    Compiling cargo-platform v0.1.8
[INFO] [stderr]     Checking zstd v0.11.2+zstd.1.5.2
[INFO] [stderr]     Checking zip v0.6.6
[INFO] [stderr]    Compiling cargo_metadata v0.14.2
[INFO] [stderr]    Compiling skeptic v0.13.7
[INFO] [stderr]    Compiling ggez v0.9.3
[INFO] [stderr]     Checking wgpu-hal v0.16.2
[INFO] [stderr]     Checking wgpu-core v0.16.1
[INFO] [stderr]     Checking wgpu v0.16.3
[INFO] [stderr]     Checking sctk-adwaita v0.5.4
[INFO] [stderr]     Checking rust_tetris v0.9.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Updatable`
[INFO] [stdout]  --> src/t_state.rs:6:46
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::t_updatable::{Drawable, Tickable, Updatable};
[INFO] [stdout]   |                                              ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/define/fn_define.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::runtime::input::InputComponent`
[INFO] [stdout]  --> src/define/fn_define.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::runtime::input::InputComponent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Void_Fn` should have an upper camel case name
[INFO] [stdout]  --> src/define/fn_define.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub type Void_Fn = fn();
[INFO] [stdout]   |          ^^^^^^^ help: convert the identifier to upper camel case: `VoidFn`
[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 `Bool_KeyCode_Fn` should have an upper camel case name
[INFO] [stdout]  --> src/define/fn_define.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type Bool_KeyCode_Fn = fn(KeyCode) -> bool;
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `BoolKeyCodeFn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FromPrimitive`
[INFO] [stdout]  --> src/define/enum_define.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use num_enum::{FromPrimitive, IntoPrimitive, TryFromPrimitive};
[INFO] [stdout]   |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LogLevelEnum` and `log`
[INFO] [stdout]  --> src/runtime/procedure/procedure_main_ui.rs:7:28
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::tools::logger::{log, LogLevelEnum};
[INFO] [stdout]   |                            ^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KeyInput`
[INFO] [stdout]  --> src/runtime/procedure/procedure_main_ui.rs:8:38
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ggez::input::keyboard::{KeyCode, KeyInput};
[INFO] [stdout]   |                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StrokeOptions`
[INFO] [stdout]  --> src/runtime/procedure/procedure_test_draw_block.rs:4:46
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ggez::graphics::{Canvas, DrawMode, Mesh, StrokeOptions, Text, Color, DrawParam};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/runtime/procedure/procedure_test_draw_block.rs:105:11
[INFO] [stdout]     |
[INFO] [stdout] 105 |         if(self._tick_counter < 10){
[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] 105 -         if(self._tick_counter < 10){
[INFO] [stdout] 105 +         if self._tick_counter < 10 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Formatter`
[INFO] [stdout]  --> src/runtime/procedure/procedure_test_draw_text.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::{Debug, Formatter};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Tickable`
[INFO] [stdout]   --> src/runtime/procedure.rs:19:26
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::t_updatable::{Tickable, Updatable};
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/runtime/event.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 |         if(!self._event_map.contains_key(&event_id)){
[INFO] [stdout]    |           ^                                        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 27 -         if(!self._event_map.contains_key(&event_id)){
[INFO] [stdout] 27 +         if !self._event_map.contains_key(&event_id) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/runtime/event.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 |         if(!self._event_map.contains_key(&event_id)){
[INFO] [stdout]    |           ^                                        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 44 -         if(!self._event_map.contains_key(&event_id)){
[INFO] [stdout] 44 +         if !self._event_map.contains_key(&event_id) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/runtime/event.rs:52:11
[INFO] [stdout]    |
[INFO] [stdout] 52 |         if(!call_back_vec.contains(&call_back)){
[INFO] [stdout]    |           ^                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 52 -         if(!call_back_vec.contains(&call_back)){
[INFO] [stdout] 52 +         if !call_back_vec.contains(&call_back) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/runtime/event.rs:67:11
[INFO] [stdout]    |
[INFO] [stdout] 67 |         if(!self._event_map.contains_key(&event_id)){
[INFO] [stdout]    |           ^                                        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 67 -         if(!self._event_map.contains_key(&event_id)){
[INFO] [stdout] 67 +         if !self._event_map.contains_key(&event_id) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/runtime/event.rs:73:11
[INFO] [stdout]    |
[INFO] [stdout] 73 |         if(!call_back_vec.contains(&call_back)){
[INFO] [stdout]    |           ^                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 73 -         if(!call_back_vec.contains(&call_back)){
[INFO] [stdout] 73 +         if !call_back_vec.contains(&call_back) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Lines`
[INFO] [stdout]  --> src/runtime/data/play_field.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::Lines;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::num::ParseFloatError`
[INFO] [stdout]  --> src/runtime/data/play_field.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::num::ParseFloatError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/runtime/data/tetrimino.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ggez::glam::{IVec2, ivec2, Vec2};
[INFO] [stdout]   |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::constant::BLOCK_MAX_OCCUPIED`
[INFO] [stdout]  --> src/runtime/data/tetrimino.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::constant::BLOCK_MAX_OCCUPIED;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProcedureTestDrawBlockParam` and `ProcedureTestDrawBlock`
[INFO] [stdout]   --> src/app.rs:11:60
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::runtime::procedure::procedure_test_draw_block::{ProcedureTestDrawBlock, ProcedureTestDrawBlockParam};
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LogLevelEnum`
[INFO] [stdout]   --> src/app.rs:14:33
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::tools::logger::{log, LogLevelEnum};
[INFO] [stdout]    |                                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Fatal`
[INFO] [stdout]   --> src/app.rs:15:42
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::tools::logger::LogLevelEnum::{Fatal, Warning};
[INFO] [stdout]    |                                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `debug_draw_block`
[INFO] [stdout]   --> src/app.rs:40:19
[INFO] [stdout]    |
[INFO] [stdout] 40 |             #[cfg(feature = "debug_draw_block")]{
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `debug` and `debug_draw`
[INFO] [stdout]    = help: consider adding `debug_draw_block` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]   --> src/runtime/data/teri_grid.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     #[inline]
[INFO] [stdout]    |     ^^^^^^^^^ help: remove this attribute
[INFO] [stdout]    |
[INFO] [stdout] note: attribute also specified here
[INFO] [stdout]   --> src/runtime/data/teri_grid.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     #[inline]
[INFO] [stdout]    |     ^^^^^^^^^
[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: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Updatable`
[INFO] [stdout]  --> src/t_state.rs:6:46
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::t_updatable::{Drawable, Tickable, Updatable};
[INFO] [stdout]   |                                              ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/define/fn_define.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::runtime::input::InputComponent`
[INFO] [stdout]  --> src/define/fn_define.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::runtime::input::InputComponent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Void_Fn` should have an upper camel case name
[INFO] [stdout]  --> src/define/fn_define.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub type Void_Fn = fn();
[INFO] [stdout]   |          ^^^^^^^ help: convert the identifier to upper camel case: `VoidFn`
[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 `Bool_KeyCode_Fn` should have an upper camel case name
[INFO] [stdout]  --> src/define/fn_define.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type Bool_KeyCode_Fn = fn(KeyCode) -> bool;
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `BoolKeyCodeFn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FromPrimitive`
[INFO] [stdout]  --> src/define/enum_define.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use num_enum::{FromPrimitive, IntoPrimitive, TryFromPrimitive};
[INFO] [stdout]   |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LogLevelEnum` and `log`
[INFO] [stdout]  --> src/runtime/procedure/procedure_main_ui.rs:7:28
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::tools::logger::{log, LogLevelEnum};
[INFO] [stdout]   |                            ^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KeyInput`
[INFO] [stdout]  --> src/runtime/procedure/procedure_main_ui.rs:8:38
[INFO] [stdout]   |
[INFO] [stdout] 8 | use ggez::input::keyboard::{KeyCode, KeyInput};
[INFO] [stdout]   |                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StrokeOptions`
[INFO] [stdout]  --> src/runtime/procedure/procedure_test_draw_block.rs:4:46
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ggez::graphics::{Canvas, DrawMode, Mesh, StrokeOptions, Text, Color, DrawParam};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/runtime/procedure/procedure_test_draw_block.rs:105:11
[INFO] [stdout]     |
[INFO] [stdout] 105 |         if(self._tick_counter < 10){
[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] 105 -         if(self._tick_counter < 10){
[INFO] [stdout] 105 +         if self._tick_counter < 10 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Formatter`
[INFO] [stdout]  --> src/runtime/procedure/procedure_test_draw_text.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::{Debug, Formatter};
[INFO] [stdout]   |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Tickable`
[INFO] [stdout]   --> src/runtime/procedure.rs:19:26
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::t_updatable::{Tickable, Updatable};
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/runtime/event.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 |         if(!self._event_map.contains_key(&event_id)){
[INFO] [stdout]    |           ^                                        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 27 -         if(!self._event_map.contains_key(&event_id)){
[INFO] [stdout] 27 +         if !self._event_map.contains_key(&event_id) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/runtime/event.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 |         if(!self._event_map.contains_key(&event_id)){
[INFO] [stdout]    |           ^                                        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 44 -         if(!self._event_map.contains_key(&event_id)){
[INFO] [stdout] 44 +         if !self._event_map.contains_key(&event_id) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/runtime/event.rs:52:11
[INFO] [stdout]    |
[INFO] [stdout] 52 |         if(!call_back_vec.contains(&call_back)){
[INFO] [stdout]    |           ^                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 52 -         if(!call_back_vec.contains(&call_back)){
[INFO] [stdout] 52 +         if !call_back_vec.contains(&call_back) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/runtime/event.rs:67:11
[INFO] [stdout]    |
[INFO] [stdout] 67 |         if(!self._event_map.contains_key(&event_id)){
[INFO] [stdout]    |           ^                                        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 67 -         if(!self._event_map.contains_key(&event_id)){
[INFO] [stdout] 67 +         if !self._event_map.contains_key(&event_id) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/runtime/event.rs:73:11
[INFO] [stdout]    |
[INFO] [stdout] 73 |         if(!call_back_vec.contains(&call_back)){
[INFO] [stdout]    |           ^                                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 73 -         if(!call_back_vec.contains(&call_back)){
[INFO] [stdout] 73 +         if !call_back_vec.contains(&call_back) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Lines`
[INFO] [stdout]  --> src/runtime/data/play_field.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::Lines;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::num::ParseFloatError`
[INFO] [stdout]  --> src/runtime/data/play_field.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::num::ParseFloatError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]  --> src/runtime/data/tetrimino.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ggez::glam::{IVec2, ivec2, Vec2};
[INFO] [stdout]   |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::constant::BLOCK_MAX_OCCUPIED`
[INFO] [stdout]  --> src/runtime/data/tetrimino.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::constant::BLOCK_MAX_OCCUPIED;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProcedureTestDrawBlockParam` and `ProcedureTestDrawBlock`
[INFO] [stdout]   --> src/app.rs:11:60
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::runtime::procedure::procedure_test_draw_block::{ProcedureTestDrawBlock, ProcedureTestDrawBlockParam};
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LogLevelEnum`
[INFO] [stdout]   --> src/app.rs:14:33
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::tools::logger::{log, LogLevelEnum};
[INFO] [stdout]    |                                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Fatal`
[INFO] [stdout]   --> src/app.rs:15:42
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::tools::logger::LogLevelEnum::{Fatal, Warning};
[INFO] [stdout]    |                                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `debug_draw_block`
[INFO] [stdout]   --> src/app.rs:40:19
[INFO] [stdout]    |
[INFO] [stdout] 40 |             #[cfg(feature = "debug_draw_block")]{
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `debug` and `debug_draw`
[INFO] [stdout]    = help: consider adding `debug_draw_block` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute
[INFO] [stdout]   --> src/runtime/data/teri_grid.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     #[inline]
[INFO] [stdout]    |     ^^^^^^^^^ help: remove this attribute
[INFO] [stdout]    |
[INFO] [stdout] note: attribute also specified here
[INFO] [stdout]   --> src/runtime/data/teri_grid.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     #[inline]
[INFO] [stdout]    |     ^^^^^^^^^
[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: `#[warn(unused_attributes)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/runtime/procedure.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 | /         return if let Some(new_procedure) = self._procedure_map.remove(&enum_type) {
[INFO] [stdout] 144 | |             self._current_procedure = Some(new_procedure);
[INFO] [stdout] 145 | |             let procedure_ref = self._current_procedure.as_mut().unwrap();
[INFO] [stdout] 146 | |             procedure_ref.on_enter(enter_param);
[INFO] [stdout] 147 | |             return true;
[INFO] [stdout]     | |             ----------- any code following this expression is unreachable
[INFO] [stdout] ...   |
[INFO] [stdout] 152 | |             return false;
[INFO] [stdout] 153 | |         }
[INFO] [stdout]     | |_________^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `teri`
[INFO] [stdout]   --> src/tools.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let teri =  Tetrimino::new(rand_teri_type);
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_teri`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/runtime/procedure/procedure_main_ui.rs:158:27
[INFO] [stdout]     |
[INFO] [stdout] 158 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interval`
[INFO] [stdout]    --> src/runtime/procedure/procedure_main_ui.rs:158:63
[INFO] [stdout]     |
[INFO] [stdout] 158 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]     |                                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/runtime/procedure/procedure_main_ui.rs:169:28
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn on_enter(&mut self, mut param:Box<dyn ProcedureParam>){
[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: `param`
[INFO] [stdout]    --> src/runtime/procedure/procedure_main_ui.rs:169:28
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn on_enter(&mut self, mut param:Box<dyn ProcedureParam>){
[INFO] [stdout]     |                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_param`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_playing.rs:86:27
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_time`
[INFO] [stdout]   --> src/runtime/procedure/procedure_playing.rs:86:46
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interval`
[INFO] [stdout]   --> src/runtime/procedure/procedure_playing.rs:86:63
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `procedure_to_return` is never read
[INFO] [stdout]    --> src/runtime/procedure/procedure_playing.rs:243:21
[INFO] [stdout]     |
[INFO] [stdout] 243 |                     procedure_to_return = (Some(ProcedureEnum::Playing),None);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/runtime/procedure/procedure_playing.rs:377:37
[INFO] [stdout]     |
[INFO] [stdout] 377 |     fn draw_playing_state(&mut self,ctx:&mut Context,canvas:&mut Canvas){
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/runtime/procedure/procedure_playing.rs:387:29
[INFO] [stdout]     |
[INFO] [stdout] 387 |     fn draw_score(&mut self,ctx:&mut Context,canvas:&mut Canvas){
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/runtime/procedure/procedure_playing.rs:450:33
[INFO] [stdout]     |
[INFO] [stdout] 450 |     fn draw_playing_info(&self, ctx : &mut Context , canvas : &mut Canvas){
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `canvas`
[INFO] [stdout]    --> src/runtime/procedure/procedure_playing.rs:450:54
[INFO] [stdout]     |
[INFO] [stdout] 450 |     fn draw_playing_info(&self, ctx : &mut Context , canvas : &mut Canvas){
[INFO] [stdout]     |                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_canvas`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_over.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn on_draw(&mut self, ctx: &mut Context) -> GameResult {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_over.rs:22:27
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_time`
[INFO] [stdout]   --> src/runtime/procedure/procedure_over.rs:22:46
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interval`
[INFO] [stdout]   --> src/runtime/procedure/procedure_over.rs:22:63
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_over.rs:33:28
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn on_update(&mut self,ctx:&mut Context,key_code: Option<KeyCode>,delta_sec:f32) -> (Option<ProcedureEnum>, Option<Box<dyn Proce...
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_code`
[INFO] [stdout]   --> src/runtime/procedure/procedure_over.rs:33:45
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn on_update(&mut self,ctx:&mut Context,key_code: Option<KeyCode>,delta_sec:f32) -> (Option<ProcedureEnum>, Option<Box<dyn Proce...
[INFO] [stdout]    |                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_sec`
[INFO] [stdout]   --> src/runtime/procedure/procedure_over.rs:33:71
[INFO] [stdout]    |
[INFO] [stdout] 33 | ..._code: Option<KeyCode>,delta_sec:f32) -> (Option<ProcedureEnum>, Option<Box<dyn ProcedureParam>>){
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_sec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mesh_rect_2`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let mesh_rect_2 = Mesh::new_rectangle(
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mesh_rect_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:69:27
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_time`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:69:46
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interval`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:69:63
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `param`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:76:28
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn on_enter(&mut self, param: Box<dyn ProcedureParam>) {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_param`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:84:28
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn on_update(&mut self,ctx:&mut Context, key_code: Option<KeyCode>,delta_sec:f32) -> (Option<ProcedureEnum>, Option<Box<dyn Proc...
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_code`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:84:46
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn on_update(&mut self,ctx:&mut Context, key_code: Option<KeyCode>,delta_sec:f32) -> (Option<ProcedureEnum>, Option<Box<dyn Proc...
[INFO] [stdout]    |                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_sec`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:84:72
[INFO] [stdout]    |
[INFO] [stdout] 84 | ..._code: Option<KeyCode>,delta_sec:f32) -> (Option<ProcedureEnum>, Option<Box<dyn ProcedureParam>>){
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_sec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `param`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:89:28
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn on_leave(&mut self, param: Option<Box<dyn ProcedureParam>>) {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_param`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:23:27
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn on_draw(&mut self, ctx: &mut Context) -> GameResult {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `param`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:29:27
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn on_enter(&mut self,param:Box<dyn ProcedureParam>){
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_param`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:32:28
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn on_update(&mut self,ctx:&mut ggez::Context,key_code: Option<ggez::input::keyboard::KeyCode>,delta_sec:f32) -> (Option<Procedu...
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_code`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:32:51
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...,ctx:&mut ggez::Context,key_code: Option<ggez::input::keyboard::KeyCode>,delta_sec:f32) -> (Option<ProcedureEnum>, Option<Box<dyn...
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_sec`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:32:100
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...ut::keyboard::KeyCode>,delta_sec:f32) -> (Option<ProcedureEnum>, Option<Box<dyn ProcedureParam>>){
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_sec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `param`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:35:27
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn on_leave(&mut self,param:Option<Box<dyn ProcedureParam>>){
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_param`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:44:26
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn on_tick(&mut self,ctx:&mut ggez::Context,delta_time:f32,interval:f32){
[INFO] [stdout]    |                          ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_time`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:44:49
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn on_tick(&mut self,ctx:&mut ggez::Context,delta_time:f32,interval:f32){
[INFO] [stdout]    |                                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interval`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:44:64
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn on_tick(&mut self,ctx:&mut ggez::Context,delta_time:f32,interval:f32){
[INFO] [stdout]    |                                                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/runtime/procedure/playing_state_enum.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |             _ => "Unknown",
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/runtime/procedure/playing_state_enum.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |             PlayingStateEnum::Start => "Start",
[INFO] [stdout]    |             ----------------------- matches some of the same values
[INFO] [stdout] 21 |             PlayingStateEnum::Falling => "Falling",
[INFO] [stdout]    |             ------------------------- matches some of the same values
[INFO] [stdout] 22 |             PlayingStateEnum::Performing => "Performing",
[INFO] [stdout]    |             ---------------------------- matches some of the same values
[INFO] [stdout] 23 |             PlayingStateEnum::Settlement => "Settlement",
[INFO] [stdout]    |             ---------------------------- matches some of the same values
[INFO] [stdout] 24 |             _ => "Unknown",
[INFO] [stdout]    |             ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `insert_succ` is never read
[INFO] [stdout]    --> src/runtime/procedure.rs:98:57
[INFO] [stdout]     |
[INFO] [stdout]  98 |         let mut insert_succ : Option<Box<dyn TState>> = None;
[INFO] [stdout]     |                                                         ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 101 |                 insert_succ = self._procedure_map.insert(enum_type,Box::new(procedure_main_ui::ProcedureMainUI::new()));
[INFO] [stdout]     |                 ----------- `insert_succ` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_code`
[INFO] [stdout]   --> src/runtime/input.rs:47:30
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn not_impl_input_filter(key_code: KeyCode) -> bool{
[INFO] [stdout]    |                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_code`
[INFO] [stdout]   --> src/runtime/input.rs:73:29
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn playing_input_filter(key_code: KeyCode) -> bool{
[INFO] [stdout]    |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_code`
[INFO] [stdout]   --> src/runtime/input.rs:77:26
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn over_input_filter(key_code: KeyCode) -> bool{
[INFO] [stdout]    |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/runtime/procedure.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 | /         return if let Some(new_procedure) = self._procedure_map.remove(&enum_type) {
[INFO] [stdout] 144 | |             self._current_procedure = Some(new_procedure);
[INFO] [stdout] 145 | |             let procedure_ref = self._current_procedure.as_mut().unwrap();
[INFO] [stdout] 146 | |             procedure_ref.on_enter(enter_param);
[INFO] [stdout] 147 | |             return true;
[INFO] [stdout]     | |             ----------- any code following this expression is unreachable
[INFO] [stdout] ...   |
[INFO] [stdout] 152 | |             return false;
[INFO] [stdout] 153 | |         }
[INFO] [stdout]     | |_________^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/runtime/data/play_field.rs:274:13
[INFO] [stdout]     |
[INFO] [stdout] 274 |         let mut line_index = 0;
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line_index`
[INFO] [stdout]    --> src/runtime/data/play_field.rs:274:13
[INFO] [stdout]     |
[INFO] [stdout] 274 |         let mut line_index = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `curr_col` is never read
[INFO] [stdout]    --> src/runtime/data/play_field.rs:277:28
[INFO] [stdout]     |
[INFO] [stdout] 277 |         let mut curr_col = 0;
[INFO] [stdout]     |                            ^ this value is reassigned later and never used
[INFO] [stdout] 278 |         for j in 0..constant::PLAY_FIELD_RAWS{
[INFO] [stdout] 279 |             curr_col = j;
[INFO] [stdout]     |             ------------ `curr_col` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]    --> src/runtime/data/play_field.rs:405:13
[INFO] [stdout]     |
[INFO] [stdout] 405 |         let len = block_area.len();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_angle`
[INFO] [stdout]    --> src/runtime/data/tetrimino.rs:189:94
[INFO] [stdout]     |
[INFO] [stdout] 189 |     fn negate(&self,tetri_type : &TetriminoTypeEnum , clock_wise : bool , curr_angle : u16 , old_angle : u16) -> i32{
[INFO] [stdout]     |                                                                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_angle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/runtime/data/tetrimino.rs:265:17
[INFO] [stdout]     |
[INFO] [stdout] 265 |             let mut new_tetrimino = Tetrimino{
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repeat`
[INFO] [stdout]    --> src/app.rs:174:71
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn key_down_event(&mut self, _ctx: &mut Context, input: KeyInput, repeat: bool) -> GameResult {
[INFO] [stdout]     |                                                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_repeat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RUNTIME_INITIAL_PROCEDURE_INDEX` is never used
[INFO] [stdout]   --> src/constant.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const RUNTIME_INITIAL_PROCEDURE_INDEX : i32 = 0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_R0G0B0` is never used
[INFO] [stdout]   --> src/constant.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub const COLOR_R0G0B0 : [f32;3] = [0.0 ,0.0 ,0.0];
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_R1G1B1` is never used
[INFO] [stdout]   --> src/constant.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub const COLOR_R1G1B1 : [f32;3] = [1.0 ,1.0 ,1.0];
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_R1G1B1A1` is never used
[INFO] [stdout]   --> src/constant.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const COLOR_R1G1B1A1 : [f32;4]  = [1.0 ,1.0 ,1.0,1.0];
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_ALPHA_1` is never used
[INFO] [stdout]   --> src/constant.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const COLOR_ALPHA_1 : [f32;1] = [1.0];
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_ALPHA_0` is never used
[INFO] [stdout]   --> src/constant.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub const COLOR_ALPHA_0 : [f32;1] = [0.0];
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK_MAX_OCCUPIED` is never used
[INFO] [stdout]   --> src/constant.rs:63:11
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub const BLOCK_MAX_OCCUPIED : usize = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Void_Fn` is never used
[INFO] [stdout]  --> src/define/fn_define.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub type Void_Fn = fn();
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/define/enum_define.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl TetriminoTypeEnum {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] 60 |     ///将枚举转换为&str / Convert enum to &str
[INFO] [stdout] 61 |     pub fn as_str(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Purple` is never constructed
[INFO] [stdout]   --> src/define/enum_define.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub enum TetriminoColorEnum{
[INFO] [stdout]    |          ------------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 87 |     Purple,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TetriminoColorEnum` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_as_empty`, `add_new_procedure`, and `all_procedure_name` are never used
[INFO] [stdout]    --> src/runtime/procedure.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl ProcedureComponent {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn new_as_empty() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn add_new_procedure(&mut self,procedure_enum:ProcedureEnum) -> bool{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn all_procedure_name(&self) -> Vec<String>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `draw_playing_state` is never used
[INFO] [stdout]    --> src/runtime/procedure/procedure_playing.rs:377:8
[INFO] [stdout]     |
[INFO] [stdout] 309 | impl ProcedurePlaying {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 377 |     fn draw_playing_state(&mut self,ctx:&mut Context,canvas:&mut Canvas){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProcedureTestDrawBlock` is never constructed
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct ProcedureTestDrawBlock{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `draw_text`, `draw_block`, and `draw_another_block` are never used
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl ProcedureTestDrawBlock{
[INFO] [stdout]    | --------------------------- associated items in this implementation
[INFO] [stdout] 22 |     pub fn new()-> Self{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     fn draw_text(&mut self,canvas: &mut Canvas){
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn draw_block(&mut self,canvas: &mut Canvas,ctx:&mut Context) -> GameResult{
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn draw_another_block(&mut self,canvas: &mut Canvas,ctx:&mut Context) -> GameResult{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProcedureTestDrawBlockParam` is never constructed
[INFO] [stdout]    --> src/runtime/procedure/procedure_test_draw_block.rs:116:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct ProcedureTestDrawBlockParam{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/runtime/procedure/procedure_test_draw_block.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl ProcedureTestDrawBlockParam {
[INFO] [stdout]     | -------------------------------- associated function in this implementation
[INFO] [stdout] 121 |     pub fn new() -> Self{
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProcedureTestDrawText` is never constructed
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ProcedureTestDrawText{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl ProcedureTestDrawText{
[INFO] [stdout]    | -------------------------- associated function in this implementation
[INFO] [stdout] 15 |     pub fn new() -> Self{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProcedureTestDrawTextParam` is never constructed
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct ProcedureTestDrawTextParam{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl ProcedureTestDrawTextParam{
[INFO] [stdout]    | ------------------------------- associated function in this implementation
[INFO] [stdout] 57 |     pub fn new() -> Self{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EventComponent` is never constructed
[INFO] [stdout]  --> src/runtime/event.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct EventComponent {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `fire`, `register_event`, `unregister_event`, and `test` are never used
[INFO] [stdout]   --> src/runtime/event.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl EventComponent {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 15 |     ///constructor
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn fire(&mut self,event_id:i32){
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn register_event(&mut self,event_id:i32,call_back:fn()) -> bool{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn unregister_event(&mut self,event_id: i32,call_back:fn()) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn test(&self){
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `clear_input`, `main_ui_input_filter`, `playing_input_filter`, `over_input_filter`, and `set_input_filter_mode` are never used
[INFO] [stdout]   --> src/runtime/input.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl InputComponent {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn clear_input(&mut self){
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     fn main_ui_input_filter(key_code: KeyCode) -> bool{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn playing_input_filter(key_code: KeyCode) -> bool{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn over_input_filter(key_code: KeyCode) -> bool{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn set_input_filter_mode(&mut self,procedure:ProcedureEnum){
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `block_area`, `block_area_mut`, and `get_curr_tetrimino_type` are never used
[INFO] [stdout]    --> src/runtime/data/play_field.rs:89:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl PlayField {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn block_area(&self) -> & [[TetriGridCell;constant::PLAY_FIELD_RAWS];constant::PLAY_FIELD_COLS]{
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn block_area_mut(&mut self) -> &mut [[TetriGridCell;constant::PLAY_FIELD_RAWS];constant::PLAY_FIELD_COLS]{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn get_curr_tetrimino_type(&self) -> &TetriminoTypeEnum{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `detect_tetrimino_collision_one_cell` is never used
[INFO] [stdout]    --> src/runtime/data/play_field.rs:455:8
[INFO] [stdout]     |
[INFO] [stdout] 320 | impl PlayField {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 455 |     fn detect_tetrimino_collision_one_cell(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]   --> src/runtime/data/playing_data.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl PlayingData {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn clear(&mut self){
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `coord_as_string`, `set_world_position`, and `get_world_position` are never used
[INFO] [stdout]   --> src/runtime/data/teri_grid.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl TetriGridCell{
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn coord_as_string(&self) -> String{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn set_world_position(&mut self,world_position: Vec2){
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get_world_position(&self) -> &Vec2{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_type` and `update_occupied` are never used
[INFO] [stdout]    --> src/runtime/data/tetrimino.rs:246:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl Tetrimino{
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn get_type(&self) -> &TetriminoTypeEnum{
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     fn update_occupied(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/runtime/procedure.rs:185:13
[INFO] [stdout]     |
[INFO] [stdout] 185 |             curr_procedure.on_draw(ctx);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 185 |             let _ = curr_procedure.on_draw(ctx);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/runtime/procedure/procedure_test_draw_block.rs:106:13
[INFO] [stdout]     |
[INFO] [stdout] 106 |             self.draw_block(&mut canvas, ctx);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 106 |             let _ = self.draw_block(&mut canvas, ctx);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/runtime/procedure/procedure_test_draw_block.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |             self.draw_another_block(&mut canvas, ctx);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let _ = self.draw_another_block(&mut canvas, ctx);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/runtime/data/play_field.rs:360:50
[INFO] [stdout]     |
[INFO] [stdout] 360 |             if x >= constant::PLAY_FIELD_COLS || y < 0 || y >= constant::PLAY_FIELD_RAWS {
[INFO] [stdout]     |                                                  ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `teri`
[INFO] [stdout]   --> src/tools.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |         let teri =  Tetrimino::new(rand_teri_type);
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_teri`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/runtime/procedure/procedure_main_ui.rs:158:27
[INFO] [stdout]     |
[INFO] [stdout] 158 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]     |                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interval`
[INFO] [stdout]    --> src/runtime/procedure/procedure_main_ui.rs:158:63
[INFO] [stdout]     |
[INFO] [stdout] 158 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]     |                                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/runtime/procedure/procedure_main_ui.rs:169:28
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn on_enter(&mut self, mut param:Box<dyn ProcedureParam>){
[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: `param`
[INFO] [stdout]    --> src/runtime/procedure/procedure_main_ui.rs:169:28
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn on_enter(&mut self, mut param:Box<dyn ProcedureParam>){
[INFO] [stdout]     |                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_param`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_playing.rs:86:27
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_time`
[INFO] [stdout]   --> src/runtime/procedure/procedure_playing.rs:86:46
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interval`
[INFO] [stdout]   --> src/runtime/procedure/procedure_playing.rs:86:63
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `procedure_to_return` is never read
[INFO] [stdout]    --> src/runtime/procedure/procedure_playing.rs:243:21
[INFO] [stdout]     |
[INFO] [stdout] 243 |                     procedure_to_return = (Some(ProcedureEnum::Playing),None);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/runtime/procedure/procedure_playing.rs:377:37
[INFO] [stdout]     |
[INFO] [stdout] 377 |     fn draw_playing_state(&mut self,ctx:&mut Context,canvas:&mut Canvas){
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/runtime/procedure/procedure_playing.rs:387:29
[INFO] [stdout]     |
[INFO] [stdout] 387 |     fn draw_score(&mut self,ctx:&mut Context,canvas:&mut Canvas){
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/runtime/procedure/procedure_playing.rs:450:33
[INFO] [stdout]     |
[INFO] [stdout] 450 |     fn draw_playing_info(&self, ctx : &mut Context , canvas : &mut Canvas){
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `canvas`
[INFO] [stdout]    --> src/runtime/procedure/procedure_playing.rs:450:54
[INFO] [stdout]     |
[INFO] [stdout] 450 |     fn draw_playing_info(&self, ctx : &mut Context , canvas : &mut Canvas){
[INFO] [stdout]     |                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_canvas`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_over.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn on_draw(&mut self, ctx: &mut Context) -> GameResult {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_over.rs:22:27
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_time`
[INFO] [stdout]   --> src/runtime/procedure/procedure_over.rs:22:46
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interval`
[INFO] [stdout]   --> src/runtime/procedure/procedure_over.rs:22:63
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_over.rs:33:28
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn on_update(&mut self,ctx:&mut Context,key_code: Option<KeyCode>,delta_sec:f32) -> (Option<ProcedureEnum>, Option<Box<dyn Proce...
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_code`
[INFO] [stdout]   --> src/runtime/procedure/procedure_over.rs:33:45
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn on_update(&mut self,ctx:&mut Context,key_code: Option<KeyCode>,delta_sec:f32) -> (Option<ProcedureEnum>, Option<Box<dyn Proce...
[INFO] [stdout]    |                                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_sec`
[INFO] [stdout]   --> src/runtime/procedure/procedure_over.rs:33:71
[INFO] [stdout]    |
[INFO] [stdout] 33 | ..._code: Option<KeyCode>,delta_sec:f32) -> (Option<ProcedureEnum>, Option<Box<dyn ProcedureParam>>){
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_sec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mesh_rect_2`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let mesh_rect_2 = Mesh::new_rectangle(
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mesh_rect_2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:69:27
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_time`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:69:46
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interval`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:69:63
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn on_tick(&mut self, ctx: &mut Context, delta_time: f32, interval: f32) {
[INFO] [stdout]    |                                                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `param`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:76:28
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn on_enter(&mut self, param: Box<dyn ProcedureParam>) {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_param`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:84:28
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn on_update(&mut self,ctx:&mut Context, key_code: Option<KeyCode>,delta_sec:f32) -> (Option<ProcedureEnum>, Option<Box<dyn Proc...
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_code`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:84:46
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn on_update(&mut self,ctx:&mut Context, key_code: Option<KeyCode>,delta_sec:f32) -> (Option<ProcedureEnum>, Option<Box<dyn Proc...
[INFO] [stdout]    |                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_sec`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:84:72
[INFO] [stdout]    |
[INFO] [stdout] 84 | ..._code: Option<KeyCode>,delta_sec:f32) -> (Option<ProcedureEnum>, Option<Box<dyn ProcedureParam>>){
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_sec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `param`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:89:28
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn on_leave(&mut self, param: Option<Box<dyn ProcedureParam>>) {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_param`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:23:27
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn on_draw(&mut self, ctx: &mut Context) -> GameResult {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `param`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:29:27
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn on_enter(&mut self,param:Box<dyn ProcedureParam>){
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_param`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:32:28
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn on_update(&mut self,ctx:&mut ggez::Context,key_code: Option<ggez::input::keyboard::KeyCode>,delta_sec:f32) -> (Option<Procedu...
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_code`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:32:51
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...,ctx:&mut ggez::Context,key_code: Option<ggez::input::keyboard::KeyCode>,delta_sec:f32) -> (Option<ProcedureEnum>, Option<Box<dyn...
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_sec`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:32:100
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...ut::keyboard::KeyCode>,delta_sec:f32) -> (Option<ProcedureEnum>, Option<Box<dyn ProcedureParam>>){
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_sec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `param`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:35:27
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn on_leave(&mut self,param:Option<Box<dyn ProcedureParam>>){
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_param`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:44:26
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn on_tick(&mut self,ctx:&mut ggez::Context,delta_time:f32,interval:f32){
[INFO] [stdout]    |                          ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_time`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:44:49
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn on_tick(&mut self,ctx:&mut ggez::Context,delta_time:f32,interval:f32){
[INFO] [stdout]    |                                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interval`
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:44:64
[INFO] [stdout]    |
[INFO] [stdout] 44 |     fn on_tick(&mut self,ctx:&mut ggez::Context,delta_time:f32,interval:f32){
[INFO] [stdout]    |                                                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/runtime/procedure/playing_state_enum.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |             _ => "Unknown",
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/runtime/procedure/playing_state_enum.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |             PlayingStateEnum::Start => "Start",
[INFO] [stdout]    |             ----------------------- matches some of the same values
[INFO] [stdout] 21 |             PlayingStateEnum::Falling => "Falling",
[INFO] [stdout]    |             ------------------------- matches some of the same values
[INFO] [stdout] 22 |             PlayingStateEnum::Performing => "Performing",
[INFO] [stdout]    |             ---------------------------- matches some of the same values
[INFO] [stdout] 23 |             PlayingStateEnum::Settlement => "Settlement",
[INFO] [stdout]    |             ---------------------------- matches some of the same values
[INFO] [stdout] 24 |             _ => "Unknown",
[INFO] [stdout]    |             ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `insert_succ` is never read
[INFO] [stdout]    --> src/runtime/procedure.rs:98:57
[INFO] [stdout]     |
[INFO] [stdout]  98 |         let mut insert_succ : Option<Box<dyn TState>> = None;
[INFO] [stdout]     |                                                         ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 101 |                 insert_succ = self._procedure_map.insert(enum_type,Box::new(procedure_main_ui::ProcedureMainUI::new()));
[INFO] [stdout]     |                 ----------- `insert_succ` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_code`
[INFO] [stdout]   --> src/runtime/input.rs:47:30
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn not_impl_input_filter(key_code: KeyCode) -> bool{
[INFO] [stdout]    |                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_code`
[INFO] [stdout]   --> src/runtime/input.rs:73:29
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn playing_input_filter(key_code: KeyCode) -> bool{
[INFO] [stdout]    |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_code`
[INFO] [stdout]   --> src/runtime/input.rs:77:26
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn over_input_filter(key_code: KeyCode) -> bool{
[INFO] [stdout]    |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/runtime/data/play_field.rs:274:13
[INFO] [stdout]     |
[INFO] [stdout] 274 |         let mut line_index = 0;
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line_index`
[INFO] [stdout]    --> src/runtime/data/play_field.rs:274:13
[INFO] [stdout]     |
[INFO] [stdout] 274 |         let mut line_index = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_line_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `curr_col` is never read
[INFO] [stdout]    --> src/runtime/data/play_field.rs:277:28
[INFO] [stdout]     |
[INFO] [stdout] 277 |         let mut curr_col = 0;
[INFO] [stdout]     |                            ^ this value is reassigned later and never used
[INFO] [stdout] 278 |         for j in 0..constant::PLAY_FIELD_RAWS{
[INFO] [stdout] 279 |             curr_col = j;
[INFO] [stdout]     |             ------------ `curr_col` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]    --> src/runtime/data/play_field.rs:405:13
[INFO] [stdout]     |
[INFO] [stdout] 405 |         let len = block_area.len();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old_angle`
[INFO] [stdout]    --> src/runtime/data/tetrimino.rs:189:94
[INFO] [stdout]     |
[INFO] [stdout] 189 |     fn negate(&self,tetri_type : &TetriminoTypeEnum , clock_wise : bool , curr_angle : u16 , old_angle : u16) -> i32{
[INFO] [stdout]     |                                                                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_angle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/runtime/data/tetrimino.rs:265:17
[INFO] [stdout]     |
[INFO] [stdout] 265 |             let mut new_tetrimino = Tetrimino{
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repeat`
[INFO] [stdout]    --> src/app.rs:174:71
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn key_down_event(&mut self, _ctx: &mut Context, input: KeyInput, repeat: bool) -> GameResult {
[INFO] [stdout]     |                                                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_repeat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RUNTIME_INITIAL_PROCEDURE_INDEX` is never used
[INFO] [stdout]   --> src/constant.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const RUNTIME_INITIAL_PROCEDURE_INDEX : i32 = 0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_R0G0B0` is never used
[INFO] [stdout]   --> src/constant.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub const COLOR_R0G0B0 : [f32;3] = [0.0 ,0.0 ,0.0];
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_R1G1B1` is never used
[INFO] [stdout]   --> src/constant.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub const COLOR_R1G1B1 : [f32;3] = [1.0 ,1.0 ,1.0];
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_R1G1B1A1` is never used
[INFO] [stdout]   --> src/constant.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const COLOR_R1G1B1A1 : [f32;4]  = [1.0 ,1.0 ,1.0,1.0];
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_ALPHA_1` is never used
[INFO] [stdout]   --> src/constant.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const COLOR_ALPHA_1 : [f32;1] = [1.0];
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_ALPHA_0` is never used
[INFO] [stdout]   --> src/constant.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub const COLOR_ALPHA_0 : [f32;1] = [0.0];
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK_MAX_OCCUPIED` is never used
[INFO] [stdout]   --> src/constant.rs:63:11
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub const BLOCK_MAX_OCCUPIED : usize = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Void_Fn` is never used
[INFO] [stdout]  --> src/define/fn_define.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub type Void_Fn = fn();
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/define/enum_define.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl TetriminoTypeEnum {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] 60 |     ///将枚举转换为&str / Convert enum to &str
[INFO] [stdout] 61 |     pub fn as_str(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Purple` is never constructed
[INFO] [stdout]   --> src/define/enum_define.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub enum TetriminoColorEnum{
[INFO] [stdout]    |          ------------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 87 |     Purple,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TetriminoColorEnum` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_as_empty`, `add_new_procedure`, and `all_procedure_name` are never used
[INFO] [stdout]    --> src/runtime/procedure.rs:60:12
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl ProcedureComponent {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn new_as_empty() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn add_new_procedure(&mut self,procedure_enum:ProcedureEnum) -> bool{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn all_procedure_name(&self) -> Vec<String>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `draw_playing_state` is never used
[INFO] [stdout]    --> src/runtime/procedure/procedure_playing.rs:377:8
[INFO] [stdout]     |
[INFO] [stdout] 309 | impl ProcedurePlaying {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 377 |     fn draw_playing_state(&mut self,ctx:&mut Context,canvas:&mut Canvas){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProcedureTestDrawBlock` is never constructed
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct ProcedureTestDrawBlock{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `draw_text`, `draw_block`, and `draw_another_block` are never used
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_block.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl ProcedureTestDrawBlock{
[INFO] [stdout]    | --------------------------- associated items in this implementation
[INFO] [stdout] 22 |     pub fn new()-> Self{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     fn draw_text(&mut self,canvas: &mut Canvas){
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn draw_block(&mut self,canvas: &mut Canvas,ctx:&mut Context) -> GameResult{
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn draw_another_block(&mut self,canvas: &mut Canvas,ctx:&mut Context) -> GameResult{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProcedureTestDrawBlockParam` is never constructed
[INFO] [stdout]    --> src/runtime/procedure/procedure_test_draw_block.rs:116:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub struct ProcedureTestDrawBlockParam{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/runtime/procedure/procedure_test_draw_block.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl ProcedureTestDrawBlockParam {
[INFO] [stdout]     | -------------------------------- associated function in this implementation
[INFO] [stdout] 121 |     pub fn new() -> Self{
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProcedureTestDrawText` is never constructed
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ProcedureTestDrawText{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl ProcedureTestDrawText{
[INFO] [stdout]    | -------------------------- associated function in this implementation
[INFO] [stdout] 15 |     pub fn new() -> Self{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProcedureTestDrawTextParam` is never constructed
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct ProcedureTestDrawTextParam{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/runtime/procedure/procedure_test_draw_text.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl ProcedureTestDrawTextParam{
[INFO] [stdout]    | ------------------------------- associated function in this implementation
[INFO] [stdout] 57 |     pub fn new() -> Self{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EventComponent` is never constructed
[INFO] [stdout]  --> src/runtime/event.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct EventComponent {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `fire`, `register_event`, `unregister_event`, and `test` are never used
[INFO] [stdout]   --> src/runtime/event.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl EventComponent {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 15 |     ///constructor
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn fire(&mut self,event_id:i32){
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn register_event(&mut self,event_id:i32,call_back:fn()) -> bool{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn unregister_event(&mut self,event_id: i32,call_back:fn()) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn test(&self){
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `clear_input`, `main_ui_input_filter`, `playing_input_filter`, `over_input_filter`, and `set_input_filter_mode` are never used
[INFO] [stdout]   --> src/runtime/input.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl InputComponent {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn clear_input(&mut self){
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     fn main_ui_input_filter(key_code: KeyCode) -> bool{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn playing_input_filter(key_code: KeyCode) -> bool{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn over_input_filter(key_code: KeyCode) -> bool{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn set_input_filter_mode(&mut self,procedure:ProcedureEnum){
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `block_area`, `block_area_mut`, and `get_curr_tetrimino_type` are never used
[INFO] [stdout]    --> src/runtime/data/play_field.rs:89:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl PlayField {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn block_area(&self) -> & [[TetriGridCell;constant::PLAY_FIELD_RAWS];constant::PLAY_FIELD_COLS]{
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn block_area_mut(&mut self) -> &mut [[TetriGridCell;constant::PLAY_FIELD_RAWS];constant::PLAY_FIELD_COLS]{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn get_curr_tetrimino_type(&self) -> &TetriminoTypeEnum{
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `detect_tetrimino_collision_one_cell` is never used
[INFO] [stdout]    --> src/runtime/data/play_field.rs:455:8
[INFO] [stdout]     |
[INFO] [stdout] 320 | impl PlayField {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 455 |     fn detect_tetrimino_collision_one_cell(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]   --> src/runtime/data/playing_data.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl PlayingData {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn clear(&mut self){
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `coord_as_string`, `set_world_position`, and `get_world_position` are never used
[INFO] [stdout]   --> src/runtime/data/teri_grid.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl TetriGridCell{
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn coord_as_string(&self) -> String{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn set_world_position(&mut self,world_position: Vec2){
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get_world_position(&self) -> &Vec2{
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_type` and `update_occupied` are never used
[INFO] [stdout]    --> src/runtime/data/tetrimino.rs:246:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl Tetrimino{
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn get_type(&self) -> &TetriminoTypeEnum{
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     fn update_occupied(&mut self){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/runtime/procedure.rs:185:13
[INFO] [stdout]     |
[INFO] [stdout] 185 |             curr_procedure.on_draw(ctx);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 185 |             let _ = curr_procedure.on_draw(ctx);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/runtime/procedure/procedure_test_draw_block.rs:106:13
[INFO] [stdout]     |
[INFO] [stdout] 106 |             self.draw_block(&mut canvas, ctx);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 106 |             let _ = self.draw_block(&mut canvas, ctx);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/runtime/procedure/procedure_test_draw_block.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |             self.draw_another_block(&mut canvas, ctx);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let _ = self.draw_another_block(&mut canvas, ctx);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/runtime/data/play_field.rs:360:50
[INFO] [stdout]     |
[INFO] [stdout] 360 |             if x >= constant::PLAY_FIELD_COLS || y < 0 || y >= constant::PLAY_FIELD_RAWS {
[INFO] [stdout]     |                                                  ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 29s
[INFO] running `Command { std: "docker" "inspect" "ece2509842302ad4328a86f0ab525e226cca5f7b481c25cc1117c84d4377017d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ece2509842302ad4328a86f0ab525e226cca5f7b481c25cc1117c84d4377017d", kill_on_drop: false }`
[INFO] [stdout] ece2509842302ad4328a86f0ab525e226cca5f7b481c25cc1117c84d4377017d
