[INFO] cloning repository https://github.com/luigimagdamit/chai
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/luigimagdamit/chai" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fluigimagdamit%2Fchai", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fluigimagdamit%2Fchai'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ff2be8a59acb055a2ed99665df903c0d5d9f42c5
[INFO] building luigimagdamit/chai against try#d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6 for pr-146237-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fluigimagdamit%2Fchai" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/luigimagdamit/chai
[INFO] finished tweaking git repo https://github.com/luigimagdamit/chai
[INFO] tweaked toml for git repo https://github.com/luigimagdamit/chai written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/luigimagdamit/chai on toolchain d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/luigimagdamit/chai 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" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 50c600c751e0fdaaae430ecae53145bca7b1744084d6eea9262ceefcdd0253bb
[INFO] running `Command { std: "docker" "start" "-a" "50c600c751e0fdaaae430ecae53145bca7b1744084d6eea9262ceefcdd0253bb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "50c600c751e0fdaaae430ecae53145bca7b1744084d6eea9262ceefcdd0253bb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "50c600c751e0fdaaae430ecae53145bca7b1744084d6eea9262ceefcdd0253bb", kill_on_drop: false }`
[INFO] [stdout] 50c600c751e0fdaaae430ecae53145bca7b1744084d6eea9262ceefcdd0253bb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6bd3e04a2a7c3f6906f5af65fa539b7880ca6a8e188094b1952724c1584df7f3
[INFO] running `Command { std: "docker" "start" "-a" "6bd3e04a2a7c3f6906f5af65fa539b7880ca6a8e188094b1952724c1584df7f3", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.92
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling unicode-ident v1.0.14
[INFO] [stderr]    Compiling libc v0.2.167
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling pin-project-lite v0.2.15
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling sdd v3.0.4
[INFO] [stderr]    Compiling log v0.4.22
[INFO] [stderr]    Compiling once_cell v1.20.2
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling scc v2.2.5
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling syn v2.0.90
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling serial_test_derive v3.2.0
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling serial_test v3.2.0
[INFO] [stderr]    Compiling chai v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `PARSE_SUPRESS_PREDEFINES`
[INFO] [stdout]  --> src/parser/parser.rs:3:82
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::common::flags::{EMIT_VERBOSE, PARSE_EXPRESSION_MODE, PARSE_FN_OUTPUT, PARSE_SUPRESS_PREDEFINES, PARSE_TOKEN_OUTPUT};
[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: `serial_test::serial`
[INFO] [stdout]  --> src/parser/tests/test_if.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 |     use serial_test::serial;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::parser::Parser`
[INFO] [stdout]  --> src/parser/tests/test_if.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |     use crate::parser::parser::Parser;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::jit::compile_test::jit_compile`
[INFO] [stdout]  --> src/parser/tests/test_if.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use crate::jit::compile_test::jit_compile;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IRBackend` and `init_backend_config_for_test`
[INFO] [stdout]  --> src/parser/tests/test_if.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use crate::codegen::backend_config::{init_backend_config_for_test, IRBackend};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PrimitivesIR`
[INFO] [stdout]  --> src/parser/primitives/literal.rs:6:48
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::codegen::primitives_ir::{BooleanIR, PrimitivesIR};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PrimitivesIR`
[INFO] [stdout]  --> src/parser/primitives/number.rs:5:47
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::codegen::primitives_ir::{NumberIR, PrimitivesIR};
[INFO] [stdout]   |                                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PrimitivesIR`
[INFO] [stdout]  --> src/parser/primitives/string.rs:5:47
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::codegen::primitives_ir::{StringIR, PrimitivesIR};
[INFO] [stdout]   |                                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprNode` and `VariableExpression`
[INFO] [stdout]  --> src/parser/primitives/array.rs:2:90
[INFO] [stdout]   |
[INFO] [stdout] 2 | ...Expression, ParseError, ArrayExpression, VariableExpression, TempRegisterExpression, ExprNode};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^^^^^                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::expression::expression::parse_precedence`
[INFO] [stdout]  --> src/parser/primitives/array.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::parser::expression::expression::parse_precedence;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::expression::precedence::Precedence`
[INFO] [stdout]  --> src/parser/primitives/array.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::parser::expression::precedence::Precedence;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Operation`
[INFO] [stdout]  --> src/parser/declaration/declaration.rs:2:61
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::parser::expression::expr::{DataType, Expression, Operation};
[INFO] [stdout]   |                                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::expression::expr::ExprNode`
[INFO] [stdout]  --> src/parser/declaration/declaration.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::parser::expression::expr::ExprNode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LlvmConditional as LlvmIf` and `LlvmLoop as LlvmWhile`
[INFO] [stdout]   --> src/parser/conditional/if_statement.rs:21:35
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use crate::codegen::llvm_ir::{LlvmConditional as LlvmIf, LlvmLoop as LlvmWhile};
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Expression` and `Operation`
[INFO] [stdout]  --> src/parser/visitor/print_visitor.rs:1:73
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::parser::expression::expr::{DataType, Binary, StringConstant, Expression, Operation, VariableExpression, ArrayExpression, TempR...
[INFO] [stdout]   |                                                                         ^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/jit/compile.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::{self, File};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `llvm_main_close`
[INFO] [stdout]  --> src/jit/compile.rs:5:52
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::llvm::llvm_print::{llvm_fmt_string_int, llvm_main_close, llvm_main_start, llvm_print_bool_declare, llvm_print_define, llvm_pri...
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serial_test::serial`
[INFO] [stdout]  --> src/jit/test_jit.rs:2:9
[INFO] [stdout]   |
[INFO] [stdout] 2 |     use serial_test::serial;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::parser::Parser`
[INFO] [stdout]  --> src/jit/test_jit.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |     use crate::parser::parser::Parser;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::jit::compile_test::jit_compile`
[INFO] [stdout]  --> src/jit/test_jit.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use crate::jit::compile_test::jit_compile;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IRBackend` and `init_backend_config_for_test`
[INFO] [stdout]  --> src/jit/test_jit.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use crate::codegen::backend_config::{init_backend_config_for_test, IRBackend};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Write` and `self`
[INFO] [stdout]  --> src/jit/test_jit.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use std::io::{self, Write};
[INFO] [stdout]   |                   ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/jit/compile_test.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::{self, File};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/jit/mod.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub mod compile_test;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `llvm_main_close`
[INFO] [stdout]  --> src/jit/compile_test.rs:5:52
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::llvm::llvm_print::{llvm_fmt_string_int, llvm_main_close, llvm_main_start, llvm_print_bool_declare, llvm_print_define, llvm_pri...
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/jit/mod.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub mod compile_test;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Binary`, `DataType`, `Operation`, and `StringConstant`
[INFO] [stdout]  --> src/codegen/codegen_print.rs:1:39
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::parser::expression::expr::{DataType, Binary, StringConstant, Expression, Operation, VariableExpression};
[INFO] [stdout]   |                                       ^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PrintStatement`
[INFO] [stdout]  --> src/codegen/codegen_print.rs:2:68
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::parser::declaration::declaration::{VariableDeclaration, PrintStatement};
[INFO] [stdout]   |                                                                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Binary`, `Operation`, and `StringConstant`
[INFO] [stdout]  --> src/codegen/llvm_codegen.rs:1:49
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::parser::expression::expr::{DataType, Binary, StringConstant, Expression, Operation, VariableExpression};
[INFO] [stdout]   |                                                 ^^^^^^  ^^^^^^^^^^^^^^              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PrintStatement`
[INFO] [stdout]  --> src/codegen/llvm_codegen.rs:2:68
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::parser::declaration::declaration::{VariableDeclaration, PrintStatement};
[INFO] [stdout]   |                                                                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_current_backend`
[INFO] [stdout]   --> src/main.rs:13:63
[INFO] [stdout]    |
[INFO] [stdout] 13 | use codegen::backend_config::{IRBackend, init_backend_config, get_current_backend};
[INFO] [stdout]    |                                                               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BranchIR`
[INFO] [stdout]   --> src/parser/conditional/if_statement.rs:10:33
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::codegen::ir_traits::{BranchIR, ConditionalIR};
[INFO] [stdout]    |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BranchIR`
[INFO] [stdout]  --> src/parser/conditional/while_statement.rs:8:33
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::codegen::ir_traits::{BranchIR, LoopIR};
[INFO] [stdout]   |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr_reg`
[INFO] [stdout]   --> src/codegen/llvm_expr_ir.rs:94:17
[INFO] [stdout]    |
[INFO] [stdout] 94 |             let ptr_reg = format!("ptr_{}", i);
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_reg`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/codegen/llvm_codegen.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 28 |                 _ => panic!("Unsupported data type for storing variables")
[INFO] [stdout]    |                 ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/codegen/llvm_codegen.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 20 |                 DataType::Integer(_) => format!("store i32 {}, i32* %{}", expr.resolve_operand(), dec.name),
[INFO] [stdout]    |                 -------------------- matches some of the same values
[INFO] [stdout] 21 |                 DataType::Boolean(_) => format!("store i1 {}, i1* %{}", expr.resolve_operand(), dec.name),
[INFO] [stdout]    |                 -------------------- matches some of the same values
[INFO] [stdout] 22 |                 DataType::String(_) => format!("store i8* {}, i8** %{}", expr.resolve_operand(), dec.name),
[INFO] [stdout]    |                 ------------------- matches some of the same values
[INFO] [stdout] 23 |                 DataType::Array(_, _) => {
[INFO] [stdout]    |                 --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 28 |                 _ => panic!("Unsupported data type for storing variables")
[INFO] [stdout]    |                 ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr_datatype`
[INFO] [stdout]    --> src/parser/declaration/variable.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let expr_datatype = expr.as_datatype();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expr_datatype`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_clone`
[INFO] [stdout]   --> src/jit/compile.rs:59:25
[INFO] [stdout]    |
[INFO] [stdout] 59 |                     let out_clone = stdout.clone();
[INFO] [stdout]    |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `else_if_index`
[INFO] [stdout]   --> src/codegen/ir_traits.rs:27:45
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn else_if_branch(&self, bool_reg: u32, else_if_index: u32) -> String {
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_else_if_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_clone`
[INFO] [stdout]   --> src/jit/compile_test.rs:59:25
[INFO] [stdout]    |
[INFO] [stdout] 59 |                     let out_clone = stdout.clone();
[INFO] [stdout]    |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/jit/compile_test.rs:69:37
[INFO] [stdout]    |
[INFO] [stdout] 69 | ...                   let res = stdout.to_string();
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_type` is never used
[INFO] [stdout]   --> src/parser/expression/expr.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub trait ExprNode {
[INFO] [stdout]    |           -------- method in this trait
[INFO] [stdout] 93 |     fn get_value(&self) -> String; // get resolved expr value
[INFO] [stdout] 94 |     fn get_type(&self) -> &str; // get datatype as a str
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `empty_array` and `array_from_elements` are never used
[INFO] [stdout]    --> src/parser/expression/expr.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl DataType {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn empty_array(element_type: DataType, size: usize) -> DataType {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn array_from_elements(elements: Vec<DataType>) -> DataType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new_array` and `empty_array` are never used
[INFO] [stdout]    --> src/parser/expression/expr.rs:396:12
[INFO] [stdout]     |
[INFO] [stdout] 391 | impl Expression {
[INFO] [stdout]     | --------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub fn new_array(name: String, elements: Vec<Expression>, element_type: DataType, size: usize, register: usize) -> Expression {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 400 |     pub fn empty_array(name: String, element_type: DataType, size: usize, register: usize) -> Expression {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `left` is never read
[INFO] [stdout]    --> src/parser/expression/expr.rs:495:9
[INFO] [stdout]     |
[INFO] [stdout] 494 | pub struct Expr {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] 495 |     pub left: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARSE_CONSTANT_FOLD` is never used
[INFO] [stdout]   --> src/common/flags.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const PARSE_CONSTANT_FOLD: bool = false; // toggles constant folding in math operations such as 1 * 2 - 3 etc.
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LlvmTempVar` is never constructed
[INFO] [stdout]  --> src/llvm/instructions.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct LlvmTempVar {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LlvmExpression` is never used
[INFO] [stdout]  --> src/llvm/instructions.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum LlvmExpression {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chai_title` is never used
[INFO] [stdout]  --> src/jit/compile_test.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn chai_title() -> String {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `jit_compile` is never used
[INFO] [stdout]   --> src/jit/compile_test.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn jit_compile(source: &str) -> io::Result<String>{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `var_expr` is never used
[INFO] [stdout]   --> src/codegen/codegen_print.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait CodegenPrint {
[INFO] [stdout]    |           ------------ associated function in this trait
[INFO] [stdout] ...
[INFO] [stdout] 10 |     fn var_expr(expr: &VariableExpression) -> String;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load` is never used
[INFO] [stdout]   --> src/codegen/llvm_codegen.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn load(var_expr: &VariableExpression) -> String {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `store` is never used
[INFO] [stdout]   --> src/codegen/llvm_codegen.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn store() {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InstructionType` is never used
[INFO] [stdout]   --> src/codegen/llvm_codegen.rs:86:6
[INFO] [stdout]    |
[INFO] [stdout] 86 | enum InstructionType {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `binary_operands` is never used
[INFO] [stdout]   --> src/parser/tests/test_ast.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn binary_operands(bin: Binary) -> (Expression, Expression) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_operand_value_int` is never used
[INFO] [stdout]   --> src/parser/tests/test_ast.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn test_operand_value_int(expr: Expression, value: i32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/parser/core/ast_node.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Declaration(Declaration),
[INFO] [stdout]   |     ----------- ^^^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AstNode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 7 -     Declaration(Declaration),
[INFO] [stdout] 7 +     Declaration(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/codegen/llvm_codegen.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 91 | impl InstructionType {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 92 |     fn as_str(&self) -> &str {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `depth` is never used
[INFO] [stdout]  --> src/codegen/ir_traits.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub trait BranchIR {
[INFO] [stdout]   |           -------- method in this trait
[INFO] [stdout] 5 |     /// Get the depth/nesting level of this branch
[INFO] [stdout] 6 |     fn depth(&self) -> u32;
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `else_if_branch` and `else_if_label` are never used
[INFO] [stdout]   --> src/codegen/ir_traits.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait ConditionalIR: BranchIR {
[INFO] [stdout]    |           ------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn else_if_branch(&self, bool_reg: u32, else_if_index: u32) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn else_if_label(&self, else_if_index: u32) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IRFactory` is never used
[INFO] [stdout]   --> src/codegen/ir_traits.rs:58:11
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub trait IRFactory {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LlvmIRFactory` is never constructed
[INFO] [stdout]   --> src/codegen/llvm_ir.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub struct LlvmIRFactory;
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CIRFactory` is never constructed
[INFO] [stdout]   --> src/codegen/c_ir.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct CIRFactory;
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `array_type` is never used
[INFO] [stdout]   --> src/codegen/expr_ir.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub trait TypeIR {
[INFO] [stdout]    |           ------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 18 |     fn array_type(&self, element_type: &str, size: usize) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `array_alloca`, `array_element_ptr`, `array_element_load`, `array_element_store`, and `array_init` are never used
[INFO] [stdout]   --> src/codegen/expr_ir.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub trait ArrayIR {
[INFO] [stdout]    |           ------- methods in this trait
[INFO] [stdout] 61 |     /// Generate array allocation instruction
[INFO] [stdout] 62 |     fn array_alloca(&self, element_type: &str, size: usize, register: usize) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     fn array_element_ptr(&self, array_ptr: &str, element_type: &str, index: usize, result_reg: usize) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     fn array_element_load(&self, element_ptr: &str, element_type: &str, result_reg: usize) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     fn array_element_store(&self, value: &str, element_ptr: &str, element_type: &str) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     fn array_init(&self, array_ptr: &str, values: &[String], element_type: &str) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `register_ref` is never used
[INFO] [stdout]   --> src/codegen/expr_ir.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub trait ExpressionIR: TypeIR + BinaryOpIR + LiteralIR + PrintIR + ArrayIR {
[INFO] [stdout]    |           ------------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 95 |     fn register_ref(&self, register: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ExprIRFactory` is never used
[INFO] [stdout]    --> src/codegen/expr_ir.rs:101:11
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub trait ExprIRFactory {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LlvmExprIRFactory` is never constructed
[INFO] [stdout]    --> src/codegen/llvm_expr_ir.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct LlvmExprIRFactory;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CExprIRFactory` is never constructed
[INFO] [stdout]    --> src/codegen/c_expr_ir.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct CExprIRFactory;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `generate_preamble` is never used
[INFO] [stdout]   --> src/codegen/parser_ir.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  3 | pub trait ParserIR {
[INFO] [stdout]    |           -------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 11 |     fn generate_preamble(&self) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `string_literal` is never used
[INFO] [stdout]   --> src/codegen/primitives_ir.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  3 | pub trait StringIR {
[INFO] [stdout]    |           -------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 11 |     fn string_literal(&self, register: usize, length: usize, index: usize) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PrimitivesIR` is never used
[INFO] [stdout]   --> src/codegen/primitives_ir.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub trait PrimitivesIR: StringIR + NumberIR + BooleanIR {}
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_backend_config_for_test` is never used
[INFO] [stdout]   --> src/codegen/backend_config.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn init_backend_config_for_test(backend: IRBackend) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_backend` is never used
[INFO] [stdout]   --> src/codegen/backend_config.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn set_backend(backend: IRBackend) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `then_block`, `else_ifs`, and `else_block` are never read
[INFO] [stdout]   --> src/parser/conditional/if_statement.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct ConditionalParser {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] 26 |     condition: Option<Expr>,
[INFO] [stdout] 27 |     then_block: Vec<Declaration>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 28 |     else_ifs: Vec<ElseIfClause>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 29 |     else_block: Option<Vec<Declaration>>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `then_block`, `else_ifs`, and `else_block` are never read
[INFO] [stdout]   --> src/parser/declaration/declaration.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct ConditionalStatement {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] 33 |     pub condition: Expression,
[INFO] [stdout] 34 |     pub then_block: Vec<Declaration>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 35 |     pub else_ifs: Vec<ElseIfClause>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 36 |     pub else_block: Option<Vec<Declaration>>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConditionalStatement` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `condition` and `block` are never read
[INFO] [stdout]   --> src/parser/declaration/declaration.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct ElseIfClause {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 41 |     pub condition: Expression,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 42 |     pub block: Vec<Declaration>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ElseIfClause` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_else`, and `with_else_if` are never used
[INFO] [stdout]   --> src/parser/declaration/declaration.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl ConditionalStatement {
[INFO] [stdout]    | ------------------------- associated items in this implementation
[INFO] [stdout] 69 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn with_else(mut self, else_block: Vec<Declaration>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn with_else_if(mut self, condition: Expression, block: Vec<Declaration>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/parser/declaration/declaration.rs:93:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | impl ElseIfClause {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 93 |     pub fn new(condition: Expression, block: Vec<Declaration>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_variable` is never used
[INFO] [stdout]    --> src/parser/declaration/declaration.rs:173:12
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl Declaration {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn as_variable(&self) -> &VariableDeclaration {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/parser/parser.rs:62:51
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn init_parser(source: &'a str) -> Parser<'_> {
[INFO] [stdout]    |                                 --                ^^ the same lifetime is elided here
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 62 -     pub fn init_parser(source: &'a str) -> Parser<'_> {
[INFO] [stdout] 62 +     pub fn init_parser(source: &'a str) -> Parser<'a> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         repl();
[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] 186 |         let _ = repl();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.24s
[INFO] running `Command { std: "docker" "inspect" "6bd3e04a2a7c3f6906f5af65fa539b7880ca6a8e188094b1952724c1584df7f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6bd3e04a2a7c3f6906f5af65fa539b7880ca6a8e188094b1952724c1584df7f3", kill_on_drop: false }`
[INFO] [stdout] 6bd3e04a2a7c3f6906f5af65fa539b7880ca6a8e188094b1952724c1584df7f3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d79d87d4c0f7f0d0785ad6e493cf8cf718ed89a6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1fd830939e8ca986799426eebecc955d2ad3aa37caf0b45f0f5b0665135faa1a
[INFO] running `Command { std: "docker" "start" "-a" "1fd830939e8ca986799426eebecc955d2ad3aa37caf0b45f0f5b0665135faa1a", kill_on_drop: false }`
[INFO] [stderr]    Compiling chai v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `PARSE_SUPRESS_PREDEFINES`
[INFO] [stdout]  --> src/parser/parser.rs:3:82
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::common::flags::{EMIT_VERBOSE, PARSE_EXPRESSION_MODE, PARSE_FN_OUTPUT, PARSE_SUPRESS_PREDEFINES, PARSE_TOKEN_OUTPUT};
[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: `crate::parser::parser::Parser`
[INFO] [stdout]  --> src/parser/tests/test_if.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 |     use crate::parser::parser::Parser;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PrimitivesIR`
[INFO] [stdout]  --> src/parser/primitives/literal.rs:6:48
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::codegen::primitives_ir::{BooleanIR, PrimitivesIR};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PrimitivesIR`
[INFO] [stdout]  --> src/parser/primitives/number.rs:5:47
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::codegen::primitives_ir::{NumberIR, PrimitivesIR};
[INFO] [stdout]   |                                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PrimitivesIR`
[INFO] [stdout]  --> src/parser/primitives/string.rs:5:47
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::codegen::primitives_ir::{StringIR, PrimitivesIR};
[INFO] [stdout]   |                                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprNode` and `VariableExpression`
[INFO] [stdout]  --> src/parser/primitives/array.rs:2:90
[INFO] [stdout]   |
[INFO] [stdout] 2 | ...Expression, ParseError, ArrayExpression, VariableExpression, TempRegisterExpression, ExprNode};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^^^^^                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::expression::expression::parse_precedence`
[INFO] [stdout]  --> src/parser/primitives/array.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::parser::expression::expression::parse_precedence;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::expression::precedence::Precedence`
[INFO] [stdout]  --> src/parser/primitives/array.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::parser::expression::precedence::Precedence;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Operation`
[INFO] [stdout]  --> src/parser/declaration/declaration.rs:2:61
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::parser::expression::expr::{DataType, Expression, Operation};
[INFO] [stdout]   |                                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::expression::expr::ExprNode`
[INFO] [stdout]  --> src/parser/declaration/declaration.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::parser::expression::expr::ExprNode;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LlvmConditional as LlvmIf` and `LlvmLoop as LlvmWhile`
[INFO] [stdout]   --> src/parser/conditional/if_statement.rs:21:35
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use crate::codegen::llvm_ir::{LlvmConditional as LlvmIf, LlvmLoop as LlvmWhile};
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Expression` and `Operation`
[INFO] [stdout]  --> src/parser/visitor/print_visitor.rs:1:73
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::parser::expression::expr::{DataType, Binary, StringConstant, Expression, Operation, VariableExpression, ArrayExpression, TempR...
[INFO] [stdout]   |                                                                         ^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/jit/compile.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::{self, File};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `llvm_main_close`
[INFO] [stdout]  --> src/jit/compile.rs:5:52
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::llvm::llvm_print::{llvm_fmt_string_int, llvm_main_close, llvm_main_start, llvm_print_bool_declare, llvm_print_define, llvm_pri...
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Write` and `self`
[INFO] [stdout]  --> src/jit/test_jit.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use std::io::{self, Write};
[INFO] [stdout]   |                   ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/jit/compile_test.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::{self, File};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `llvm_main_close`
[INFO] [stdout]  --> src/jit/compile_test.rs:5:52
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::llvm::llvm_print::{llvm_fmt_string_int, llvm_main_close, llvm_main_start, llvm_print_bool_declare, llvm_print_define, llvm_pri...
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Binary`, `DataType`, `Operation`, and `StringConstant`
[INFO] [stdout]  --> src/codegen/codegen_print.rs:1:39
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::parser::expression::expr::{DataType, Binary, StringConstant, Expression, Operation, VariableExpression};
[INFO] [stdout]   |                                       ^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PrintStatement`
[INFO] [stdout]  --> src/codegen/codegen_print.rs:2:68
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::parser::declaration::declaration::{VariableDeclaration, PrintStatement};
[INFO] [stdout]   |                                                                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Binary`, `Operation`, and `StringConstant`
[INFO] [stdout]  --> src/codegen/llvm_codegen.rs:1:49
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::parser::expression::expr::{DataType, Binary, StringConstant, Expression, Operation, VariableExpression};
[INFO] [stdout]   |                                                 ^^^^^^  ^^^^^^^^^^^^^^              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PrintStatement`
[INFO] [stdout]  --> src/codegen/llvm_codegen.rs:2:68
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::parser::declaration::declaration::{VariableDeclaration, PrintStatement};
[INFO] [stdout]   |                                                                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_current_backend`
[INFO] [stdout]   --> src/main.rs:13:63
[INFO] [stdout]    |
[INFO] [stdout] 13 | use codegen::backend_config::{IRBackend, init_backend_config, get_current_backend};
[INFO] [stdout]    |                                                               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BranchIR`
[INFO] [stdout]   --> src/parser/conditional/if_statement.rs:10:33
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::codegen::ir_traits::{BranchIR, ConditionalIR};
[INFO] [stdout]    |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BranchIR`
[INFO] [stdout]  --> src/parser/conditional/while_statement.rs:8:33
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::codegen::ir_traits::{BranchIR, LoopIR};
[INFO] [stdout]   |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ptr_reg`
[INFO] [stdout]   --> src/codegen/llvm_expr_ir.rs:94:17
[INFO] [stdout]    |
[INFO] [stdout] 94 |             let ptr_reg = format!("ptr_{}", i);
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ptr_reg`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_clone`
[INFO] [stdout]   --> src/jit/compile_test.rs:59:25
[INFO] [stdout]    |
[INFO] [stdout] 59 |                     let out_clone = stdout.clone();
[INFO] [stdout]    |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_clone`
[INFO] [stdout]   --> src/jit/compile.rs:59:25
[INFO] [stdout]    |
[INFO] [stdout] 59 |                     let out_clone = stdout.clone();
[INFO] [stdout]    |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/jit/compile_test.rs:69:37
[INFO] [stdout]    |
[INFO] [stdout] 69 | ...                   let res = stdout.to_string();
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/codegen/llvm_codegen.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 28 |                 _ => panic!("Unsupported data type for storing variables")
[INFO] [stdout]    |                 ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/codegen/llvm_codegen.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 20 |                 DataType::Integer(_) => format!("store i32 {}, i32* %{}", expr.resolve_operand(), dec.name),
[INFO] [stdout]    |                 -------------------- matches some of the same values
[INFO] [stdout] 21 |                 DataType::Boolean(_) => format!("store i1 {}, i1* %{}", expr.resolve_operand(), dec.name),
[INFO] [stdout]    |                 -------------------- matches some of the same values
[INFO] [stdout] 22 |                 DataType::String(_) => format!("store i8* {}, i8** %{}", expr.resolve_operand(), dec.name),
[INFO] [stdout]    |                 ------------------- matches some of the same values
[INFO] [stdout] 23 |                 DataType::Array(_, _) => {
[INFO] [stdout]    |                 --------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 28 |                 _ => panic!("Unsupported data type for storing variables")
[INFO] [stdout]    |                 ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `else_if_index`
[INFO] [stdout]   --> src/codegen/ir_traits.rs:27:45
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn else_if_branch(&self, bool_reg: u32, else_if_index: u32) -> String {
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_else_if_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr_datatype`
[INFO] [stdout]    --> src/parser/declaration/variable.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let expr_datatype = expr.as_datatype();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expr_datatype`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:186:9
[INFO] [stdout]     |
[INFO] [stdout] 186 |         repl();
[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] 186 |         let _ = repl();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_type` is never used
[INFO] [stdout]   --> src/parser/expression/expr.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub trait ExprNode {
[INFO] [stdout]    |           -------- method in this trait
[INFO] [stdout] 93 |     fn get_value(&self) -> String; // get resolved expr value
[INFO] [stdout] 94 |     fn get_type(&self) -> &str; // get datatype as a str
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LlvmTempVar` is never constructed
[INFO] [stdout]  --> src/llvm/instructions.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct LlvmTempVar {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LlvmExpression` is never used
[INFO] [stdout]  --> src/llvm/instructions.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum LlvmExpression {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `var_expr` is never used
[INFO] [stdout]   --> src/codegen/codegen_print.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub trait CodegenPrint {
[INFO] [stdout]    |           ------------ associated function in this trait
[INFO] [stdout] ...
[INFO] [stdout] 10 |     fn var_expr(expr: &VariableExpression) -> String;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load` is never used
[INFO] [stdout]   --> src/codegen/llvm_codegen.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn load(var_expr: &VariableExpression) -> String {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `store` is never used
[INFO] [stdout]   --> src/codegen/llvm_codegen.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn store() {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InstructionType` is never used
[INFO] [stdout]   --> src/codegen/llvm_codegen.rs:86:6
[INFO] [stdout]    |
[INFO] [stdout] 86 | enum InstructionType {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/codegen/llvm_codegen.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 91 | impl InstructionType {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 92 |     fn as_str(&self) -> &str {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `depth` is never used
[INFO] [stdout]  --> src/codegen/ir_traits.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub trait BranchIR {
[INFO] [stdout]   |           -------- method in this trait
[INFO] [stdout] 5 |     /// Get the depth/nesting level of this branch
[INFO] [stdout] 6 |     fn depth(&self) -> u32;
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `else_if_branch` and `else_if_label` are never used
[INFO] [stdout]   --> src/codegen/ir_traits.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait ConditionalIR: BranchIR {
[INFO] [stdout]    |           ------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn else_if_branch(&self, bool_reg: u32, else_if_index: u32) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn else_if_label(&self, else_if_index: u32) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IRFactory` is never used
[INFO] [stdout]   --> src/codegen/ir_traits.rs:58:11
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub trait IRFactory {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LlvmIRFactory` is never constructed
[INFO] [stdout]   --> src/codegen/llvm_ir.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub struct LlvmIRFactory;
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CIRFactory` is never constructed
[INFO] [stdout]   --> src/codegen/c_ir.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct CIRFactory;
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `array_type` is never used
[INFO] [stdout]   --> src/codegen/expr_ir.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub trait TypeIR {
[INFO] [stdout]    |           ------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 18 |     fn array_type(&self, element_type: &str, size: usize) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `array_alloca`, `array_element_ptr`, `array_element_load`, `array_element_store`, and `array_init` are never used
[INFO] [stdout]   --> src/codegen/expr_ir.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub trait ArrayIR {
[INFO] [stdout]    |           ------- methods in this trait
[INFO] [stdout] 61 |     /// Generate array allocation instruction
[INFO] [stdout] 62 |     fn array_alloca(&self, element_type: &str, size: usize, register: usize) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     fn array_element_ptr(&self, array_ptr: &str, element_type: &str, index: usize, result_reg: usize) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     fn array_element_load(&self, element_ptr: &str, element_type: &str, result_reg: usize) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     fn array_element_store(&self, value: &str, element_ptr: &str, element_type: &str) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     fn array_init(&self, array_ptr: &str, values: &[String], element_type: &str) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `register_ref` is never used
[INFO] [stdout]   --> src/codegen/expr_ir.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub trait ExpressionIR: TypeIR + BinaryOpIR + LiteralIR + PrintIR + ArrayIR {
[INFO] [stdout]    |           ------------ method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 95 |     fn register_ref(&self, register: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ExprIRFactory` is never used
[INFO] [stdout]    --> src/codegen/expr_ir.rs:101:11
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub trait ExprIRFactory {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LlvmExprIRFactory` is never constructed
[INFO] [stdout]    --> src/codegen/llvm_expr_ir.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct LlvmExprIRFactory;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CExprIRFactory` is never constructed
[INFO] [stdout]    --> src/codegen/c_expr_ir.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct CExprIRFactory;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `generate_preamble` is never used
[INFO] [stdout]   --> src/codegen/parser_ir.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  3 | pub trait ParserIR {
[INFO] [stdout]    |           -------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 11 |     fn generate_preamble(&self) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `string_literal` is never used
[INFO] [stdout]   --> src/codegen/primitives_ir.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  3 | pub trait StringIR {
[INFO] [stdout]    |           -------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 11 |     fn string_literal(&self, register: usize, length: usize, index: usize) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/parser/parser.rs:62:51
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn init_parser(source: &'a str) -> Parser<'_> {
[INFO] [stdout]    |                                 --                ^^ the same lifetime is elided here
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 62 -     pub fn init_parser(source: &'a str) -> Parser<'_> {
[INFO] [stdout] 62 +     pub fn init_parser(source: &'a str) -> Parser<'a> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `empty_array` and `array_from_elements` are never used
[INFO] [stdout]    --> src/parser/expression/expr.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl DataType {
[INFO] [stdout]     | ------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn empty_array(element_type: DataType, size: usize) -> DataType {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn array_from_elements(elements: Vec<DataType>) -> DataType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new_array` and `empty_array` are never used
[INFO] [stdout]    --> src/parser/expression/expr.rs:396:12
[INFO] [stdout]     |
[INFO] [stdout] 391 | impl Expression {
[INFO] [stdout]     | --------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub fn new_array(name: String, elements: Vec<Expression>, element_type: DataType, size: usize, register: usize) -> Expression {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 400 |     pub fn empty_array(name: String, element_type: DataType, size: usize, register: usize) -> Expression {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_backend` is never used
[INFO] [stdout]   --> src/codegen/backend_config.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn set_backend(backend: IRBackend) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/parser/core/ast_node.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Declaration(Declaration),
[INFO] [stdout]   |     ----------- ^^^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AstNode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 7 -     Declaration(Declaration),
[INFO] [stdout] 7 +     Declaration(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `then_block`, `else_ifs`, and `else_block` are never read
[INFO] [stdout]   --> src/parser/declaration/declaration.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct ConditionalStatement {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] 33 |     pub condition: Expression,
[INFO] [stdout] 34 |     pub then_block: Vec<Declaration>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 35 |     pub else_ifs: Vec<ElseIfClause>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 36 |     pub else_block: Option<Vec<Declaration>>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConditionalStatement` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `then_block`, `else_ifs`, and `else_block` are never read
[INFO] [stdout]   --> src/parser/conditional/if_statement.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct ConditionalParser {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] 26 |     condition: Option<Expr>,
[INFO] [stdout] 27 |     then_block: Vec<Declaration>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 28 |     else_ifs: Vec<ElseIfClause>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 29 |     else_block: Option<Vec<Declaration>>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `condition` and `block` are never read
[INFO] [stdout]   --> src/parser/declaration/declaration.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct ElseIfClause {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 41 |     pub condition: Expression,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 42 |     pub block: Vec<Declaration>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ElseIfClause` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PrimitivesIR` is never used
[INFO] [stdout]   --> src/codegen/primitives_ir.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub trait PrimitivesIR: StringIR + NumberIR + BooleanIR {}
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_else`, and `with_else_if` are never used
[INFO] [stdout]   --> src/parser/declaration/declaration.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl ConditionalStatement {
[INFO] [stdout]    | ------------------------- associated items in this implementation
[INFO] [stdout] 69 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn with_else(mut self, else_block: Vec<Declaration>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn with_else_if(mut self, condition: Expression, block: Vec<Declaration>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/parser/declaration/declaration.rs:93:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | impl ElseIfClause {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 93 |     pub fn new(condition: Expression, block: Vec<Declaration>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_variable` is never used
[INFO] [stdout]    --> src/parser/declaration/declaration.rs:173:12
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl Declaration {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn as_variable(&self) -> &VariableDeclaration {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.48s
[INFO] running `Command { std: "docker" "inspect" "1fd830939e8ca986799426eebecc955d2ad3aa37caf0b45f0f5b0665135faa1a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1fd830939e8ca986799426eebecc955d2ad3aa37caf0b45f0f5b0665135faa1a", kill_on_drop: false }`
[INFO] [stdout] 1fd830939e8ca986799426eebecc955d2ad3aa37caf0b45f0f5b0665135faa1a
