[INFO] cloning repository https://github.com/eureka-s1/Navie-SysY-Simulator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/eureka-s1/Navie-SysY-Simulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Feureka-s1%2FNavie-SysY-Simulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Feureka-s1%2FNavie-SysY-Simulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cae2647213dc650d8de3dfc5280c97e0429aa417
[INFO] checking eureka-s1/Navie-SysY-Simulator against try#0bdee9e879c87b7211d316e9152109cfd46c576b for pr-150097
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Feureka-s1%2FNavie-SysY-Simulator" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/eureka-s1/Navie-SysY-Simulator
[INFO] finished tweaking git repo https://github.com/eureka-s1/Navie-SysY-Simulator
[INFO] tweaked toml for git repo https://github.com/eureka-s1/Navie-SysY-Simulator written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/eureka-s1/Navie-SysY-Simulator on toolchain 0bdee9e879c87b7211d316e9152109cfd46c576b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/eureka-s1/Navie-SysY-Simulator 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" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7a5d4ce3ad54f8bf6d11f5ad71c3b8977db4e8ff2faa3fcad9eb9c3b23b41e73
[INFO] running `Command { std: "docker" "start" "-a" "7a5d4ce3ad54f8bf6d11f5ad71c3b8977db4e8ff2faa3fcad9eb9c3b23b41e73", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7a5d4ce3ad54f8bf6d11f5ad71c3b8977db4e8ff2faa3fcad9eb9c3b23b41e73", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7a5d4ce3ad54f8bf6d11f5ad71c3b8977db4e8ff2faa3fcad9eb9c3b23b41e73", kill_on_drop: false }`
[INFO] [stdout] 7a5d4ce3ad54f8bf6d11f5ad71c3b8977db4e8ff2faa3fcad9eb9c3b23b41e73
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 82eb6e03f0df0360463265995803254707255b9ebcae06845b41f3ab63767035
[INFO] running `Command { std: "docker" "start" "-a" "82eb6e03f0df0360463265995803254707255b9ebcae06845b41f3ab63767035", kill_on_drop: false }`
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling wayland-sys v0.31.6
[INFO] [stderr]    Compiling cc v1.2.27
[INFO] [stderr]    Compiling quick-xml v0.37.5
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling indexmap v2.9.0
[INFO] [stderr]    Compiling wayland-client v0.31.10
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling bytemuck_derive v1.9.3
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking event-listener v5.4.0
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]     Checking futures-lite v2.6.0
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]    Compiling memoffset v0.7.1
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]     Checking async-channel v2.3.1
[INFO] [stderr]     Checking io-lifetimes v1.0.11
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling async-fs v1.6.0
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking rustix v0.37.28
[INFO] [stderr]     Checking blocking v1.6.1
[INFO] [stderr]    Compiling wayland-scanner v0.31.6
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]     Checking polling v2.8.0
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.8
[INFO] [stderr]     Checking xcursor v0.3.9
[INFO] [stderr]    Compiling xml-rs v0.8.26
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling wayland-backend v0.3.10
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking bytemuck v1.23.1
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]     Checking async-executor v1.13.2
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking async-broadcast v0.5.1
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]     Checking xdg-home v1.3.0
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.18.1
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking accesskit v0.12.3
[INFO] [stderr]     Checking x11rb-protocol v0.13.1
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking owned_ttf_parser v0.25.0
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking ab_glyph v0.2.29
[INFO] [stderr]    Compiling winit v0.29.15
[INFO] [stderr]    Compiling crunchy v0.2.3
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling glutin_glx_sys v0.5.0
[INFO] [stderr]    Compiling glutin_egl_sys v0.6.0
[INFO] [stderr]     Checking emath v0.26.2
[INFO] [stderr]     Checking ecolor v0.26.2
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking polling v3.8.0
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling term v0.7.0
[INFO] [stderr]     Checking accesskit_consumer v0.16.1
[INFO] [stderr]    Compiling glutin v0.31.3
[INFO] [stderr]     Checking async-once-cell v0.5.4
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling string_cache v0.8.9
[INFO] [stderr]     Checking epaint v0.26.2
[INFO] [stderr]    Compiling ascii-canvas v3.0.0
[INFO] [stderr]    Compiling zvariant_utils v1.0.1
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]    Compiling glutin-winit v0.4.2
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]    Compiling ena v0.14.3
[INFO] [stderr]     Checking home v0.5.11
[INFO] [stderr]    Compiling pico-args v0.5.0
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]     Checking twox-hash v1.6.3
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking glow v0.13.1
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]     Checking web-time v0.2.4
[INFO] [stderr]     Checking webbrowser v0.8.15
[INFO] [stderr]    Compiling document-features v0.2.11
[INFO] [stderr]     Checking colored v2.2.0
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking key-node-list v0.0.5
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling lalrpop-util v0.20.2
[INFO] [stderr]     Checking koopa v0.0.8
[INFO] [stderr]     Checking egui v0.26.2
[INFO] [stderr]    Compiling lalrpop v0.20.2
[INFO] [stderr]    Compiling zvariant_derive v3.15.2
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling zbus_macros v3.15.2
[INFO] [stderr]     Checking ruzstd v0.5.0
[INFO] [stderr]     Checking calloop v0.12.4
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking zvariant v3.15.2
[INFO] [stderr]     Checking object v0.32.2
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking egui_glow v0.26.2
[INFO] [stderr]     Checking zbus_names v2.6.1
[INFO] [stderr]     Checking wayland-protocols v0.31.2
[INFO] [stderr]     Checking wayland-cursor v0.31.10
[INFO] [stderr]     Checking calloop-wayland-source v0.2.0
[INFO] [stderr]     Checking wayland-protocols v0.32.8
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking zbus v3.15.2
[INFO] [stderr]     Checking wayland-protocols-wlr v0.2.0
[INFO] [stderr]     Checking wayland-protocols-plasma v0.2.0
[INFO] [stderr]     Checking atspi-common v0.3.0
[INFO] [stderr]    Compiling Naive-SysY-Simulator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking sctk-adwaita v0.8.3
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.8
[INFO] [stderr]     Checking x11rb v0.13.1
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking smithay-clipboard v0.7.2
[INFO] [stderr]     Checking arboard v3.5.0
[INFO] [stderr]     Checking atspi-proxies v0.3.0
[INFO] [stderr]     Checking atspi-connection v0.3.0
[INFO] [stderr]     Checking atspi v0.19.0
[INFO] [stderr]     Checking accesskit_unix v0.6.2
[INFO] [stderr]     Checking accesskit_winit v0.16.1
[INFO] [stderr]     Checking egui-winit v0.26.2
[INFO] [stderr]     Checking eframe v0.26.2
[INFO] [stdout] warning: unused import: `idx2reg`
[INFO] [stdout]  --> src/codegen/generate.rs:4:35
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::codegen::instruction::{idx2reg, Reg};
[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: `super::instruction::Inst`
[INFO] [stdout]  --> src/codegen/generate.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::instruction::Inst;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/codegen/generate.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | use super::env::{Context, Env};
[INFO] [stdout]   |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::char::ParseCharError`
[INFO] [stdout]  --> src/codegen/env.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::char::ParseCharError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsmGlobal` and `Section`
[INFO] [stdout]  --> src/codegen/env.rs:6:30
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::asm::{AsmProgram, AsmGlobal, AsmLocal, Section};
[INFO] [stdout]   |                              ^^^^^^^^^            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::instruction::Inst`
[INFO] [stdout]  --> src/codegen/env.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::instruction::Inst;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reg2idx`
[INFO] [stdout]   --> src/codegen/env.rs:11:26
[INFO] [stdout]    |
[INFO] [stdout] 11 | use super::instruction::{reg2idx, idx2reg};
[INFO] [stdout]    |                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `koopa::front::ast::Aggregate`
[INFO] [stdout]   --> src/codegen/env.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use koopa::front::ast::Aggregate;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `koopa::ir::entities::ValueData`
[INFO] [stdout]   --> src/codegen/env.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use koopa::ir::entities::ValueData;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Alphanumeric`
[INFO] [stdout]   --> src/codegen/env.rs:18:27
[INFO] [stdout]    |
[INFO] [stdout] 18 | use rand::distributions::{Alphanumeric, Uniform};
[INFO] [stdout]    |                           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/codegen/env.rs:323:22
[INFO] [stdout]     |
[INFO] [stdout] 323 |             for i in (0..(self.paranum as i32/4)) {
[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] 323 -             for i in (0..(self.paranum as i32/4)) {
[INFO] [stdout] 323 +             for i in 0..(self.paranum as i32/4)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ValueKind`
[INFO] [stdout]  --> src/codegen/table.rs:5:24
[INFO] [stdout]   |
[INFO] [stdout] 5 | use koopa::ir::{Value, ValueKind};
[INFO] [stdout]   |                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `koopa::ir::values::GlobalAlloc`
[INFO] [stdout]  --> src/codegen/build.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use koopa::ir::values::GlobalAlloc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsmGlobal`, `AsmLocal`, `AsmProgram`, and `Section`
[INFO] [stdout]   --> src/codegen/mod.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | use asm::{AsmProgram, AsmGlobal, AsmLocal, Section};
[INFO] [stdout]    |           ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `instruction::Inst`
[INFO] [stdout]   --> src/codegen/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use instruction::Inst;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `label::Label`
[INFO] [stdout]   --> src/codegen/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use label::Label;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `Env`
[INFO] [stdout]   --> src/codegen/mod.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | use env::{Context, Env};
[INFO] [stdout]    |           ^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `generate::GenerateAsm`
[INFO] [stdout]   --> src/codegen/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use generate::GenerateAsm;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FunctionData`, `TypeKind`, and `ValueKind`
[INFO] [stdout]  --> src/irgen/env.rs:1:130
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...er}, BasicBlock, BinaryOp, Function, FunctionData, Program, Type, TypeKind, Value, ValueKind};
[INFO] [stdout]   |                                         ^^^^^^^^^^^^                 ^^^^^^^^         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::decode::*`
[INFO] [stdout]   --> src/simulator/pipe.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::decode::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/simulator/pipe.rs:135:11
[INFO] [stdout]     |
[INFO] [stdout] 135 |         if((alu_a == dst_e && dst_e != 0 && self.E_reg.store == false)){
[INFO] [stdout]     |           ^                                                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 135 -         if((alu_a == dst_e && dst_e != 0 && self.E_reg.store == false)){
[INFO] [stdout] 135 +         if (alu_a == dst_e && dst_e != 0 && self.E_reg.store == false) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/simulator/pipe.rs:140:17
[INFO] [stdout]     |
[INFO] [stdout] 140 |         else if ((alu_a == dst_m && dst_m != 0 && self.M_reg.store == false)){
[INFO] [stdout]     |                 ^                                                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 140 -         else if ((alu_a == dst_m && dst_m != 0 && self.M_reg.store == false)){
[INFO] [stdout] 140 +         else if (alu_a == dst_m && dst_m != 0 && self.M_reg.store == false) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/simulator/pipe.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 146 |         if (alu_b == dst_e && dst_e != 0 && self.E_reg.store == false) {
[INFO] [stdout]     |            ^                                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 146 -         if (alu_b == dst_e && dst_e != 0 && self.E_reg.store == false) {
[INFO] [stdout] 146 +         if alu_b == dst_e && dst_e != 0 && self.E_reg.store == false {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/simulator/pipe.rs:151:17
[INFO] [stdout]     |
[INFO] [stdout] 151 |         else if (alu_b == dst_m && dst_m != 0 && self.M_reg.store == false) {
[INFO] [stdout]     |                 ^                                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 151 -         else if (alu_b == dst_m && dst_m != 0 && self.M_reg.store == false) {
[INFO] [stdout] 151 +         else if alu_b == dst_m && dst_m != 0 && self.M_reg.store == false {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipe::Pipeline`
[INFO] [stdout]   --> src/simulator/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use pipe::Pipeline;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mem::Memory`
[INFO] [stdout]   --> src/simulator/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use mem::Memory;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Write` and `self`
[INFO] [stdout]   --> src/simulator/mod.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::io::{self, Write};
[INFO] [stdout]    |               ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `idx2reg`
[INFO] [stdout]  --> src/codegen/generate.rs:4:35
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::codegen::instruction::{idx2reg, Reg};
[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: `super::instruction::Inst`
[INFO] [stdout]  --> src/codegen/generate.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::instruction::Inst;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/codegen/generate.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | use super::env::{Context, Env};
[INFO] [stdout]   |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::char::ParseCharError`
[INFO] [stdout]  --> src/codegen/env.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::char::ParseCharError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsmGlobal` and `Section`
[INFO] [stdout]  --> src/codegen/env.rs:6:30
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::asm::{AsmProgram, AsmGlobal, AsmLocal, Section};
[INFO] [stdout]   |                              ^^^^^^^^^            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::instruction::Inst`
[INFO] [stdout]  --> src/codegen/env.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::instruction::Inst;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reg2idx`
[INFO] [stdout]   --> src/codegen/env.rs:11:26
[INFO] [stdout]    |
[INFO] [stdout] 11 | use super::instruction::{reg2idx, idx2reg};
[INFO] [stdout]    |                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `koopa::front::ast::Aggregate`
[INFO] [stdout]   --> src/codegen/env.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use koopa::front::ast::Aggregate;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `koopa::ir::entities::ValueData`
[INFO] [stdout]   --> src/codegen/env.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use koopa::ir::entities::ValueData;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Alphanumeric`
[INFO] [stdout]   --> src/codegen/env.rs:18:27
[INFO] [stdout]    |
[INFO] [stdout] 18 | use rand::distributions::{Alphanumeric, Uniform};
[INFO] [stdout]    |                           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/codegen/env.rs:323:22
[INFO] [stdout]     |
[INFO] [stdout] 323 |             for i in (0..(self.paranum as i32/4)) {
[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] 323 -             for i in (0..(self.paranum as i32/4)) {
[INFO] [stdout] 323 +             for i in 0..(self.paranum as i32/4)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ValueKind`
[INFO] [stdout]  --> src/codegen/table.rs:5:24
[INFO] [stdout]   |
[INFO] [stdout] 5 | use koopa::ir::{Value, ValueKind};
[INFO] [stdout]   |                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `koopa::ir::values::GlobalAlloc`
[INFO] [stdout]  --> src/codegen/build.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use koopa::ir::values::GlobalAlloc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsmGlobal`, `AsmLocal`, `AsmProgram`, and `Section`
[INFO] [stdout]   --> src/codegen/mod.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | use asm::{AsmProgram, AsmGlobal, AsmLocal, Section};
[INFO] [stdout]    |           ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `instruction::Inst`
[INFO] [stdout]   --> src/codegen/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use instruction::Inst;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `label::Label`
[INFO] [stdout]   --> src/codegen/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use label::Label;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `Env`
[INFO] [stdout]   --> src/codegen/mod.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | use env::{Context, Env};
[INFO] [stdout]    |           ^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `generate::GenerateAsm`
[INFO] [stdout]   --> src/codegen/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use generate::GenerateAsm;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FunctionData`, `TypeKind`, and `ValueKind`
[INFO] [stdout]  --> src/irgen/env.rs:1:130
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...er}, BasicBlock, BinaryOp, Function, FunctionData, Program, Type, TypeKind, Value, ValueKind};
[INFO] [stdout]   |                                         ^^^^^^^^^^^^                 ^^^^^^^^         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::decode::*`
[INFO] [stdout]   --> src/simulator/pipe.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::decode::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/simulator/pipe.rs:135:11
[INFO] [stdout]     |
[INFO] [stdout] 135 |         if((alu_a == dst_e && dst_e != 0 && self.E_reg.store == false)){
[INFO] [stdout]     |           ^                                                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 135 -         if((alu_a == dst_e && dst_e != 0 && self.E_reg.store == false)){
[INFO] [stdout] 135 +         if (alu_a == dst_e && dst_e != 0 && self.E_reg.store == false) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/simulator/pipe.rs:140:17
[INFO] [stdout]     |
[INFO] [stdout] 140 |         else if ((alu_a == dst_m && dst_m != 0 && self.M_reg.store == false)){
[INFO] [stdout]     |                 ^                                                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 140 -         else if ((alu_a == dst_m && dst_m != 0 && self.M_reg.store == false)){
[INFO] [stdout] 140 +         else if (alu_a == dst_m && dst_m != 0 && self.M_reg.store == false) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/simulator/pipe.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 146 |         if (alu_b == dst_e && dst_e != 0 && self.E_reg.store == false) {
[INFO] [stdout]     |            ^                                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 146 -         if (alu_b == dst_e && dst_e != 0 && self.E_reg.store == false) {
[INFO] [stdout] 146 +         if alu_b == dst_e && dst_e != 0 && self.E_reg.store == false {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/simulator/pipe.rs:151:17
[INFO] [stdout]     |
[INFO] [stdout] 151 |         else if (alu_b == dst_m && dst_m != 0 && self.M_reg.store == false) {
[INFO] [stdout]     |                 ^                                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 151 -         else if (alu_b == dst_m && dst_m != 0 && self.M_reg.store == false) {
[INFO] [stdout] 151 +         else if alu_b == dst_m && dst_m != 0 && self.M_reg.store == false {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pipe::Pipeline`
[INFO] [stdout]   --> src/simulator/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use pipe::Pipeline;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mem::Memory`
[INFO] [stdout]   --> src/simulator/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use mem::Memory;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Write` and `self`
[INFO] [stdout]   --> src/simulator/mod.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::io::{self, Write};
[INFO] [stdout]    |               ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/codegen/env.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]   --> src/codegen/env.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use rand::Rng;
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `env`
[INFO] [stdout]    --> src/codegen/generate.rs:161:24
[INFO] [stdout]     |
[INFO] [stdout] 161 |     fn generate(&self, env: &mut Env, asm_bb: &mut AsmLocal) {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_env`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `env`
[INFO] [stdout]    --> src/codegen/generate.rs:161:24
[INFO] [stdout]     |
[INFO] [stdout] 161 |     fn generate(&self, env: &mut Env, asm_bb: &mut AsmLocal) {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_env`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asm_bb`
[INFO] [stdout]    --> src/codegen/generate.rs:161:39
[INFO] [stdout]     |
[INFO] [stdout] 161 |     fn generate(&self, env: &mut Env, asm_bb: &mut AsmLocal) {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_asm_bb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asm_bb`
[INFO] [stdout]    --> src/codegen/generate.rs:161:39
[INFO] [stdout]     |
[INFO] [stdout] 161 |     fn generate(&self, env: &mut Env, asm_bb: &mut AsmLocal) {
[INFO] [stdout]     |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_asm_bb`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/codegen/env.rs:152:56
[INFO] [stdout]     |
[INFO] [stdout] 152 |     pub fn build_ret(&mut self, asm_bb: &mut AsmLocal, val: Value, ret: &values::Return, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]    --> src/codegen/env.rs:152:90
[INFO] [stdout]     |
[INFO] [stdout] 152 |     pub fn build_ret(&mut self, asm_bb: &mut AsmLocal, val: Value, ret: &values::Return, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |                                                                                          ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/codegen/env.rs:152:56
[INFO] [stdout]     |
[INFO] [stdout] 152 |     pub fn build_ret(&mut self, asm_bb: &mut AsmLocal, val: Value, ret: &values::Return, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]    --> src/codegen/env.rs:152:90
[INFO] [stdout]     |
[INFO] [stdout] 152 |     pub fn build_ret(&mut self, asm_bb: &mut AsmLocal, val: Value, ret: &values::Return, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |                                                                                          ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/codegen/env.rs:217:59
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn build_branch(&mut self, asm_bb: &mut AsmLocal, val: Value, branch: &values::Branch, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |                                                           ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]    --> src/codegen/env.rs:217:96
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn build_branch(&mut self, asm_bb: &mut AsmLocal, val: Value, branch: &values::Branch, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |                                                                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/codegen/env.rs:235:57
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn build_jump(&mut self, asm_bb: &mut AsmLocal, val: Value, jump: &values::Jump, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]    --> src/codegen/env.rs:235:90
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn build_jump(&mut self, asm_bb: &mut AsmLocal, val: Value, jump: &values::Jump, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |                                                                                          ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/codegen/env.rs:217:59
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn build_branch(&mut self, asm_bb: &mut AsmLocal, val: Value, branch: &values::Branch, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |                                                           ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]    --> src/codegen/env.rs:217:96
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn build_branch(&mut self, asm_bb: &mut AsmLocal, val: Value, branch: &values::Branch, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |                                                                                                ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/codegen/env.rs:246:58
[INFO] [stdout]     |
[INFO] [stdout] 246 |     pub fn build_store(&mut self, asm_bb: &mut AsmLocal, val: Value, store: &values::Store, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]    --> src/codegen/env.rs:246:93
[INFO] [stdout]     |
[INFO] [stdout] 246 |     pub fn build_store(&mut self, asm_bb: &mut AsmLocal, val: Value, store: &values::Store, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |                                                                                             ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/codegen/env.rs:235:57
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn build_jump(&mut self, asm_bb: &mut AsmLocal, val: Value, jump: &values::Jump, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]    --> src/codegen/env.rs:235:90
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn build_jump(&mut self, asm_bb: &mut AsmLocal, val: Value, jump: &values::Jump, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |                                                                                          ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/codegen/env.rs:246:58
[INFO] [stdout]     |
[INFO] [stdout] 246 |     pub fn build_store(&mut self, asm_bb: &mut AsmLocal, val: Value, store: &values::Store, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rd`
[INFO] [stdout]    --> src/codegen/env.rs:246:93
[INFO] [stdout]     |
[INFO] [stdout] 246 |     pub fn build_store(&mut self, asm_bb: &mut AsmLocal, val: Value, store: &values::Store, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |                                                                                             ^^ help: if this is intentional, prefix it with an underscore: `_rd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbol_table`
[INFO] [stdout]     --> src/codegen/build.rs:1398:40
[INFO] [stdout]      |
[INFO] [stdout] 1398 |     fn build(&self, program: &Program, symbol_table: &mut GlobalSymbolTable) -> Result<Vec<String>, String> {
[INFO] [stdout]      |                                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbol_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `init_value`
[INFO] [stdout]     --> src/codegen/build.rs:1403:17
[INFO] [stdout]      |
[INFO] [stdout] 1403 |             let init_value = global.init();
[INFO] [stdout]      |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_init_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `symbol_table`
[INFO] [stdout]     --> src/codegen/build.rs:1398:40
[INFO] [stdout]      |
[INFO] [stdout] 1398 |     fn build(&self, program: &Program, symbol_table: &mut GlobalSymbolTable) -> Result<Vec<String>, String> {
[INFO] [stdout]      |                                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbol_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `init_value`
[INFO] [stdout]     --> src/codegen/build.rs:1403:17
[INFO] [stdout]      |
[INFO] [stdout] 1403 |             let init_value = global.init();
[INFO] [stdout]      |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_init_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `init_list`
[INFO] [stdout]    --> src/irgen/generate.rs:588:31
[INFO] [stdout]     |
[INFO] [stdout] 588 |             InitVal::InitList(init_list) => todo!(),
[INFO] [stdout]     |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_init_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp_var`
[INFO] [stdout]    --> src/irgen/generate.rs:627:21
[INFO] [stdout]     |
[INFO] [stdout] 627 |                 let tmp_var = env.alloc_var(&tmp_id);
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tmp_var`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp_var`
[INFO] [stdout]    --> src/irgen/generate.rs:676:21
[INFO] [stdout]     |
[INFO] [stdout] 676 |                 let tmp_var = env.alloc_var(&tmp_id);
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tmp_var`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/irgen/generate.rs:821:45
[INFO] [stdout]     |
[INFO] [stdout] 821 | ...                   let mut addr = match is_pointer {
[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: `init_list`
[INFO] [stdout]    --> src/irgen/generate.rs:588:31
[INFO] [stdout]     |
[INFO] [stdout] 588 |             InitVal::InitList(init_list) => todo!(),
[INFO] [stdout]     |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_init_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp_var`
[INFO] [stdout]    --> src/irgen/generate.rs:627:21
[INFO] [stdout]     |
[INFO] [stdout] 627 |                 let tmp_var = env.alloc_var(&tmp_id);
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tmp_var`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp_var`
[INFO] [stdout]    --> src/irgen/generate.rs:676:21
[INFO] [stdout]     |
[INFO] [stdout] 676 |                 let tmp_var = env.alloc_var(&tmp_id);
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tmp_var`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/irgen/generate.rs:821:45
[INFO] [stdout]     |
[INFO] [stdout] 821 | ...                   let mut addr = match is_pointer {
[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/simulator/mem.rs:268:13
[INFO] [stdout]     |
[INFO] [stdout] 268 |         let mut mem = Memory::new();
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_pc`
[INFO] [stdout]    --> src/simulator/gui.rs:149:25
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     let prev_pc = self.pipeline.cpu.pc;
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_pc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_pc`
[INFO] [stdout]    --> src/simulator/gui.rs:170:25
[INFO] [stdout]     |
[INFO] [stdout] 170 |                     let prev_pc = self.pipeline.cpu.pc;
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_pc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_pc`
[INFO] [stdout]    --> src/simulator/gui.rs:149:25
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     let prev_pc = self.pipeline.cpu.pc;
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_pc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev_pc`
[INFO] [stdout]    --> src/simulator/gui.rs:170:25
[INFO] [stdout]     |
[INFO] [stdout] 170 |                     let prev_pc = self.pipeline.cpu.pc;
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prev_pc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GlobalSymbolTable` is more private than the item `AssBuilder::build`
[INFO] [stdout]   --> src/codegen/build.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn build(&self, program: &Program, symbol_table: &mut GlobalSymbolTable) -> Result<Vec<String>, String>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `AssBuilder::build` is reachable at visibility `pub(in crate::codegen)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `GlobalSymbolTable` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/codegen/build.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct GlobalSymbolTable {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GlobalSymbolTable` is more private than the item `<koopa::ir::Program as AssBuilder>::build`
[INFO] [stdout]   --> src/codegen/build.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn build(&self, _: &Program, symbol_table: &mut GlobalSymbolTable) -> Result<Vec<String>, String> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<koopa::ir::Program as AssBuilder>::build` is reachable at visibility `pub(in crate::codegen)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `GlobalSymbolTable` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/codegen/build.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct GlobalSymbolTable {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GlobalSymbolTable` is more private than the item `<koopa::ir::FunctionData as AssBuilder>::build`
[INFO] [stdout]   --> src/codegen/build.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn build(&self, program: &Program, symbol_table: &mut GlobalSymbolTable) -> Result<Vec<String>, String> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<koopa::ir::FunctionData as AssBuilder>::build` is reachable at visibility `pub(in crate::codegen)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `GlobalSymbolTable` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/codegen/build.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct GlobalSymbolTable {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GlobalSymbolTable` is more private than the item `<ValueData as AssBuilder>::build`
[INFO] [stdout]     --> src/codegen/build.rs:1398:5
[INFO] [stdout]      |
[INFO] [stdout] 1398 |     fn build(&self, program: &Program, symbol_table: &mut GlobalSymbolTable) -> Result<Vec<String>, String> {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<ValueData as AssBuilder>::build` is reachable at visibility `pub(in crate::codegen)`
[INFO] [stdout]      |
[INFO] [stdout] note: but type `GlobalSymbolTable` is only usable at visibility `pub(self)`
[INFO] [stdout]     --> src/codegen/build.rs:21:1
[INFO] [stdout]      |
[INFO] [stdout]   21 | struct GlobalSymbolTable {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GenerateAsm` is never used
[INFO] [stdout]   --> src/codegen/generate.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait GenerateAsm {
[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 `PARA_REG` is never used
[INFO] [stdout]    --> src/codegen/generate.rs:105:11
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub const PARA_REG: [Reg; 8] = [
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Context` is never constructed
[INFO] [stdout]   --> src/codegen/env.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Context<'a> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/codegen/env.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl<'a> Context<'a> {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(program: &'a Program) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Env` is never constructed
[INFO] [stdout]   --> src/codegen/env.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Env<'a> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/codegen/env.rs:50:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl<'a> Env<'a> {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  50 |     pub fn new(program: &'a Program) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn find_global_name(&mut self, val: Value) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn print_state(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn move_inst(&mut self, asm_bb: &mut AsmLocal, val: Value, rd: Option<Reg>) -> Reg {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     fn move_inst_to(&mut self, asm_bb: &mut AsmLocal, inst: Value, dst: Option<Reg>) -> Reg {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn build_inst(&mut self, asm_bb: &mut AsmLocal, val: Value, rd: Option<Reg>, kind: &ValueKind) 
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn build_int(&mut self, asm_bb: &mut AsmLocal, val:Value, int: values::Integer, rd: Option<Reg>) 
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn build_ret(&mut self, asm_bb: &mut AsmLocal, val: Value, ret: &values::Return, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn build_func_arg_ref(&mut self, asm_bb: &mut AsmLocal, val: Value, funargref: values::FuncArgRef) -> Option<Reg> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn build_binary(&mut self, asm_bb: &mut AsmLocal, val: Value, bin: &values::Binary, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn build_branch(&mut self, asm_bb: &mut AsmLocal, val: Value, branch: &values::Branch, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn build_jump(&mut self, asm_bb: &mut AsmLocal, val: Value, jump: &values::Jump, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn build_store(&mut self, asm_bb: &mut AsmLocal, val: Value, store: &values::Store, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub fn build_load(&mut self, asm_bb: &mut AsmLocal, val: Value, load: &values::Load, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub fn build_call(&mut self, asm_bb: &mut AsmLocal, val: Value, call: &values::Call, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn build_get_ptr(&mut self, asm_bb: &mut AsmLocal, val : Value, getptr: &values::GetPtr, dst: Option<Reg>) -> Option<Reg>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 419 |     pub fn build_getelem_ptr(&mut self, asm_bb: &mut AsmLocal, val : Value, getelem : &values::GetElemPtr, dst: Option<Reg>) -> Opt...
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 477 |     pub fn build_global_alloc(&mut self, asm_prog: &mut AsmProgram, val: Value) -> AsmGlobalDef {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 521 |     pub fn build_aggregate(&mut self, asm_prog: &mut AsmProgram, arr: &values::Aggregate, vec: &mut Vec<InitVal>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_random_string` is never used
[INFO] [stdout]    --> src/codegen/env.rs:537:8
[INFO] [stdout]     |
[INFO] [stdout] 537 | pub fn generate_random_string(length: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AsmProgram` is never constructed
[INFO] [stdout]  --> src/codegen/asm.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct AsmProgram {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AsmGlobalDef` is never constructed
[INFO] [stdout]   --> src/codegen/asm.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct AsmGlobalDef {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AsmGlobal` is never constructed
[INFO] [stdout]   --> src/codegen/asm.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct AsmGlobal {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Section` is never used
[INFO] [stdout]   --> src/codegen/asm.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum Section {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AsmLocal` is never constructed
[INFO] [stdout]   --> src/codegen/asm.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct AsmLocal {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push_global`, `push_globaldef`, and `emit_asm` are never used
[INFO] [stdout]   --> src/codegen/asm.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl AsmProgram {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 41 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn push_global(&mut self, global: AsmGlobal) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn push_globaldef(&mut self, globaldef: AsmGlobalDef) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn emit_asm(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `emit_asm` is never used
[INFO] [stdout]    --> src/codegen/asm.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | impl AsmGlobalDef {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] 109 |     pub fn emit_asm(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push_local`, and `emit_asm` are never used
[INFO] [stdout]    --> src/codegen/asm.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl AsmGlobal {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 141 |     pub fn new(section: Section, label: Label) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn push_local(&mut self, local: AsmLocal) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn emit_asm(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_imm12` is never used
[INFO] [stdout]    --> src/codegen/asm.rs:181:8
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub fn is_imm12(imm: i32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/codegen/asm.rs:186:12
[INFO] [stdout]     |
[INFO] [stdout] 185 | impl AsmLocal {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 186 |     pub fn new(label: Option<Label>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn push_inst(&mut self, inst: Inst) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn beqz_inst(&mut self, rs: Reg, label: String) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn bnez_inst(&mut self, rs: Reg, label: String) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn J_inst(&mut self, label: String) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn call_inst(&mut self, label: String) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn ret_inst(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn lw_inst(&mut self, rd: Reg, imm: i32, rs: Reg) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn sw_inst(&mut self, rs: Reg, imm: i32, rd: Reg) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn add_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn addi_inst(&mut self, rd: Reg, rs: Reg, imm: i32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn sub_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn slt_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn sgt_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn seqz_inst(&mut self, rd: Reg, rs: Reg) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn snez_inst(&mut self, rd: Reg, rs: Reg) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     pub fn xor_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn xori_inst(&mut self, rd: Reg, rs: Reg, imm: i32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn or_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn ori_inst(&mut self, rd: Reg, rs: Reg, imm: i32) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub fn and_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn andi_inst(&mut self, rd: Reg, rs: Reg, imm: i32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn sll_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     pub fn srl_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub fn sra_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn mul_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn div_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub fn rem_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn li_inst(&mut self, rd: Reg, imm: i32) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub fn la_inst(&mut self, rd: Reg, label: String) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub fn mv_inst(&mut self, rd: Reg, rs: Reg) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn muli_inst(&mut self, rd: Reg, rs: Reg, imm: i32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     pub fn emit_asm(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Imm12` is never used
[INFO] [stdout]  --> src/codegen/instruction.rs:1:6
[INFO] [stdout]   |
[INFO] [stdout] 1 | type Imm12 = i32;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Imm32` is never used
[INFO] [stdout]  --> src/codegen/instruction.rs:2:6
[INFO] [stdout]   |
[INFO] [stdout] 2 | type Imm32 = i32;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Reg` is never used
[INFO] [stdout]  --> src/codegen/instruction.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type Reg = &'static str;
[INFO] [stdout]   |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Inst` is never used
[INFO] [stdout]   --> src/codegen/instruction.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum Inst {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reg2idx` is never used
[INFO] [stdout]   --> src/codegen/instruction.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn reg2idx(reg: Reg) -> usize {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REG_NAME` is never used
[INFO] [stdout]   --> src/codegen/instruction.rs:77:7
[INFO] [stdout]    |
[INFO] [stdout] 77 | const REG_NAME: [Reg; 32] = [
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idx2reg` is never used
[INFO] [stdout]   --> src/codegen/instruction.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn idx2reg(idx: usize) -> Reg {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `emit_asm` is never used
[INFO] [stdout]   --> src/codegen/instruction.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 89 | impl Inst {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 90 |     pub fn emit_asm(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Label` is never constructed
[INFO] [stdout]  --> src/codegen/label.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Label {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `name`, and `to_string` are never used
[INFO] [stdout]   --> src/codegen/label.rs:7:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Label {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout]  7 |     pub fn new(name: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn name(&self) -> &str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn to_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Descriptor` is never used
[INFO] [stdout]  --> src/codegen/table.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | enum Descriptor {
[INFO] [stdout]   |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DescriptorTable` is never constructed
[INFO] [stdout]   --> src/codegen/table.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct DescriptorTable {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_reg`, `free_reg`, `alloc_reg`, and `reg_move_to` are never used
[INFO] [stdout]   --> src/codegen/table.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl DescriptorTable {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 18 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn get_reg(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn free_reg(&mut self, val: Value, reg: Reg) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn alloc_reg(&mut self, val: Value, rd: Option<Reg>) -> Reg {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn reg_move_to(&mut self, rs: Reg, rd: Reg) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InitVal` is never used
[INFO] [stdout]  --> src/codegen/array.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum InitVal {
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create_bi_inst` and `insert_int_inst` are never used
[INFO] [stdout]   --> src/irgen/env.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl Context {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn create_bi_inst(&mut self, op: BinaryOp, lhs: Value, rhs: Value) -> Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn insert_int_inst(&mut self, num: i32) -> Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `create_var` is never used
[INFO] [stdout]    --> src/irgen/env.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl Env {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn create_var(&mut self, ident: &String, val: Option<Value>) -> () {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_scope` is never used
[INFO] [stdout]    --> src/irgen/scope.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl Scope {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn print_scope(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_pointer`, `dims`, and `value` are never read
[INFO] [stdout]    --> src/irgen/scope.rs:166:5
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub struct ArrayVar {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 165 |     ident: Ident,
[INFO] [stdout] 166 |     is_pointer: bool,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 167 |     dims: Vec<i32>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 168 |     value: Option<Value>, // alloc in Koopa IR
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ArrayVar` 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: field `value` is never read
[INFO] [stdout]    --> src/irgen/scope.rs:181:5
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub struct NormalVar {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 180 |     ident: Ident,
[INFO] [stdout] 181 |     value: Option<Value>, // alloc in Koopa IR
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NormalVar` 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: field `value` is never read
[INFO] [stdout]    --> src/irgen/scope.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub struct ConstVar {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 186 |     ident: Ident,
[INFO] [stdout] 187 |     value: i32,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConstVar` 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: field `value` is never read
[INFO] [stdout]    --> src/irgen/scope.rs:193:5
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub struct FuncVar {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 192 |     ident: Ident,
[INFO] [stdout] 193 |     value: Option<Function>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FuncVar` 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: methods `is_const`, `const_value`, `value`, and `func_value` are never used
[INFO] [stdout]    --> src/irgen/scope.rs:246:12
[INFO] [stdout]     |
[INFO] [stdout] 212 | impl Var {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn is_const(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     fn const_value(&self) -> Option<i32> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     fn value(&self) -> Option<Value> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     fn func_value(&self) -> Option<Function> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/irgen/loopstack.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl LoopStack {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 10 |     pub fn new() -> LoopStack {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ty` is never read
[INFO] [stdout]   --> src/irgen/ast_df.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct FuncFParam {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 28 |     pub ty: BType,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FuncFParam` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MEM_SIZE` is never used
[INFO] [stdout]  --> src/simulator/cpu.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const MEM_SIZE: usize = 0x80_00000; 
[INFO] [stdout]   |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ImageLoadFailed` is never constructed
[INFO] [stdout]   --> src/simulator/mem.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum MemoryError {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     ImageLoadFailed,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MemoryError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `load_elf` is never used
[INFO] [stdout]    --> src/simulator/mem.rs:184:12
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl Memory {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn load_elf(&mut self, path: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MEM_SIZE` is never used
[INFO] [stdout]   --> src/simulator/pipe.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const MEM_SIZE: usize = 0x80_00000; 
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `debug_mode` is never read
[INFO] [stdout]   --> src/simulator/pipe.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Pipeline {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 16 |     pub cpu: CPUState,
[INFO] [stdout] 17 |     pub debug_mode: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pipe_check_rv64m` is never used
[INFO] [stdout]    --> src/simulator/pipe.rs:177:8
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl Pipeline {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 177 |     fn pipe_check_rv64m(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trunc` is never used
[INFO] [stdout]   --> src/simulator/decode.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn trunc(s: u64) -> u64 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_hex_address` is never used
[INFO] [stdout]    --> src/simulator/gui.rs:245:4
[INFO] [stdout]     |
[INFO] [stdout] 245 | fn parse_hex_address(s: &str) -> Result<u64, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `J_inst` should have a snake case name
[INFO] [stdout]    --> src/codegen/asm.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub fn J_inst(&mut self, label: String) {
[INFO] [stdout]     |            ^^^^^^ help: convert the identifier to snake case: `j_inst`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/simulator/mod.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     gui::run_gui(output);
[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] 23 |     let _ = gui::run_gui(output);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `D_reg` should have a snake case name
[INFO] [stdout]   --> src/simulator/pipe.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub D_reg: IFIDReg,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `d_reg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `E_reg` should have a snake case name
[INFO] [stdout]   --> src/simulator/pipe.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub E_reg: IDEXReg,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `e_reg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `M_reg` should have a snake case name
[INFO] [stdout]   --> src/simulator/pipe.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub M_reg: EXMEMReg,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `m_reg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `W_reg` should have a snake case name
[INFO] [stdout]   --> src/simulator/pipe.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub W_reg: MEMWBReg,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case (notice the capitalization): `w_reg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FuncCall` should have a snake case name
[INFO] [stdout]     --> /opt/rustwide/target/debug/build/Naive-SysY-Simulator-f5550d7775b568af/out/sysy.rs:7951:9
[INFO] [stdout]      |
[INFO] [stdout] 7951 |     (_, FuncCall, _): (usize, FuncCall, usize),
[INFO] [stdout]      |         ^^^^^^^^ help: convert the identifier to snake case: `func_call`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GlobalSymbolTable` is more private than the item `AssBuilder::build`
[INFO] [stdout]   --> src/codegen/build.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn build(&self, program: &Program, symbol_table: &mut GlobalSymbolTable) -> Result<Vec<String>, String>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `AssBuilder::build` is reachable at visibility `pub(in crate::codegen)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `GlobalSymbolTable` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/codegen/build.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct GlobalSymbolTable {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GlobalSymbolTable` is more private than the item `<koopa::ir::Program as AssBuilder>::build`
[INFO] [stdout]   --> src/codegen/build.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn build(&self, _: &Program, symbol_table: &mut GlobalSymbolTable) -> Result<Vec<String>, String> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<koopa::ir::Program as AssBuilder>::build` is reachable at visibility `pub(in crate::codegen)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `GlobalSymbolTable` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/codegen/build.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct GlobalSymbolTable {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GlobalSymbolTable` is more private than the item `<koopa::ir::FunctionData as AssBuilder>::build`
[INFO] [stdout]   --> src/codegen/build.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn build(&self, program: &Program, symbol_table: &mut GlobalSymbolTable) -> Result<Vec<String>, String> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<koopa::ir::FunctionData as AssBuilder>::build` is reachable at visibility `pub(in crate::codegen)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `GlobalSymbolTable` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/codegen/build.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct GlobalSymbolTable {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `GlobalSymbolTable` is more private than the item `<ValueData as AssBuilder>::build`
[INFO] [stdout]     --> src/codegen/build.rs:1398:5
[INFO] [stdout]      |
[INFO] [stdout] 1398 |     fn build(&self, program: &Program, symbol_table: &mut GlobalSymbolTable) -> Result<Vec<String>, String> {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `<ValueData as AssBuilder>::build` is reachable at visibility `pub(in crate::codegen)`
[INFO] [stdout]      |
[INFO] [stdout] note: but type `GlobalSymbolTable` is only usable at visibility `pub(self)`
[INFO] [stdout]     --> src/codegen/build.rs:21:1
[INFO] [stdout]      |
[INFO] [stdout]   21 | struct GlobalSymbolTable {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GenerateAsm` is never used
[INFO] [stdout]   --> src/codegen/generate.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait GenerateAsm {
[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 `PARA_REG` is never used
[INFO] [stdout]    --> src/codegen/generate.rs:105:11
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub const PARA_REG: [Reg; 8] = [
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Context` is never constructed
[INFO] [stdout]   --> src/codegen/env.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Context<'a> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/codegen/env.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl<'a> Context<'a> {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(program: &'a Program) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Env` is never constructed
[INFO] [stdout]   --> src/codegen/env.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct Env<'a> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/codegen/env.rs:50:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl<'a> Env<'a> {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  50 |     pub fn new(program: &'a Program) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn find_global_name(&mut self, val: Value) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn print_state(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn move_inst(&mut self, asm_bb: &mut AsmLocal, val: Value, rd: Option<Reg>) -> Reg {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     fn move_inst_to(&mut self, asm_bb: &mut AsmLocal, inst: Value, dst: Option<Reg>) -> Reg {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn build_inst(&mut self, asm_bb: &mut AsmLocal, val: Value, rd: Option<Reg>, kind: &ValueKind) 
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn build_int(&mut self, asm_bb: &mut AsmLocal, val:Value, int: values::Integer, rd: Option<Reg>) 
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn build_ret(&mut self, asm_bb: &mut AsmLocal, val: Value, ret: &values::Return, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn build_func_arg_ref(&mut self, asm_bb: &mut AsmLocal, val: Value, funargref: values::FuncArgRef) -> Option<Reg> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn build_binary(&mut self, asm_bb: &mut AsmLocal, val: Value, bin: &values::Binary, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn build_branch(&mut self, asm_bb: &mut AsmLocal, val: Value, branch: &values::Branch, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn build_jump(&mut self, asm_bb: &mut AsmLocal, val: Value, jump: &values::Jump, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn build_store(&mut self, asm_bb: &mut AsmLocal, val: Value, store: &values::Store, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub fn build_load(&mut self, asm_bb: &mut AsmLocal, val: Value, load: &values::Load, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub fn build_call(&mut self, asm_bb: &mut AsmLocal, val: Value, call: &values::Call, rd: Option<Reg>) -> Option<Reg> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn build_get_ptr(&mut self, asm_bb: &mut AsmLocal, val : Value, getptr: &values::GetPtr, dst: Option<Reg>) -> Option<Reg>{
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 419 |     pub fn build_getelem_ptr(&mut self, asm_bb: &mut AsmLocal, val : Value, getelem : &values::GetElemPtr, dst: Option<Reg>) -> Opt...
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 477 |     pub fn build_global_alloc(&mut self, asm_prog: &mut AsmProgram, val: Value) -> AsmGlobalDef {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 521 |     pub fn build_aggregate(&mut self, asm_prog: &mut AsmProgram, arr: &values::Aggregate, vec: &mut Vec<InitVal>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_random_string` is never used
[INFO] [stdout]    --> src/codegen/env.rs:537:8
[INFO] [stdout]     |
[INFO] [stdout] 537 | pub fn generate_random_string(length: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AsmProgram` is never constructed
[INFO] [stdout]  --> src/codegen/asm.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct AsmProgram {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AsmGlobalDef` is never constructed
[INFO] [stdout]   --> src/codegen/asm.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct AsmGlobalDef {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AsmGlobal` is never constructed
[INFO] [stdout]   --> src/codegen/asm.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct AsmGlobal {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Section` is never used
[INFO] [stdout]   --> src/codegen/asm.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum Section {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AsmLocal` is never constructed
[INFO] [stdout]   --> src/codegen/asm.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct AsmLocal {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push_global`, `push_globaldef`, and `emit_asm` are never used
[INFO] [stdout]   --> src/codegen/asm.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl AsmProgram {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 41 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn push_global(&mut self, global: AsmGlobal) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn push_globaldef(&mut self, globaldef: AsmGlobalDef) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn emit_asm(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `emit_asm` is never used
[INFO] [stdout]    --> src/codegen/asm.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | impl AsmGlobalDef {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] 109 |     pub fn emit_asm(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push_local`, and `emit_asm` are never used
[INFO] [stdout]    --> src/codegen/asm.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | impl AsmGlobal {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 141 |     pub fn new(section: Section, label: Label) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn push_local(&mut self, local: AsmLocal) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn emit_asm(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_imm12` is never used
[INFO] [stdout]    --> src/codegen/asm.rs:181:8
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub fn is_imm12(imm: i32) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/codegen/asm.rs:186:12
[INFO] [stdout]     |
[INFO] [stdout] 185 | impl AsmLocal {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 186 |     pub fn new(label: Option<Label>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn push_inst(&mut self, inst: Inst) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn beqz_inst(&mut self, rs: Reg, label: String) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn bnez_inst(&mut self, rs: Reg, label: String) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn J_inst(&mut self, label: String) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn call_inst(&mut self, label: String) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn ret_inst(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn lw_inst(&mut self, rd: Reg, imm: i32, rs: Reg) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn sw_inst(&mut self, rs: Reg, imm: i32, rd: Reg) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn add_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn addi_inst(&mut self, rd: Reg, rs: Reg, imm: i32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn sub_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn slt_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn sgt_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn seqz_inst(&mut self, rd: Reg, rs: Reg) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn snez_inst(&mut self, rd: Reg, rs: Reg) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     pub fn xor_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn xori_inst(&mut self, rd: Reg, rs: Reg, imm: i32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn or_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn ori_inst(&mut self, rd: Reg, rs: Reg, imm: i32) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub fn and_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn andi_inst(&mut self, rd: Reg, rs: Reg, imm: i32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn sll_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     pub fn srl_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub fn sra_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn mul_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn div_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub fn rem_inst(&mut self, rd: Reg, rs1: Reg, rs2: Reg) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn li_inst(&mut self, rd: Reg, imm: i32) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub fn la_inst(&mut self, rd: Reg, label: String) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub fn mv_inst(&mut self, rd: Reg, rs: Reg) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn muli_inst(&mut self, rd: Reg, rs: Reg, imm: i32) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     pub fn emit_asm(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Imm12` is never used
[INFO] [stdout]  --> src/codegen/instruction.rs:1:6
[INFO] [stdout]   |
[INFO] [stdout] 1 | type Imm12 = i32;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Imm32` is never used
[INFO] [stdout]  --> src/codegen/instruction.rs:2:6
[INFO] [stdout]   |
[INFO] [stdout] 2 | type Imm32 = i32;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Reg` is never used
[INFO] [stdout]  --> src/codegen/instruction.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type Reg = &'static str;
[INFO] [stdout]   |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Inst` is never used
[INFO] [stdout]   --> src/codegen/instruction.rs:28:10
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum Inst {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reg2idx` is never used
[INFO] [stdout]   --> src/codegen/instruction.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn reg2idx(reg: Reg) -> usize {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REG_NAME` is never used
[INFO] [stdout]   --> src/codegen/instruction.rs:77:7
[INFO] [stdout]    |
[INFO] [stdout] 77 | const REG_NAME: [Reg; 32] = [
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `idx2reg` is never used
[INFO] [stdout]   --> src/codegen/instruction.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn idx2reg(idx: usize) -> Reg {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `emit_asm` is never used
[INFO] [stdout]   --> src/codegen/instruction.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 89 | impl Inst {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 90 |     pub fn emit_asm(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Label` is never constructed
[INFO] [stdout]  --> src/codegen/label.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Label {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `name`, and `to_string` are never used
[INFO] [stdout]   --> src/codegen/label.rs:7:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl Label {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout]  7 |     pub fn new(name: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn name(&self) -> &str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn to_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Descriptor` is never used
[INFO] [stdout]  --> src/codegen/table.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | enum Descriptor {
[INFO] [stdout]   |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DescriptorTable` is never constructed
[INFO] [stdout]   --> src/codegen/table.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct DescriptorTable {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_reg`, `free_reg`, `alloc_reg`, and `reg_move_to` are never used
[INFO] [stdout]   --> src/codegen/table.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl DescriptorTable {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 18 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn get_reg(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn free_reg(&mut self, val: Value, reg: Reg) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn alloc_reg(&mut self, val: Value, rd: Option<Reg>) -> Reg {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn reg_move_to(&mut self, rs: Reg, rd: Reg) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InitVal` is never used
[INFO] [stdout]  --> src/codegen/array.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum InitVal {
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create_bi_inst` and `insert_int_inst` are never used
[INFO] [stdout]   --> src/irgen/env.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl Context {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn create_bi_inst(&mut self, op: BinaryOp, lhs: Value, rhs: Value) -> Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn insert_int_inst(&mut self, num: i32) -> Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `create_var` is never used
[INFO] [stdout]    --> src/irgen/env.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl Env {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn create_var(&mut self, ident: &String, val: Option<Value>) -> () {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_scope` is never used
[INFO] [stdout]    --> src/irgen/scope.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl Scope {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn print_scope(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_pointer`, `dims`, and `value` are never read
[INFO] [stdout]    --> src/irgen/scope.rs:166:5
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub struct ArrayVar {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 165 |     ident: Ident,
[INFO] [stdout] 166 |     is_pointer: bool,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 167 |     dims: Vec<i32>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 168 |     value: Option<Value>, // alloc in Koopa IR
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ArrayVar` 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: field `value` is never read
[INFO] [stdout]    --> src/irgen/scope.rs:181:5
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub struct NormalVar {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 180 |     ident: Ident,
[INFO] [stdout] 181 |     value: Option<Value>, // alloc in Koopa IR
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NormalVar` 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: field `value` is never read
[INFO] [stdout]    --> src/irgen/scope.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub struct ConstVar {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 186 |     ident: Ident,
[INFO] [stdout] 187 |     value: i32,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConstVar` 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: field `value` is never read
[INFO] [stdout]    --> src/irgen/scope.rs:193:5
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub struct FuncVar {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 192 |     ident: Ident,
[INFO] [stdout] 193 |     value: Option<Function>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FuncVar` 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: methods `is_const`, `const_value`, `value`, and `func_value` are never used
[INFO] [stdout]    --> src/irgen/scope.rs:246:12
[INFO] [stdout]     |
[INFO] [stdout] 212 | impl Var {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn is_const(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     fn const_value(&self) -> Option<i32> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     fn value(&self) -> Option<Value> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     fn func_value(&self) -> Option<Function> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/irgen/loopstack.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl LoopStack {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 10 |     pub fn new() -> LoopStack {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ty` is never read
[INFO] [stdout]   --> src/irgen/ast_df.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct FuncFParam {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 28 |     pub ty: BType,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FuncFParam` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MEM_SIZE` is never used
[INFO] [stdout]  --> src/simulator/cpu.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const MEM_SIZE: usize = 0x80_00000; 
[INFO] [stdout]   |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ImageLoadFailed` is never constructed
[INFO] [stdout]   --> src/simulator/mem.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum MemoryError {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     ImageLoadFailed,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MemoryError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `load_elf` and `print_elf` are never used
[INFO] [stdout]    --> src/simulator/mem.rs:184:12
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl Memory {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn load_elf(&mut self, path: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn print_elf(&self, path: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MEM_SIZE` is never used
[INFO] [stdout]   --> src/simulator/pipe.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const MEM_SIZE: usize = 0x80_00000; 
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `debug_mode` is never read
[INFO] [stdout]   --> src/simulator/pipe.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Pipeline {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 16 |     pub cpu: CPUState,
[INFO] [stdout] 17 |     pub debug_mode: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pipe_check_rv64m` is never used
[INFO] [stdout]    --> src/simulator/pipe.rs:177:8
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl Pipeline {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 177 |     fn pipe_check_rv64m(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trunc` is never used
[INFO] [stdout]   --> src/simulator/decode.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn trunc(s: u64) -> u64 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_hex_address` is never used
[INFO] [stdout]    --> src/simulator/gui.rs:245:4
[INFO] [stdout]     |
[INFO] [stdout] 245 | fn parse_hex_address(s: &str) -> Result<u64, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `J_inst` should have a snake case name
[INFO] [stdout]    --> src/codegen/asm.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 |     pub fn J_inst(&mut self, label: String) {
[INFO] [stdout]     |            ^^^^^^ help: convert the identifier to snake case: `j_inst`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/simulator/mod.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     gui::run_gui(output);
[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] 23 |     let _ = gui::run_gui(output);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `D_reg` should have a snake case name
[INFO] [stdout]   --> src/simulator/pipe.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub D_reg: IFIDReg,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `d_reg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `E_reg` should have a snake case name
[INFO] [stdout]   --> src/simulator/pipe.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub E_reg: IDEXReg,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `e_reg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `M_reg` should have a snake case name
[INFO] [stdout]   --> src/simulator/pipe.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub M_reg: EXMEMReg,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case: `m_reg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `W_reg` should have a snake case name
[INFO] [stdout]   --> src/simulator/pipe.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub W_reg: MEMWBReg,
[INFO] [stdout]    |         ^^^^^ help: convert the identifier to snake case (notice the capitalization): `w_reg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `FuncCall` should have a snake case name
[INFO] [stdout]     --> /opt/rustwide/target/debug/build/Naive-SysY-Simulator-f5550d7775b568af/out/sysy.rs:7951:9
[INFO] [stdout]      |
[INFO] [stdout] 7951 |     (_, FuncCall, _): (usize, FuncCall, usize),
[INFO] [stdout]      |         ^^^^^^^^ help: convert the identifier to snake case: `func_call`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 08s
[INFO] running `Command { std: "docker" "inspect" "82eb6e03f0df0360463265995803254707255b9ebcae06845b41f3ab63767035", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "82eb6e03f0df0360463265995803254707255b9ebcae06845b41f3ab63767035", kill_on_drop: false }`
[INFO] [stdout] 82eb6e03f0df0360463265995803254707255b9ebcae06845b41f3ab63767035
