[INFO] cloning repository https://github.com/Chinesezjc/SysY
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Chinesezjc/SysY" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FChinesezjc%2FSysY", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FChinesezjc%2FSysY'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a86dd05902cb56f4c9fe25d6e9a8146ba7937185
[INFO] testing Chinesezjc/SysY against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FChinesezjc%2FSysY" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Chinesezjc/SysY
[INFO] finished tweaking git repo https://github.com/Chinesezjc/SysY
[INFO] tweaked toml for git repo https://github.com/Chinesezjc/SysY written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Chinesezjc/SysY on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Chinesezjc/SysY 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" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5552785d78b3323e67e429190046d305613bf5ec05dd8d85f477301dc41e866e
[INFO] running `Command { std: "docker" "start" "5552785d78b3323e67e429190046d305613bf5ec05dd8d85f477301dc41e866e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5552785d78b3323e67e429190046d305613bf5ec05dd8d85f477301dc41e866e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5552785d78b3323e67e429190046d305613bf5ec05dd8d85f477301dc41e866e" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5552785d78b3323e67e429190046d305613bf5ec05dd8d85f477301dc41e866e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5552785d78b3323e67e429190046d305613bf5ec05dd8d85f477301dc41e866e" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling compiler v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/ir.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[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: `IrFuncPass`
[INFO] [stdout]  --> src/codegen.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::opt::{self, IrFuncPass, IrProgramPass};
[INFO] [stdout]   |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ast_to_ir.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let mut builder = IrBuilder::new(func_idx, Vec::new(), ret_type,
[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: `bi`
[INFO] [stdout]    --> src/ir_to_koopa.rs:130:10
[INFO] [stdout]     |
[INFO] [stdout] 130 |     for (bi, block) in func.blocks.iter().enumerate() {
[INFO] [stdout]     |          ^^ help: if this is intentional, prefix it with an underscore: `_bi`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args_track`
[INFO] [stdout]    --> src/ir_to_riscv.rs:516:17
[INFO] [stdout]     |
[INFO] [stdout] 516 |             let args_track = false; // args go through a0 which would clobber cached regs
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_args_track`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/opt/gvn.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let mut rep = |op: &mut IrOperand| {
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/opt/inline.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let mut funcs_removed: HashSet<usize> = HashSet::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `program`
[INFO] [stdout]    --> src/opt/inline.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 |     program: &IrProgram,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/opt/inline.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |     let mut rep = |op: &mut IrOperand| {
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_arrays_or_calls`
[INFO] [stdout]    --> src/ssa.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let has_arrays_or_calls = func.blocks.iter().any(|b| b.instrs.iter().any(|i| {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_arrays_or_calls`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `gen_index_expr` and `flatten_init_vals` are never used
[INFO] [stdout]    --> src/ast_to_ir.rs:788:8
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl AstToIr {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 788 |     fn gen_index_expr(&mut self, array: &Expr, index: &Expr) -> CompilerResult<IrOperand> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 959 |     fn flatten_init_vals(dims: &[i32], init: &Expr, vals: &mut Vec<i32>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `block_index` is never read
[INFO] [stdout]  --> src/cfg.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Cfg {
[INFO] [stdout]   |            --- field in this struct
[INFO] [stdout] 8 |     /// Maps block label index → position in the function's block list.
[INFO] [stdout] 9 |     pub block_index: HashMap<usize, usize>,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> src/cfg.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Cfg {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dest_mut` is never used
[INFO] [stdout]    --> src/ir.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 197 | impl IrInst {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn dest_mut(&mut self) -> Option<&mut usize> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `allocas` is never read
[INFO] [stdout]    --> src/ir.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 274 | pub struct IrFunc {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub allocas: Vec<(usize, IrType)>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IrFunc` 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 `intern_local`, `intern_block`, `local_name`, `find_func_mut`, `global_by_name`, and `func_by_name` are never used
[INFO] [stdout]    --> src/ir.rs:346:12
[INFO] [stdout]     |
[INFO] [stdout] 331 | impl IrProgram {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 346 |     pub fn intern_local(&mut self, name: String) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn intern_block(&mut self, name: String) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn local_name(&self, idx: usize) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub fn find_func_mut(&mut self, name_idx: usize) -> Option<&mut IrFunc> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     pub fn global_by_name(&self, name: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 |     pub fn func_by_name(&self, name: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `func_counter` is never read
[INFO] [stdout]   --> src/ir_builder.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct IrBuilder {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     func_counter: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/ir_builder.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl IrBuilder {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn intern_local(&mut self, name: String) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn intern_block(&mut self, name: String) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn intern_func(&mut self, name: String) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn local_name(&self, idx: usize) -> &str { &self.local_names[idx] }
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 154 |     pub fn global_name(&self, idx: usize) -> &str { &self.global_names[idx] }
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 155 |     pub fn block_name(&self, idx: usize) -> &str { &self.block_names[idx] }
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 156 |     pub fn func_name(&self, idx: usize) -> &str { &self.func_names[idx] }
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn cur_block_idx(&self) -> usize { self.cur_block }
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn emit_alloc(&mut self, dest: usize, ty: IrType) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn emit_phi(&mut self, incoming: Vec<(IrOperand, usize)>) -> IrOperand {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/opt/mod.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait IrFuncPass {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] 12 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/opt/mod.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait IrProgramPass {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] 19 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_program_pass` is never used
[INFO] [stdout]   --> src/opt/mod.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl PassManager {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn add_program_pass(&mut self, pass: Box<dyn IrProgramPass>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_limit` is never used
[INFO] [stdout]   --> src/opt/inline.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Inline {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Self { Inline { max_instrs: 50 } }
[INFO] [stdout] 17 |     pub fn with_limit(max_instrs: usize) -> Self { Inline { max_instrs } }
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `peek_next_kind` is never used
[INFO] [stdout]    --> src/parser.rs:753:8
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl Parser {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 753 |     fn peek_next_kind(&self) -> &TokenKind {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `try_alloc_a0`, `mark_clean`, and `flush_dirty` are never used
[INFO] [stdout]    --> src/reg_alloc.rs:149:12
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl RegTracker {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn try_alloc_a0(&mut self) -> Option<(String, Option<(usize, bool)>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn mark_clean(&mut self, local: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn flush_dirty(&mut self) -> Vec<(usize, String)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.22s
[INFO] running `Command { std: "docker" "inspect" "5552785d78b3323e67e429190046d305613bf5ec05dd8d85f477301dc41e866e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5552785d78b3323e67e429190046d305613bf5ec05dd8d85f477301dc41e866e" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/ir.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[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: `IrFuncPass`
[INFO] [stdout]  --> src/codegen.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::opt::{self, IrFuncPass, IrProgramPass};
[INFO] [stdout]   |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ast_to_ir.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let mut builder = IrBuilder::new(func_idx, Vec::new(), ret_type,
[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: `bi`
[INFO] [stdout]    --> src/ir_to_koopa.rs:130:10
[INFO] [stdout]     |
[INFO] [stdout] 130 |     for (bi, block) in func.blocks.iter().enumerate() {
[INFO] [stdout]     |          ^^ help: if this is intentional, prefix it with an underscore: `_bi`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args_track`
[INFO] [stdout]    --> src/ir_to_riscv.rs:516:17
[INFO] [stdout]     |
[INFO] [stdout] 516 |             let args_track = false; // args go through a0 which would clobber cached regs
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_args_track`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/opt/gvn.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let mut rep = |op: &mut IrOperand| {
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/opt/inline.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let mut funcs_removed: HashSet<usize> = HashSet::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `program`
[INFO] [stdout]    --> src/opt/inline.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 |     program: &IrProgram,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/opt/inline.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |     let mut rep = |op: &mut IrOperand| {
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_arrays_or_calls`
[INFO] [stdout]    --> src/ssa.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let has_arrays_or_calls = func.blocks.iter().any(|b| b.instrs.iter().any(|i| {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_arrays_or_calls`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `gen_index_expr` and `flatten_init_vals` are never used
[INFO] [stdout]    --> src/ast_to_ir.rs:788:8
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl AstToIr {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 788 |     fn gen_index_expr(&mut self, array: &Expr, index: &Expr) -> CompilerResult<IrOperand> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 959 |     fn flatten_init_vals(dims: &[i32], init: &Expr, vals: &mut Vec<i32>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `block_index` is never read
[INFO] [stdout]  --> src/cfg.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Cfg {
[INFO] [stdout]   |            --- field in this struct
[INFO] [stdout] 8 |     /// Maps block label index → position in the function's block list.
[INFO] [stdout] 9 |     pub block_index: HashMap<usize, usize>,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> src/cfg.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Cfg {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dest_mut` is never used
[INFO] [stdout]    --> src/ir.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 197 | impl IrInst {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn dest_mut(&mut self) -> Option<&mut usize> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `allocas` is never read
[INFO] [stdout]    --> src/ir.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 274 | pub struct IrFunc {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub allocas: Vec<(usize, IrType)>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IrFunc` 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 `intern_local`, `intern_block`, `local_name`, `find_func_mut`, `global_by_name`, and `func_by_name` are never used
[INFO] [stdout]    --> src/ir.rs:346:12
[INFO] [stdout]     |
[INFO] [stdout] 331 | impl IrProgram {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 346 |     pub fn intern_local(&mut self, name: String) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn intern_block(&mut self, name: String) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn local_name(&self, idx: usize) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub fn find_func_mut(&mut self, name_idx: usize) -> Option<&mut IrFunc> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     pub fn global_by_name(&self, name: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 |     pub fn func_by_name(&self, name: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `func_counter` is never read
[INFO] [stdout]   --> src/ir_builder.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct IrBuilder {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     func_counter: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling compiler v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/ir_builder.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl IrBuilder {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn intern_local(&mut self, name: String) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn intern_block(&mut self, name: String) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn intern_func(&mut self, name: String) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn local_name(&self, idx: usize) -> &str { &self.local_names[idx] }
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 154 |     pub fn global_name(&self, idx: usize) -> &str { &self.global_names[idx] }
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 155 |     pub fn block_name(&self, idx: usize) -> &str { &self.block_names[idx] }
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 156 |     pub fn func_name(&self, idx: usize) -> &str { &self.func_names[idx] }
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn cur_block_idx(&self) -> usize { self.cur_block }
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn emit_alloc(&mut self, dest: usize, ty: IrType) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn emit_phi(&mut self, incoming: Vec<(IrOperand, usize)>) -> IrOperand {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/opt/mod.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait IrFuncPass {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] 12 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/opt/mod.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait IrProgramPass {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] 19 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_program_pass` is never used
[INFO] [stdout]   --> src/opt/mod.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl PassManager {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn add_program_pass(&mut self, pass: Box<dyn IrProgramPass>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_limit` is never used
[INFO] [stdout]   --> src/opt/inline.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Inline {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Self { Inline { max_instrs: 50 } }
[INFO] [stdout] 17 |     pub fn with_limit(max_instrs: usize) -> Self { Inline { max_instrs } }
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `peek_next_kind` is never used
[INFO] [stdout]    --> src/parser.rs:753:8
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl Parser {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 753 |     fn peek_next_kind(&self) -> &TokenKind {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `try_alloc_a0`, `mark_clean`, and `flush_dirty` are never used
[INFO] [stdout]    --> src/reg_alloc.rs:149:12
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl RegTracker {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn try_alloc_a0(&mut self) -> Option<(String, Option<(usize, bool)>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn mark_clean(&mut self, local: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn flush_dirty(&mut self) -> Vec<(usize, String)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/ir.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[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: `IrFuncPass`
[INFO] [stdout]  --> src/codegen.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::opt::{self, IrFuncPass, IrProgramPass};
[INFO] [stdout]   |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ast_to_ir.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let mut builder = IrBuilder::new(func_idx, Vec::new(), ret_type,
[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: `bi`
[INFO] [stdout]    --> src/ir_to_koopa.rs:130:10
[INFO] [stdout]     |
[INFO] [stdout] 130 |     for (bi, block) in func.blocks.iter().enumerate() {
[INFO] [stdout]     |          ^^ help: if this is intentional, prefix it with an underscore: `_bi`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `args_track`
[INFO] [stdout]    --> src/ir_to_riscv.rs:516:17
[INFO] [stdout]     |
[INFO] [stdout] 516 |             let args_track = false; // args go through a0 which would clobber cached regs
[INFO] [stdout]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_args_track`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/opt/gvn.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let mut rep = |op: &mut IrOperand| {
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/opt/inline.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let mut funcs_removed: HashSet<usize> = HashSet::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `program`
[INFO] [stdout]    --> src/opt/inline.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 |     program: &IrProgram,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/opt/inline.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |     let mut rep = |op: &mut IrOperand| {
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_arrays_or_calls`
[INFO] [stdout]    --> src/ssa.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let has_arrays_or_calls = func.blocks.iter().any(|b| b.instrs.iter().any(|i| {
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_arrays_or_calls`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `gen_index_expr` and `flatten_init_vals` are never used
[INFO] [stdout]    --> src/ast_to_ir.rs:788:8
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl AstToIr {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 788 |     fn gen_index_expr(&mut self, array: &Expr, index: &Expr) -> CompilerResult<IrOperand> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 959 |     fn flatten_init_vals(dims: &[i32], init: &Expr, vals: &mut Vec<i32>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `block_index` is never read
[INFO] [stdout]  --> src/cfg.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Cfg {
[INFO] [stdout]   |            --- field in this struct
[INFO] [stdout] 8 |     /// Maps block label index → position in the function's block list.
[INFO] [stdout] 9 |     pub block_index: HashMap<usize, usize>,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> src/cfg.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Cfg {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `dest_mut` is never used
[INFO] [stdout]    --> src/ir.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 197 | impl IrInst {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn dest_mut(&mut self) -> Option<&mut usize> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `allocas` is never read
[INFO] [stdout]    --> src/ir.rs:282:9
[INFO] [stdout]     |
[INFO] [stdout] 274 | pub struct IrFunc {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub allocas: Vec<(usize, IrType)>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IrFunc` 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 `local_name`, `find_func_mut`, `global_by_name`, and `func_by_name` are never used
[INFO] [stdout]    --> src/ir.rs:376:12
[INFO] [stdout]     |
[INFO] [stdout] 331 | impl IrProgram {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn local_name(&self, idx: usize) -> &str {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub fn find_func_mut(&mut self, name_idx: usize) -> Option<&mut IrFunc> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     pub fn global_by_name(&self, name: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 |     pub fn func_by_name(&self, name: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `func_counter` is never read
[INFO] [stdout]   --> src/ir_builder.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct IrBuilder {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     func_counter: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/ir_builder.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl IrBuilder {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn intern_local(&mut self, name: String) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn intern_block(&mut self, name: String) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn intern_func(&mut self, name: String) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn local_name(&self, idx: usize) -> &str { &self.local_names[idx] }
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 154 |     pub fn global_name(&self, idx: usize) -> &str { &self.global_names[idx] }
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 155 |     pub fn block_name(&self, idx: usize) -> &str { &self.block_names[idx] }
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 156 |     pub fn func_name(&self, idx: usize) -> &str { &self.func_names[idx] }
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn cur_block_idx(&self) -> usize { self.cur_block }
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn emit_alloc(&mut self, dest: usize, ty: IrType) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn emit_phi(&mut self, incoming: Vec<(IrOperand, usize)>) -> IrOperand {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/opt/mod.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait IrFuncPass {
[INFO] [stdout]    |           ---------- method in this trait
[INFO] [stdout] 12 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/opt/mod.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub trait IrProgramPass {
[INFO] [stdout]    |           ------------- method in this trait
[INFO] [stdout] 19 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_program_pass` is never used
[INFO] [stdout]   --> src/opt/mod.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl PassManager {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn add_program_pass(&mut self, pass: Box<dyn IrProgramPass>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_limit` is never used
[INFO] [stdout]   --> src/opt/inline.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Inline {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Self { Inline { max_instrs: 50 } }
[INFO] [stdout] 17 |     pub fn with_limit(max_instrs: usize) -> Self { Inline { max_instrs } }
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `peek_next_kind` is never used
[INFO] [stdout]    --> src/parser.rs:753:8
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl Parser {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 753 |     fn peek_next_kind(&self) -> &TokenKind {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `try_alloc_a0`, `mark_clean`, and `flush_dirty` are never used
[INFO] [stdout]    --> src/reg_alloc.rs:149:12
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl RegTracker {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn try_alloc_a0(&mut self) -> Option<(String, Option<(usize, bool)>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn mark_clean(&mut self, local: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn flush_dirty(&mut self) -> Vec<(usize, String)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.71s
[INFO] running `Command { std: "docker" "inspect" "5552785d78b3323e67e429190046d305613bf5ec05dd8d85f477301dc41e866e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5552785d78b3323e67e429190046d305613bf5ec05dd8d85f477301dc41e866e" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/ir.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `IrFuncPass`
[INFO] [stderr]  --> src/codegen.rs:6:24
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::opt::{self, IrFuncPass, IrProgramPass};
[INFO] [stderr]   |                        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/ast_to_ir.rs:188:13
[INFO] [stderr]     |
[INFO] [stderr] 188 |         let mut builder = IrBuilder::new(func_idx, Vec::new(), ret_type,
[INFO] [stderr]     |             ----^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bi`
[INFO] [stderr]    --> src/ir_to_koopa.rs:130:10
[INFO] [stderr]     |
[INFO] [stderr] 130 |     for (bi, block) in func.blocks.iter().enumerate() {
[INFO] [stderr]     |          ^^ help: if this is intentional, prefix it with an underscore: `_bi`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `args_track`
[INFO] [stderr]    --> src/ir_to_riscv.rs:516:17
[INFO] [stderr]     |
[INFO] [stderr] 516 |             let args_track = false; // args go through a0 which would clobber cached regs
[INFO] [stderr]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_args_track`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/opt/gvn.rs:93:9
[INFO] [stderr]    |
[INFO] [stderr] 93 |     let mut rep = |op: &mut IrOperand| {
[INFO] [stderr]    |         ----^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/opt/inline.rs:41:13
[INFO] [stderr]    |
[INFO] [stderr] 41 |         let mut funcs_removed: HashSet<usize> = HashSet::new();
[INFO] [stderr]    |             ----^^^^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `program`
[INFO] [stderr]    --> src/opt/inline.rs:150:5
[INFO] [stderr]     |
[INFO] [stderr] 150 |     program: &IrProgram,
[INFO] [stderr]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/opt/inline.rs:195:9
[INFO] [stderr]     |
[INFO] [stderr] 195 |     let mut rep = |op: &mut IrOperand| {
[INFO] [stderr]     |         ----^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `has_arrays_or_calls`
[INFO] [stderr]    --> src/ssa.rs:126:13
[INFO] [stderr]     |
[INFO] [stderr] 126 |         let has_arrays_or_calls = func.blocks.iter().any(|b| b.instrs.iter().any(|i| {
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_arrays_or_calls`
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `gen_index_expr` and `flatten_init_vals` are never used
[INFO] [stderr]    --> src/ast_to_ir.rs:788:8
[INFO] [stderr]     |
[INFO] [stderr]  42 | impl AstToIr {
[INFO] [stderr]     | ------------ associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 788 |     fn gen_index_expr(&mut self, array: &Expr, index: &Expr) -> CompilerResult<IrOperand> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 959 |     fn flatten_init_vals(dims: &[i32], init: &Expr, vals: &mut Vec<i32>) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `block_index` is never read
[INFO] [stderr]  --> src/cfg.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub struct Cfg {
[INFO] [stderr]   |            --- field in this struct
[INFO] [stderr] 8 |     /// Maps block label index → position in the function's block list.
[INFO] [stderr] 9 |     pub block_index: HashMap<usize, usize>,
[INFO] [stderr]   |         ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_empty` is never used
[INFO] [stderr]   --> src/cfg.rs:88:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl Cfg {
[INFO] [stderr]    | -------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 88 |     pub fn is_empty(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `dest_mut` is never used
[INFO] [stderr]    --> src/ir.rs:223:12
[INFO] [stderr]     |
[INFO] [stderr] 197 | impl IrInst {
[INFO] [stderr]     | ----------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 223 |     pub fn dest_mut(&mut self) -> Option<&mut usize> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `allocas` is never read
[INFO] [stderr]    --> src/ir.rs:282:9
[INFO] [stderr]     |
[INFO] [stderr] 274 | pub struct IrFunc {
[INFO] [stderr]     |            ------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 282 |     pub allocas: Vec<(usize, IrType)>,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `IrFunc` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `intern_local`, `intern_block`, `local_name`, `find_func_mut`, `global_by_name`, and `func_by_name` are never used
[INFO] [stderr]    --> src/ir.rs:346:12
[INFO] [stderr]     |
[INFO] [stderr] 331 | impl IrProgram {
[INFO] [stderr]     | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 346 |     pub fn intern_local(&mut self, name: String) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 362 |     pub fn intern_block(&mut self, name: String) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 376 |     pub fn local_name(&self, idx: usize) -> &str {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 396 |     pub fn find_func_mut(&mut self, name_idx: usize) -> Option<&mut IrFunc> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 401 |     pub fn global_by_name(&self, name: &str) -> Option<usize> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 406 |     pub fn func_by_name(&self, name: &str) -> Option<usize> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `func_counter` is never read
[INFO] [stderr]   --> src/ir_builder.rs:44:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub struct IrBuilder {
[INFO] [stderr]    |            --------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 44 |     func_counter: usize,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/ir_builder.rs:130:12
[INFO] [stderr]     |
[INFO] [stderr]  51 | impl IrBuilder {
[INFO] [stderr]     | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 130 |     pub fn intern_local(&mut self, name: String) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 137 |     pub fn intern_block(&mut self, name: String) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 144 |     pub fn intern_func(&mut self, name: String) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 153 |     pub fn local_name(&self, idx: usize) -> &str { &self.local_names[idx] }
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 154 |     pub fn global_name(&self, idx: usize) -> &str { &self.global_names[idx] }
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 155 |     pub fn block_name(&self, idx: usize) -> &str { &self.block_names[idx] }
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 156 |     pub fn func_name(&self, idx: usize) -> &str { &self.func_names[idx] }
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 160 |     pub fn cur_block_idx(&self) -> usize { self.cur_block }
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 189 |     pub fn emit_alloc(&mut self, dest: usize, ty: IrType) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 245 |     pub fn emit_phi(&mut self, incoming: Vec<(IrOperand, usize)>) -> IrOperand {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `name` is never used
[INFO] [stderr]   --> src/opt/mod.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub trait IrFuncPass {
[INFO] [stderr]    |           ---------- method in this trait
[INFO] [stderr] 12 |     fn name(&self) -> &str;
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `name` is never used
[INFO] [stderr]   --> src/opt/mod.rs:19:8
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub trait IrProgramPass {
[INFO] [stderr]    |           ------------- method in this trait
[INFO] [stderr] 19 |     fn name(&self) -> &str;
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `add_program_pass` is never used
[INFO] [stderr]   --> src/opt/mod.rs:42:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | impl PassManager {
[INFO] [stderr]    | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 42 |     pub fn add_program_pass(&mut self, pass: Box<dyn IrProgramPass>) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `with_limit` is never used
[INFO] [stderr]   --> src/opt/inline.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl Inline {
[INFO] [stderr]    | ----------- associated function in this implementation
[INFO] [stderr] 16 |     pub fn new() -> Self { Inline { max_instrs: 50 } }
[INFO] [stderr] 17 |     pub fn with_limit(max_instrs: usize) -> Self { Inline { max_instrs } }
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `peek_next_kind` is never used
[INFO] [stderr]    --> src/parser.rs:753:8
[INFO] [stderr]     |
[INFO] [stderr]  14 | impl Parser {
[INFO] [stderr]     | ----------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 753 |     fn peek_next_kind(&self) -> &TokenKind {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `try_alloc_a0`, `mark_clean`, and `flush_dirty` are never used
[INFO] [stderr]    --> src/reg_alloc.rs:149:12
[INFO] [stderr]     |
[INFO] [stderr]  29 | impl RegTracker {
[INFO] [stderr]     | --------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 149 |     pub fn try_alloc_a0(&mut self) -> Option<(String, Option<(usize, bool)>)> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 177 |     pub fn mark_clean(&mut self, local: usize) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 219 |     pub fn flush_dirty(&mut self) -> Vec<(usize, String)> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `compiler` (lib) generated 24 warnings (run `cargo fix --lib -p compiler` to apply 9 suggestions)
[INFO] [stderr] warning: methods `local_name`, `find_func_mut`, `global_by_name`, and `func_by_name` are never used
[INFO] [stderr]    --> src/ir.rs:376:12
[INFO] [stderr]     |
[INFO] [stderr] 331 | impl IrProgram {
[INFO] [stderr]     | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 376 |     pub fn local_name(&self, idx: usize) -> &str {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 396 |     pub fn find_func_mut(&mut self, name_idx: usize) -> Option<&mut IrFunc> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 401 |     pub fn global_by_name(&self, name: &str) -> Option<usize> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 406 |     pub fn func_by_name(&self, name: &str) -> Option<usize> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `compiler` (lib test) generated 24 warnings (23 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/compiler-94e4aba503821861)
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test ast_to_ir::tests::hex_and_octal ... ok
[INFO] [stdout] test ast_to_ir::tests::if_stmt ... ok
[INFO] [stdout] test ast_to_ir::tests::short_circuit_and ... ok
[INFO] [stdout] test ast_to_ir::tests::simple_main ... ok
[INFO] [stdout] test ast_to_ir::tests::var_decl_and_assign ... ok
[INFO] [stdout] test ir_to_koopa::tests::simple_program ... ok
[INFO] [stdout] test lexer::tests::lexes_comments_and_literals ... ok
[INFO] [stdout] test parser::tests::parses_const_and_var ... ok
[INFO] [stdout] test parser::tests::parses_expression_precedence ... ok
[INFO] [stdout] test parser::tests::parses_function_with_params ... ok
[INFO] [stdout] test ssa::tests::mem2reg_simple ... ok
[INFO] [stdout] test tests::compiles_to_riscv ... ok
[INFO] [stdout] test tests::compiles_to_koopa ... ok
[INFO] [stdout] test tests::koopair_matches_koopa ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tests::koopair_matches_koopa stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tests::koopair_matches_koopa' (243) panicked at src/lib.rs:64:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5d8bbf61e418 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5d8bbf61e418 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5d8bbf61e418 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5d8bbf61e418 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5d8bbf63265a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5d8bbf63265a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5d8bbf622e82 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5d8bbf622e82 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5d8bbf5fc906 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5d8bbf5fc906 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5d8bbf616449 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5d8bbf5b18ac - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5d8bbf5b18ac - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5d8bbf616602 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5d8bbf616602 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5d8bbf5fc9c2 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5d8bbf5f19d9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5d8bbf5fd6dd - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5d8bbf632dec - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5d8bbf632b62 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x5d8bbf597841 - <core[8fb95b77d25ab6c8]::result::Result<std[10d71ac2c42b111e]::fs::ReadDir, std[10d71ac2c42b111e]::io::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x5d8bbf597841 - compiler[72d5c365bc244ad]::tests::koopair_matches_koopa
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:64:14
[INFO] [stdout]   22:     0x5d8bbf592c57 - compiler[72d5c365bc244ad]::tests::koopair_matches_koopa::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:58:31
[INFO] [stdout]   23:     0x5d8bbf5539b6 - <compiler[72d5c365bc244ad]::tests::koopair_matches_koopa::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5d8bbf5a498b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5d8bbf5a498b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5d8bbf5b2205 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5d8bbf5b2205 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5d8bbf5b2205 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5d8bbf5b2205 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5d8bbf5b2205 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5d8bbf5b2205 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5d8bbf5b2205 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5d8bbf5abb14 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5d8bbf5abb14 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5d8bbf5b5282 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5d8bbf5b5282 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5d8bbf5b5282 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5d8bbf5b5282 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5d8bbf5b5282 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5d8bbf5b5282 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5d8bbf5b5282 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5d8bbf61da3f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   43:     0x5d8bbf61da3f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7cd1c362eaa4 - <unknown>
[INFO] [stdout]   45:     0x7cd1c36bba64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tests::koopair_matches_koopa
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 13 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "5552785d78b3323e67e429190046d305613bf5ec05dd8d85f477301dc41e866e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5552785d78b3323e67e429190046d305613bf5ec05dd8d85f477301dc41e866e", kill_on_drop: false }`
[INFO] [stdout] 5552785d78b3323e67e429190046d305613bf5ec05dd8d85f477301dc41e866e
