[INFO] cloning repository https://github.com/120L021101/pvzCheater
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/120L021101/pvzCheater" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F120L021101%2FpvzCheater", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F120L021101%2FpvzCheater'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0562ca67bc24cfa5f3984adda7ec38bdac0dc96c
[INFO] checking 120L021101/pvzCheater against try#51de2e90f91fdec6cf64ff542a4e15b9c177a797 for pr-147294
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F120L021101%2FpvzCheater" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/120L021101/pvzCheater
[INFO] finished tweaking git repo https://github.com/120L021101/pvzCheater
[INFO] tweaked toml for git repo https://github.com/120L021101/pvzCheater written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/120L021101/pvzCheater on toolchain 51de2e90f91fdec6cf64ff542a4e15b9c177a797
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+51de2e90f91fdec6cf64ff542a4e15b9c177a797" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/120L021101/pvzCheater 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" "+51de2e90f91fdec6cf64ff542a4e15b9c177a797" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+51de2e90f91fdec6cf64ff542a4e15b9c177a797" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a13ca0fd096e8e802e059c6b4fef41a5cab47afccbe707a2e7f37d13e1c17c6e
[INFO] running `Command { std: "docker" "start" "-a" "a13ca0fd096e8e802e059c6b4fef41a5cab47afccbe707a2e7f37d13e1c17c6e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a13ca0fd096e8e802e059c6b4fef41a5cab47afccbe707a2e7f37d13e1c17c6e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a13ca0fd096e8e802e059c6b4fef41a5cab47afccbe707a2e7f37d13e1c17c6e", kill_on_drop: false }`
[INFO] [stdout] a13ca0fd096e8e802e059c6b4fef41a5cab47afccbe707a2e7f37d13e1c17c6e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+51de2e90f91fdec6cf64ff542a4e15b9c177a797" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 579daa92662d1c409589f292f96d5c54a3eb54977655e2bd92479d92f11591b1
[INFO] running `Command { std: "docker" "start" "-a" "579daa92662d1c409589f292f96d5c54a3eb54977655e2bd92479d92f11591b1", kill_on_drop: false }`
[INFO] [stderr]    Compiling windows_x86_64_gnu v0.52.5
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]    Compiling serde v1.0.203
[INFO] [stderr]    Compiling winapi v0.3.9
[INFO] [stderr]    Compiling serde_json v1.0.120
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling syn v2.0.68
[INFO] [stderr]     Checking windows-targets v0.52.5
[INFO] [stderr]     Checking windows-result v0.1.2
[INFO] [stderr]     Checking memmap v0.7.0
[INFO] [stderr]    Compiling serde_derive v1.0.203
[INFO] [stderr]    Compiling windows-interface v0.57.0
[INFO] [stderr]    Compiling windows-implement v0.57.0
[INFO] [stderr]     Checking windows-core v0.57.0
[INFO] [stderr]     Checking windows v0.57.0
[INFO] [stderr]     Checking zzj_editor v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0433]: failed to resolve: could not find `shared` in `winapi`
[INFO] [stdout]  --> src/kernal/message.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use winapi::shared::minwindef::BOOL;
[INFO] [stdout]   |             ^^^^^^ could not find `shared` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `shared` in `winapi`
[INFO] [stdout]  --> src/kernal/message.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use winapi::shared::ntdef::LPCWSTR;
[INFO] [stdout]   |             ^^^^^^ could not find `shared` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `um` in `winapi`
[INFO] [stdout]  --> src/kernal/message.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use winapi::um::winnt::SEMAPHORE_MODIFY_STATE;
[INFO] [stdout]   |             ^^ could not find `um` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `um` in `winapi`
[INFO] [stdout]  --> src/kernal/message.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use winapi::um::winnt::SYNCHRONIZE;
[INFO] [stdout]   |             ^^ could not find `um` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `um` in `winapi`
[INFO] [stdout]   --> src/kernal/message.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 | use winapi::um::synchapi::{OpenSemaphoreW, ReleaseSemaphore, WaitForSingleObject};  
[INFO] [stdout]    |             ^^ could not find `um` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `um` in `winapi`
[INFO] [stdout]   --> src/kernal/message.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 | use winapi::um::winbase::INFINITE;  
[INFO] [stdout]    |             ^^ could not find `um` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `shared` in `winapi`
[INFO] [stdout]   --> src/kernal/message.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 | use winapi::shared::ntdef::NULL;  
[INFO] [stdout]    |             ^^^^^^ could not find `shared` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `shared` in `winapi`
[INFO] [stdout]  --> src/kernal/message.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use winapi::shared::minwindef::BOOL;
[INFO] [stdout]   |             ^^^^^^ could not find `shared` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `shared` in `winapi`
[INFO] [stdout]  --> src/kernal/message.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use winapi::shared::ntdef::LPCWSTR;
[INFO] [stdout]   |             ^^^^^^ could not find `shared` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `um` in `winapi`
[INFO] [stdout]  --> src/kernal/message.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use winapi::um::winnt::SEMAPHORE_MODIFY_STATE;
[INFO] [stdout]   |             ^^ could not find `um` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `um` in `winapi`
[INFO] [stdout]  --> src/kernal/message.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use winapi::um::winnt::SYNCHRONIZE;
[INFO] [stdout]   |             ^^ could not find `um` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `um` in `winapi`
[INFO] [stdout]   --> src/kernal/message.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 | use winapi::um::synchapi::{OpenSemaphoreW, ReleaseSemaphore, WaitForSingleObject};  
[INFO] [stdout]    |             ^^ could not find `um` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `um` in `winapi`
[INFO] [stdout]   --> src/kernal/message.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 | use winapi::um::winbase::INFINITE;  
[INFO] [stdout]    |             ^^ could not find `um` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `shared` in `winapi`
[INFO] [stdout]   --> src/kernal/message.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 | use winapi::shared::ntdef::NULL;  
[INFO] [stdout]    |             ^^^^^^ could not find `shared` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `windows` in `os`
[INFO] [stdout]   --> src/kernal/message.rs:18:14
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::os::windows::ffi::OsStrExt;  
[INFO] [stdout]    |              ^^^^^^^ could not find `windows` in `os`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /rustc/51de2e90f91fdec6cf64ff542a4e15b9c177a797/library/std/src/os/mod.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item is gated here
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /rustc/51de2e90f91fdec6cf64ff542a4e15b9c177a797/library/std/src/os/mod.rs:120:10
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item is gated here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `um` in `winapi`
[INFO] [stdout]  --> src/kernal/plant.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use winapi::um::winnt::PROCESS_DUP_HANDLE;
[INFO] [stdout]   |             ^^ could not find `um` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `um` in `winapi`
[INFO] [stdout]  --> src/main.rs:9:30
[INFO] [stdout]   |
[INFO] [stdout] 9 | use winapi::{ctypes::c_void, um::handleapi::CloseHandle};
[INFO] [stdout]   |                              ^^ could not find `um` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `winapi::ctypes`
[INFO] [stdout]  --> src/main.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | use winapi::{ctypes::c_void, um::handleapi::CloseHandle};
[INFO] [stdout]   |              ^^^^^^ could not find `ctypes` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `windows` in `os`
[INFO] [stdout]   --> src/kernal/message.rs:18:14
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::os::windows::ffi::OsStrExt;  
[INFO] [stdout]    |              ^^^^^^^ could not find `windows` in `os`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /rustc/51de2e90f91fdec6cf64ff542a4e15b9c177a797/library/std/src/os/mod.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item is gated here
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /rustc/51de2e90f91fdec6cf64ff542a4e15b9c177a797/library/std/src/os/mod.rs:120:10
[INFO] [stdout]    |
[INFO] [stdout]    = note: the item is gated here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `um` in `winapi`
[INFO] [stdout]  --> src/kernal/plant.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use winapi::um::winnt::PROCESS_DUP_HANDLE;
[INFO] [stdout]   |             ^^ could not find `um` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `um` in `winapi`
[INFO] [stdout]  --> src/main.rs:9:30
[INFO] [stdout]   |
[INFO] [stdout] 9 | use winapi::{ctypes::c_void, um::handleapi::CloseHandle};
[INFO] [stdout]   |                              ^^ could not find `um` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `winapi::ctypes`
[INFO] [stdout]  --> src/main.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | use winapi::{ctypes::c_void, um::handleapi::CloseHandle};
[INFO] [stdout]   |              ^^^^^^ could not find `ctypes` in `winapi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `zombie`
[INFO] [stdout]  --> src/kernal/zombie.rs:9:30
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::kernal::{process, zombie};
[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: `windows::Win32::System::Diagnostics::Debug`
[INFO] [stdout]  --> src/kernal/message.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use windows::Win32::System::Diagnostics::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::BTreeMap`
[INFO] [stdout]   --> src/kernal/message.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::BTreeMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]   --> src/kernal/message.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::fmt::Display;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `to_string`
[INFO] [stdout]   --> src/kernal/message.rs:22:28
[INFO] [stdout]    |
[INFO] [stdout] 22 | use serde_json::{from_str, to_string};  
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MODIFY_SUN` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     MODIFY_SUN,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `ModifySun`
[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: variant `SET_PROCESS` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     SET_PROCESS,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetProcess`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ALLOW_DUP` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     ALLOW_DUP,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `AllowDup`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ALLOW_PENETRATION` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     ALLOW_PENETRATION
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AllowPenetration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SET_ATTRACTED` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 79 |     SET_ATTRACTED,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetAttracted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `REMOVE_ARMOR1` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     REMOVE_ARMOR1,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `RemoveArmor1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `REMOVE_ARMOR2` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     REMOVE_ARMOR2
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `RemoveArmor2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MISC_TASK` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     MISC_TASK(MISC),
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `MiscTask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PLANT_TASK` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     PLANT_TASK(PLANT),
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `PlantTask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ZOMBIE_TASK` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     ZOMBIE_TASK(ZOMBIE), 
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `ZombieTask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TASK_MSG` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | struct TASK_MSG {  
[INFO] [stdout]    |        ^^^^^^^^ help: convert the identifier to upper camel case: `TaskMsg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TASK_DATA` should have an upper camel case name
[INFO] [stdout]    --> src/kernal/message.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct TASK_DATA {
[INFO] [stdout]     |            ^^^^^^^^^ help: convert the identifier to upper camel case: `TaskData`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DATA_IN_MISC_SP` should have an upper camel case name
[INFO] [stdout]    --> src/kernal/message.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct DATA_IN_MISC_SP {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DataInMiscSp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DATA_IN_MISC_MS` should have an upper camel case name
[INFO] [stdout]    --> src/kernal/message.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct DATA_IN_MISC_MS {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DataInMiscMs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/kernal/message.rs:123:41
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub fn parse_msg_get_task(msg: &str) -> (TASK_DATA) {
[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] 123 - pub fn parse_msg_get_task(msg: &str) -> (TASK_DATA) {
[INFO] [stdout] 123 + pub fn parse_msg_get_task(msg: &str) -> TASK_DATA {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/kernal/plant.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ZOMBIE`
[INFO] [stdout]  --> src/main.rs:7:55
[INFO] [stdout]   |
[INFO] [stdout] 7 |     message::{self, DATA_IN_MISC_MS, DATA_IN_MISC_SP, ZOMBIE}, plant, process, sun, zombie
[INFO] [stdout]   |                                                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     while true {
[INFO] [stdout]    |     ^^^^^^^^^^ help: use `loop`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `zombie`
[INFO] [stdout]  --> src/kernal/zombie.rs:9:30
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::kernal::{process, zombie};
[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: `windows::Win32::System::Diagnostics::Debug`
[INFO] [stdout]  --> src/kernal/message.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use windows::Win32::System::Diagnostics::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::BTreeMap`
[INFO] [stdout]   --> src/kernal/message.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::BTreeMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Display`
[INFO] [stdout]   --> src/kernal/message.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::fmt::Display;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `to_string`
[INFO] [stdout]   --> src/kernal/message.rs:22:28
[INFO] [stdout]    |
[INFO] [stdout] 22 | use serde_json::{from_str, to_string};  
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MODIFY_SUN` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     MODIFY_SUN,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `ModifySun`
[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: variant `SET_PROCESS` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     SET_PROCESS,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetProcess`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ALLOW_DUP` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     ALLOW_DUP,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `AllowDup`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ALLOW_PENETRATION` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     ALLOW_PENETRATION
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AllowPenetration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SET_ATTRACTED` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 79 |     SET_ATTRACTED,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetAttracted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `REMOVE_ARMOR1` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     REMOVE_ARMOR1,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `RemoveArmor1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `REMOVE_ARMOR2` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     REMOVE_ARMOR2
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `RemoveArmor2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MISC_TASK` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     MISC_TASK(MISC),
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `MiscTask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PLANT_TASK` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 |     PLANT_TASK(PLANT),
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `PlantTask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ZOMBIE_TASK` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 89 |     ZOMBIE_TASK(ZOMBIE), 
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `ZombieTask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TASK_MSG` should have an upper camel case name
[INFO] [stdout]   --> src/kernal/message.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | struct TASK_MSG {  
[INFO] [stdout]    |        ^^^^^^^^ help: convert the identifier to upper camel case: `TaskMsg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `TASK_DATA` should have an upper camel case name
[INFO] [stdout]    --> src/kernal/message.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct TASK_DATA {
[INFO] [stdout]     |            ^^^^^^^^^ help: convert the identifier to upper camel case: `TaskData`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DATA_IN_MISC_SP` should have an upper camel case name
[INFO] [stdout]    --> src/kernal/message.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct DATA_IN_MISC_SP {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DataInMiscSp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DATA_IN_MISC_MS` should have an upper camel case name
[INFO] [stdout]    --> src/kernal/message.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct DATA_IN_MISC_MS {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DataInMiscMs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/kernal/message.rs:123:41
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub fn parse_msg_get_task(msg: &str) -> (TASK_DATA) {
[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] 123 - pub fn parse_msg_get_task(msg: &str) -> (TASK_DATA) {
[INFO] [stdout] 123 + pub fn parse_msg_get_task(msg: &str) -> TASK_DATA {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/kernal/plant.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ZOMBIE`
[INFO] [stdout]  --> src/main.rs:7:55
[INFO] [stdout]   |
[INFO] [stdout] 7 |     message::{self, DATA_IN_MISC_MS, DATA_IN_MISC_SP, ZOMBIE}, plant, process, sun, zombie
[INFO] [stdout]   |                                                       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: denote infinite loops with `loop { ... }`
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     while true {
[INFO] [stdout]    |     ^^^^^^^^^^ help: use `loop`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(while_true)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/kernal/zombie.rs:267:5
[INFO] [stdout]     |
[INFO] [stdout] 254 | /     loop {
[INFO] [stdout] 255 | |         thread::sleep(Duration::from_secs(1));
[INFO] [stdout] 256 | |         let mut zombies_ptr: u32 = unsafe { std::mem::transmute(zombie_list_ptr) };
[INFO] [stdout] 257 | |         println!("Active Zombie Number: {}", get_active_zombie_num(process_handle, zombies_ptr).expect("load activate number failed"));
[INFO] [stdout] ...   |
[INFO] [stdout] 265 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 266 |       
[INFO] [stdout] 267 |       Ok(())
[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: unreachable expression
[INFO] [stdout]    --> src/kernal/zombie.rs:267:5
[INFO] [stdout]     |
[INFO] [stdout] 254 | /     loop {
[INFO] [stdout] 255 | |         thread::sleep(Duration::from_secs(1));
[INFO] [stdout] 256 | |         let mut zombies_ptr: u32 = unsafe { std::mem::transmute(zombie_list_ptr) };
[INFO] [stdout] 257 | |         println!("Active Zombie Number: {}", get_active_zombie_num(process_handle, zombies_ptr).expect("load activate number failed"));
[INFO] [stdout] ...   |
[INFO] [stdout] 265 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 266 |       
[INFO] [stdout] 267 |       Ok(())
[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] error[E0599]: no method named `encode_wide` found for reference `&OsStr` in the current scope
[INFO] [stdout]   --> src/kernal/message.rs:26:60
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let semaphore_ready = OsStr::new("Global\\data_ready").encode_wide().chain(Some(0).into_iter()).collect::<Vec<_>>();  
[INFO] [stdout]    |                                                            ^^^^^^^^^^^ method not found in `&OsStr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `encode_wide` found for reference `&OsStr` in the current scope
[INFO] [stdout]   --> src/kernal/message.rs:26:60
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let semaphore_ready = OsStr::new("Global\\data_ready").encode_wide().chain(Some(0).into_iter()).collect::<Vec<_>>();  
[INFO] [stdout]    |                                                            ^^^^^^^^^^^ method not found in `&OsStr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `encode_wide` found for reference `&OsStr` in the current scope
[INFO] [stdout]   --> src/kernal/message.rs:27:66
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let semaphore_received = OsStr::new("Global\\data_received").encode_wide().chain(Some(0).into_iter()).collect::<Vec<_>>();  
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^ method not found in `&OsStr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `encode_wide` found for reference `&OsStr` in the current scope
[INFO] [stdout]   --> src/kernal/message.rs:27:66
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let semaphore_received = OsStr::new("Global\\data_received").encode_wide().chain(Some(0).into_iter()).collect::<Vec<_>>();  
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^ method not found in `&OsStr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/kernal/plant.rs:400:5
[INFO] [stdout]     |
[INFO] [stdout] 394 | /     loop {
[INFO] [stdout] 395 | |         thread::sleep(Duration::from_secs(1));
[INFO] [stdout] 396 | |         let mut plants_ptr: u32 = unsafe { std::mem::transmute(plants_list_ptr) };
[INFO] [stdout] 397 | |         println!("Active Plant Number: {}", get_active_plant_num(process_handle, plants_ptr).expect("load activate number failed"));
[INFO] [stdout] 398 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 399 |       
[INFO] [stdout] 400 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/kernal/plant.rs:400:5
[INFO] [stdout]     |
[INFO] [stdout] 394 | /     loop {
[INFO] [stdout] 395 | |         thread::sleep(Duration::from_secs(1));
[INFO] [stdout] 396 | |         let mut plants_ptr: u32 = unsafe { std::mem::transmute(plants_list_ptr) };
[INFO] [stdout] 397 | |         println!("Active Plant Number: {}", get_active_plant_num(process_handle, plants_ptr).expect("load activate number failed"));
[INFO] [stdout] 398 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 399 |       
[INFO] [stdout] 400 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `zombie_id`
[INFO] [stdout]   --> src/kernal/zombie.rs:28:69
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn add_zombie(process_handle: Foundation::HANDLE, zombies_ptr: u32, zombie_id: u32, ins_row: u32) -> Result<(), String> {
[INFO] [stdout]    |                                                                     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn add_zombie(process_handle: Foundation::HANDLE, zombies_ptr: u32, _zombie_id: u32, ins_row: u32) -> Result<(), String> {
[INFO] [stdout]    |                                                                     +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SUN_RADDR`
[INFO] [stdout]    |
[INFO] [stdout] 28 - fn add_zombie(process_handle: Foundation::HANDLE, zombies_ptr: u32, zombie_id: u32, ins_row: u32) -> Result<(), String> {
[INFO] [stdout] 28 + fn add_zombie(process_handle: Foundation::HANDLE, zombies_ptr: u32, addr::SUN_RADDR: u32, ins_row: u32) -> Result<(), String> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `process_handle`
[INFO] [stdout]   --> src/kernal/zombie.rs:62:24
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn move_to_next_zombie(process_handle: Foundation::HANDLE, zombies_ptr: u32) -> u32 {
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/kernal/zombie.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     for i in 0..zombie_upper_num {
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 87 |     for _i in 0..zombie_upper_num {
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SUN_RADDR`
[INFO] [stdout]    |
[INFO] [stdout] 87 -     for i in 0..zombie_upper_num {
[INFO] [stdout] 87 +     for addr::SUN_RADDR in 0..zombie_upper_num {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/kernal/zombie.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |     for i in 0..zombie_upper_num {
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 134 |     for _i in 0..zombie_upper_num {
[INFO] [stdout]     |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SUN_RADDR`
[INFO] [stdout]     |
[INFO] [stdout] 134 -     for i in 0..zombie_upper_num {
[INFO] [stdout] 134 +     for addr::SUN_RADDR in 0..zombie_upper_num {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `zombie_id`
[INFO] [stdout]   --> src/kernal/zombie.rs:28:69
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn add_zombie(process_handle: Foundation::HANDLE, zombies_ptr: u32, zombie_id: u32, ins_row: u32) -> Result<(), String> {
[INFO] [stdout]    |                                                                     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn add_zombie(process_handle: Foundation::HANDLE, zombies_ptr: u32, _zombie_id: u32, ins_row: u32) -> Result<(), String> {
[INFO] [stdout]    |                                                                     +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SUN_RADDR`
[INFO] [stdout]    |
[INFO] [stdout] 28 - fn add_zombie(process_handle: Foundation::HANDLE, zombies_ptr: u32, zombie_id: u32, ins_row: u32) -> Result<(), String> {
[INFO] [stdout] 28 + fn add_zombie(process_handle: Foundation::HANDLE, zombies_ptr: u32, addr::SUN_RADDR: u32, ins_row: u32) -> Result<(), String> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `process_handle`
[INFO] [stdout]   --> src/kernal/zombie.rs:62:24
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn move_to_next_zombie(process_handle: Foundation::HANDLE, zombies_ptr: u32) -> u32 {
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_process_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/kernal/zombie.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     for i in 0..zombie_upper_num {
[INFO] [stdout]    |         ^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 87 |     for _i in 0..zombie_upper_num {
[INFO] [stdout]    |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SUN_RADDR`
[INFO] [stdout]    |
[INFO] [stdout] 87 -     for i in 0..zombie_upper_num {
[INFO] [stdout] 87 +     for addr::SUN_RADDR in 0..zombie_upper_num {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x_pos`
[INFO] [stdout]    --> src/kernal/zombie.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let x_pos: u32 = unsafe { std::mem::transmute(x_pos) };
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let _x_pos: u32 = unsafe { std::mem::transmute(x_pos) };
[INFO] [stdout]     |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SUN_RADDR`
[INFO] [stdout]     |
[INFO] [stdout] 214 -     let x_pos: u32 = unsafe { std::mem::transmute(x_pos) };
[INFO] [stdout] 214 +     let addr::SUN_RADDR: u32 = unsafe { std::mem::transmute(x_pos) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y_pos`
[INFO] [stdout]    --> src/kernal/zombie.rs:219:9
[INFO] [stdout]     |
[INFO] [stdout] 219 |     let y_pos: u32 = unsafe { std::mem::transmute(y_pos) };
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 219 |     let _y_pos: u32 = unsafe { std::mem::transmute(y_pos) };
[INFO] [stdout]     |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SUN_RADDR`
[INFO] [stdout]     |
[INFO] [stdout] 219 -     let y_pos: u32 = unsafe { std::mem::transmute(y_pos) };
[INFO] [stdout] 219 +     let addr::SUN_RADDR: u32 = unsafe { std::mem::transmute(y_pos) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/kernal/zombie.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |     for i in 0..zombie_upper_num {
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 134 |     for _i in 0..zombie_upper_num {
[INFO] [stdout]     |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SUN_RADDR`
[INFO] [stdout]     |
[INFO] [stdout] 134 -     for i in 0..zombie_upper_num {
[INFO] [stdout] 134 +     for addr::SUN_RADDR in 0..zombie_upper_num {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exist_time`
[INFO] [stdout]    --> src/kernal/zombie.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |     let exist_time: u32 = unsafe { std::mem::transmute(exist_time) };
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 224 |     let _exist_time: u32 = unsafe { std::mem::transmute(exist_time) };
[INFO] [stdout]     |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SUN_RADDR`
[INFO] [stdout]     |
[INFO] [stdout] 224 -     let exist_time: u32 = unsafe { std::mem::transmute(exist_time) };
[INFO] [stdout] 224 +     let addr::SUN_RADDR: u32 = unsafe { std::mem::transmute(exist_time) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `if_exist`
[INFO] [stdout]    --> src/kernal/zombie.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let if_exist: u16 = unsafe { std::mem::transmute(if_exist) };
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_if_exist`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/kernal/zombie.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |     let mut next_zombie = Zombie::new();
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/kernal/zombie.rs:256:13
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let mut zombies_ptr: u32 = unsafe { std::mem::transmute(zombie_list_ptr) };
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x_pos`
[INFO] [stdout]    --> src/kernal/zombie.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let x_pos: u32 = unsafe { std::mem::transmute(x_pos) };
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 214 |     let _x_pos: u32 = unsafe { std::mem::transmute(x_pos) };
[INFO] [stdout]     |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SUN_RADDR`
[INFO] [stdout]     |
[INFO] [stdout] 214 -     let x_pos: u32 = unsafe { std::mem::transmute(x_pos) };
[INFO] [stdout] 214 +     let addr::SUN_RADDR: u32 = unsafe { std::mem::transmute(x_pos) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y_pos`
[INFO] [stdout]    --> src/kernal/zombie.rs:219:9
[INFO] [stdout]     |
[INFO] [stdout] 219 |     let y_pos: u32 = unsafe { std::mem::transmute(y_pos) };
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 219 |     let _y_pos: u32 = unsafe { std::mem::transmute(y_pos) };
[INFO] [stdout]     |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SUN_RADDR`
[INFO] [stdout]     |
[INFO] [stdout] 219 -     let y_pos: u32 = unsafe { std::mem::transmute(y_pos) };
[INFO] [stdout] 219 +     let addr::SUN_RADDR: u32 = unsafe { std::mem::transmute(y_pos) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exist_time`
[INFO] [stdout]    --> src/kernal/zombie.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |     let exist_time: u32 = unsafe { std::mem::transmute(exist_time) };
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 224 |     let _exist_time: u32 = unsafe { std::mem::transmute(exist_time) };
[INFO] [stdout]     |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SUN_RADDR`
[INFO] [stdout]     |
[INFO] [stdout] 224 -     let exist_time: u32 = unsafe { std::mem::transmute(exist_time) };
[INFO] [stdout] 224 +     let addr::SUN_RADDR: u32 = unsafe { std::mem::transmute(exist_time) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `if_exist`
[INFO] [stdout]    --> src/kernal/zombie.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let if_exist: u16 = unsafe { std::mem::transmute(if_exist) };
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_if_exist`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/kernal/zombie.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |     let mut next_zombie = Zombie::new();
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/kernal/zombie.rs:256:13
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let mut zombies_ptr: u32 = unsafe { std::mem::transmute(zombie_list_ptr) };
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `if_exist`
[INFO] [stdout]   --> src/kernal/plant.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let if_exist: u16 = unsafe { std::mem::transmute(if_exist) };
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_if_exist`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/kernal/plant.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |     for i in 0..plant_upper_num {
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 205 |     for _i in 0..plant_upper_num {
[INFO] [stdout]     |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SUN_RADDR`
[INFO] [stdout]     |
[INFO] [stdout] 205 -     for i in 0..plant_upper_num {
[INFO] [stdout] 205 +     for addr::SUN_RADDR in 0..plant_upper_num {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]    --> src/kernal/plant.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 |     let handle = thread::spawn(move || {  
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `if_exist`
[INFO] [stdout]   --> src/kernal/plant.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let if_exist: u16 = unsafe { std::mem::transmute(if_exist) };
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_if_exist`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/kernal/plant.rs:252:9
[INFO] [stdout]     |
[INFO] [stdout] 252 |     let mut code_tail_str = "83 78 5C 00 74 05 E9 15 9A CD FF C3".split_whitespace();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/kernal/plant.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |     for i in 0..plant_upper_num {
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 205 |     for _i in 0..plant_upper_num {
[INFO] [stdout]     |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SUN_RADDR`
[INFO] [stdout]     |
[INFO] [stdout] 205 -     for i in 0..plant_upper_num {
[INFO] [stdout] 205 +     for addr::SUN_RADDR in 0..plant_upper_num {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/kernal/plant.rs:270:9
[INFO] [stdout]     |
[INFO] [stdout] 270 |     for i in 0..zombie_upper_num {
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 270 |     for _i in 0..zombie_upper_num {
[INFO] [stdout]     |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SUN_RADDR`
[INFO] [stdout]     |
[INFO] [stdout] 270 -     for i in 0..zombie_upper_num {
[INFO] [stdout] 270 +     for addr::SUN_RADDR in 0..zombie_upper_num {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]    --> src/kernal/plant.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 |     let handle = thread::spawn(move || {  
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/kernal/plant.rs:267:9
[INFO] [stdout]     |
[INFO] [stdout] 267 |     let mut active_num: usize = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/kernal/plant.rs:252:9
[INFO] [stdout]     |
[INFO] [stdout] 252 |     let mut code_tail_str = "83 78 5C 00 74 05 E9 15 9A CD FF C3".split_whitespace();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/kernal/plant.rs:270:9
[INFO] [stdout]     |
[INFO] [stdout] 270 |     for i in 0..zombie_upper_num {
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 270 |     for _i in 0..zombie_upper_num {
[INFO] [stdout]     |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `SUN_RADDR`
[INFO] [stdout]     |
[INFO] [stdout] 270 -     for i in 0..zombie_upper_num {
[INFO] [stdout] 270 +     for addr::SUN_RADDR in 0..zombie_upper_num {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/kernal/plant.rs:396:13
[INFO] [stdout]     |
[INFO] [stdout] 396 |         let mut plants_ptr: u32 = unsafe { std::mem::transmute(plants_list_ptr) };
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/main.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |             _ => {},
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/main.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |             message::MISC::SET_PROCESS => {
[INFO] [stdout]    |             -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 44 |             message::MISC::MODIFY_SUN => {
[INFO] [stdout]    |             ------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 50 |             _ => {},
[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: unreachable pattern
[INFO] [stdout]   --> src/main.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |             _ => {},
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/main.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 55 | ...   message::ZOMBIE::SET_ATTRACTED => { zombie::set_zombie_attracted(process_handle.unwrap()).expect("set zombie attracted failed"); },
[INFO] [stdout]    |       ------------------------------ matches some of the same values
[INFO] [stdout] 56 | ...   message::ZOMBIE::REMOVE_ARMOR1 => { zombie::remove_zombie_armor1(process_handle.unwrap()).expect("remove armor1 failed"); }
[INFO] [stdout]    |       ------------------------------ matches some of the same values
[INFO] [stdout] 57 | ...   message::ZOMBIE::REMOVE_ARMOR2 => { zombie::remove_zombie_armor2(process_handle.unwrap()).expect("remove armor2 failed"); }
[INFO] [stdout]    |       ------------------------------ matches some of the same values
[INFO] [stdout] 58 | ...   _ => {},
[INFO] [stdout]    |       ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/main.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |             _ => {},
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/main.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |             message::PLANT::ALLOW_DUP => { plant::allow_duplicate(process_handle.unwrap()).unwrap(); }
[INFO] [stdout]    |             ------------------------- matches some of the same values
[INFO] [stdout] 64 |             message::PLANT::ALLOW_PENETRATION => {  },
[INFO] [stdout]    |             --------------------------------- matches some of the same values
[INFO] [stdout] 65 |             _ => {},
[INFO] [stdout]    |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `process_id` is never read
[INFO] [stdout]   --> src/main.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut process_id: u32 = 35156;  
[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: `ph`
[INFO] [stdout]   --> src/main.rs:36:26
[INFO] [stdout]    |
[INFO] [stdout] 36 |                     Some(ph) => {unsafe { /* 不会释放 */ }},
[INFO] [stdout]    |                          ^^ help: if this is intentional, prefix it with an underscore: `_ph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/main.rs:36:34
[INFO] [stdout]    |
[INFO] [stdout] 36 |                     Some(ph) => {unsafe { /* 不会释放 */ }},
[INFO] [stdout]    |                                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/kernal/plant.rs:267:9
[INFO] [stdout]     |
[INFO] [stdout] 267 |     let mut active_num: usize = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/kernal/plant.rs:396:13
[INFO] [stdout]     |
[INFO] [stdout] 396 |         let mut plants_ptr: u32 = unsafe { std::mem::transmute(plants_list_ptr) };
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/main.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |             _ => {},
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/main.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |             message::MISC::SET_PROCESS => {
[INFO] [stdout]    |             -------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 44 |             message::MISC::MODIFY_SUN => {
[INFO] [stdout]    |             ------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 50 |             _ => {},
[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: unreachable pattern
[INFO] [stdout]   --> src/main.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |             _ => {},
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/main.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 55 | ...   message::ZOMBIE::SET_ATTRACTED => { zombie::set_zombie_attracted(process_handle.unwrap()).expect("set zombie attracted failed"); },
[INFO] [stdout]    |       ------------------------------ matches some of the same values
[INFO] [stdout] 56 | ...   message::ZOMBIE::REMOVE_ARMOR1 => { zombie::remove_zombie_armor1(process_handle.unwrap()).expect("remove armor1 failed"); }
[INFO] [stdout]    |       ------------------------------ matches some of the same values
[INFO] [stdout] 57 | ...   message::ZOMBIE::REMOVE_ARMOR2 => { zombie::remove_zombie_armor2(process_handle.unwrap()).expect("remove armor2 failed"); }
[INFO] [stdout]    |       ------------------------------ matches some of the same values
[INFO] [stdout] 58 | ...   _ => {},
[INFO] [stdout]    |       ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/main.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |             _ => {},
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/main.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |             message::PLANT::ALLOW_DUP => { plant::allow_duplicate(process_handle.unwrap()).unwrap(); }
[INFO] [stdout]    |             ------------------------- matches some of the same values
[INFO] [stdout] 64 |             message::PLANT::ALLOW_PENETRATION => {  },
[INFO] [stdout]    |             --------------------------------- matches some of the same values
[INFO] [stdout] 65 |             _ => {},
[INFO] [stdout]    |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `process_id` is never read
[INFO] [stdout]   --> src/main.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut process_id: u32 = 35156;  
[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: `ph`
[INFO] [stdout]   --> src/main.rs:36:26
[INFO] [stdout]    |
[INFO] [stdout] 36 |                     Some(ph) => {unsafe { /* 不会释放 */ }},
[INFO] [stdout]    |                          ^^ help: if this is intentional, prefix it with an underscore: `_ph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/main.rs:36:34
[INFO] [stdout]    |
[INFO] [stdout] 36 |                     Some(ph) => {unsafe { /* 不会释放 */ }},
[INFO] [stdout]    |                                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zzj_editor` (bin "zzj_editor") due to 13 previous errors; 48 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `zzj_editor` (bin "zzj_editor" test) due to 13 previous errors; 48 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "579daa92662d1c409589f292f96d5c54a3eb54977655e2bd92479d92f11591b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "579daa92662d1c409589f292f96d5c54a3eb54977655e2bd92479d92f11591b1", kill_on_drop: false }`
[INFO] [stdout] 579daa92662d1c409589f292f96d5c54a3eb54977655e2bd92479d92f11591b1
