[INFO] cloning repository https://github.com/0xodus-eth/zara-compiler
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/0xodus-eth/zara-compiler" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0xodus-eth%2Fzara-compiler", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0xodus-eth%2Fzara-compiler'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2709f840de70e24da9a09c850d001162e63baf1b
[INFO] checking 0xodus-eth/zara-compiler against master#3f6250a7bb79e600d9036bbc7c8f65af43933643 for pr-147859
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0xodus-eth%2Fzara-compiler" "/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/0xodus-eth/zara-compiler
[INFO] finished tweaking git repo https://github.com/0xodus-eth/zara-compiler
[INFO] tweaked toml for git repo https://github.com/0xodus-eth/zara-compiler written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/0xodus-eth/zara-compiler on toolchain 3f6250a7bb79e600d9036bbc7c8f65af43933643
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3f6250a7bb79e600d9036bbc7c8f65af43933643" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/0xodus-eth/zara-compiler 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" "+3f6250a7bb79e600d9036bbc7c8f65af43933643" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+3f6250a7bb79e600d9036bbc7c8f65af43933643" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d95a91c6e8d11f9bcffcd34c2429a6f9b2283084f0d7fa3851082118e81e7520
[INFO] running `Command { std: "docker" "start" "-a" "d95a91c6e8d11f9bcffcd34c2429a6f9b2283084f0d7fa3851082118e81e7520", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d95a91c6e8d11f9bcffcd34c2429a6f9b2283084f0d7fa3851082118e81e7520", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d95a91c6e8d11f9bcffcd34c2429a6f9b2283084f0d7fa3851082118e81e7520", kill_on_drop: false }`
[INFO] [stdout] d95a91c6e8d11f9bcffcd34c2429a6f9b2283084f0d7fa3851082118e81e7520
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+3f6250a7bb79e600d9036bbc7c8f65af43933643" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 62463c491528c06d5ad3f2945e38ae4b8de1861996ab18b8cf9c7dbf8827db2f
[INFO] running `Command { std: "docker" "start" "-a" "62463c491528c06d5ad3f2945e38ae4b8de1861996ab18b8cf9c7dbf8827db2f", kill_on_drop: false }`
[INFO] [stderr]     Checking zara-compiler v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `SourceLocation`
[INFO] [stdout]  --> src/semantic/type_checker.rs:4:51
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::error::{CompilerError, ErrorCollector, SourceLocation};
[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: `SourceLocation`
[INFO] [stdout]  --> src/semantic/type_checker.rs:4:51
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::error::{CompilerError, ErrorCollector, SourceLocation};
[INFO] [stdout]   |                                                   ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output` is never read
[INFO] [stdout]    --> src/codegen/mod.rs:861:26
[INFO] [stdout]     |
[INFO] [stdout] 861 |         let mut output = String::new();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output` is never read
[INFO] [stdout]    --> src/codegen/mod.rs:861:26
[INFO] [stdout]     |
[INFO] [stdout] 861 |         let mut output = String::new();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `label_counter` is never read
[INFO] [stdout]   --> src/codegen/mod.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct CodeGenerator {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 55 |     label_counter: usize,
[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 `label_counter` is never read
[INFO] [stdout]   --> src/codegen/mod.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct CodeGenerator {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 55 |     label_counter: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ast::*`
[INFO] [stdout]  --> src/parser/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use ast::*;
[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: `shift_reduce::ShiftReduceParser`
[INFO] [stdout]   --> src/parser/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use shift_reduce::ShiftReduceParser;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SourceLocation`
[INFO] [stdout]  --> src/semantic/type_checker.rs:4:51
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::error::{CompilerError, ErrorCollector, SourceLocation};
[INFO] [stdout]   |                                                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ast::*`
[INFO] [stdout]  --> src/parser/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use ast::*;
[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: `shift_reduce::ShiftReduceParser`
[INFO] [stdout]   --> src/parser/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use shift_reduce::ShiftReduceParser;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SourceLocation`
[INFO] [stdout]  --> src/semantic/type_checker.rs:4:51
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::error::{CompilerError, ErrorCollector, SourceLocation};
[INFO] [stdout]   |                                                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output` is never read
[INFO] [stdout]    --> src/codegen/mod.rs:861:26
[INFO] [stdout]     |
[INFO] [stdout] 861 |         let mut output = String::new();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `output` is never read
[INFO] [stdout]    --> src/codegen/mod.rs:861:26
[INFO] [stdout]     |
[INFO] [stdout] 861 |         let mut output = String::new();
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AsmInstruction` is never constructed
[INFO] [stdout]   --> src/codegen/mod.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct AsmInstruction {
[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 items `new` and `with_comment` are never used
[INFO] [stdout]   --> src/codegen/mod.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl AsmInstruction {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 24 |     pub fn new(opcode: impl Into<String>, operands: Vec<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn with_comment(mut self, comment: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `label_counter` is never read
[INFO] [stdout]   --> src/codegen/mod.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct CodeGenerator {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 55 |     label_counter: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Internal` is never constructed
[INFO] [stdout]   --> src/error/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum ErrorKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 12 |     Internal,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ErrorKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_file` is never used
[INFO] [stdout]   --> src/error/mod.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl SourceLocation {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn with_file(line: usize, column: usize, file: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mark_recovered` is never used
[INFO] [stdout]   --> src/error/mod.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl CompilerError {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn mark_recovered(mut self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RecoveryStrategy` is never used
[INFO] [stdout]    --> src/error/mod.rs:135:10
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub enum RecoveryStrategy {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `warnings` is never read
[INFO] [stdout]    --> src/error/mod.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct ErrorCollector {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 149 |     errors: Vec<CompilerError>,
[INFO] [stdout] 150 |     warnings: Vec<CompilerError>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ErrorCollector` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/error/mod.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl ErrorCollector {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn with_max_errors(mut self, max: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn add_warning(&mut self, warning: CompilerError) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn error_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn warning_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn warnings(&self) -> &[CompilerError] {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn report(&self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SYNC_TOKENS` is never used
[INFO] [stdout]    --> src/error/mod.rs:222:11
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub const SYNC_TOKENS: &[&str] = &[";", "}", "func", "class", "if", "while", "for", "return"];
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_sync_token` is never used
[INFO] [stdout]    --> src/error/mod.rs:225:8
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub fn is_sync_token(token: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `IfRelGoto` and `Param` are never constructed
[INFO] [stdout]   --> src/ir/tac.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum TACInstruction {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 71 |     IfRelGoto {
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     Param {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TACInstruction` 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: method `instructions` is never used
[INFO] [stdout]    --> src/ir/tac.rs:806:12
[INFO] [stdout]     |
[INFO] [stdout] 235 | impl IRGenerator {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 806 |     pub fn instructions(&self) -> &[TACInstruction] {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `errors` is never used
[INFO] [stdout]    --> src/lexer/mod.rs:450:12
[INFO] [stdout]     |
[INFO] [stdout]  21 | impl Lexer {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub fn errors(&self) -> &[CompilerError] {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Error` is never constructed
[INFO] [stdout]   --> src/lexer/token.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 88 |     Error,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_keyword`, `is_type`, `is_literal`, and `is_operator` are never used
[INFO] [stdout]    --> src/lexer/token.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 177 | impl Token {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn is_keyword(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn is_type(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn is_literal(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn is_operator(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `loop_invariant_code_motion`, `strength_reduction`, and `instructions` are never used
[INFO] [stdout]    --> src/optimizer/mod.rs:252:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl Optimizer {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn loop_invariant_code_motion(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn strength_reduction(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 407 |     pub fn instructions(&self) -> &[TACInstruction] {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Span` is never constructed
[INFO] [stdout]  --> src/parser/ast.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Span {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_line` are never used
[INFO] [stdout]   --> src/parser/ast.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Span {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 16 |     pub fn new(start_line: usize, start_col: usize, end_line: usize, end_col: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn from_line(line: usize, col: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `StackPush`, `StackPop`, and `StackPeek` are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout]  89 | pub enum Expr {
[INFO] [stdout]     |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 146 |     StackPush {
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     StackPop {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     StackPeek {
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` 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: variant `Empty` is never constructed
[INFO] [stdout]    --> src/parser/ast.rs:298:5
[INFO] [stdout]     |
[INFO] [stdout] 230 | pub enum Stmt {
[INFO] [stdout]     |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 298 |     Empty,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Stmt` 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: enum `Action` is never used
[INFO] [stdout]   --> src/parser/shift_reduce.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum Action {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Production` is never constructed
[INFO] [stdout]   --> src/parser/shift_reduce.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Production {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StackItem` is never used
[INFO] [stdout]   --> src/parser/shift_reduce.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum StackItem {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ASTNode` is never used
[INFO] [stdout]   --> src/parser/shift_reduce.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum ASTNode {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ShiftReduceParser` is never constructed
[INFO] [stdout]   --> src/parser/shift_reduce.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct ShiftReduceParser {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/parser/shift_reduce.rs:56:12
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl ShiftReduceParser {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  56 |     pub fn new(tokens: Vec<Token>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     fn build_tables(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 394 |     fn token_to_symbol(token: &Token) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 416 |     fn current_state(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 426 |     fn current_token(&self) -> &Token {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 433 |     pub fn parse_expression(&mut self) -> Result<Expr, CompilerError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 508 |     fn create_node(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 639 |     fn handle_error(&mut self, token: &Token) -> CompilerError {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 653 |     pub fn print_tables(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 671 |     pub fn detect_conflicts(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `symbol_table` and `errors` are never used
[INFO] [stdout]    --> src/semantic/type_checker.rs:954:12
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl SemanticAnalyzer {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 954 |     pub fn symbol_table(&self) -> &SymbolTable {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 959 |     pub fn errors(&self) -> &ErrorCollector {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Constant` and `Method` are never constructed
[INFO] [stdout]   --> src/symbol_table/mod.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub enum SymbolKind {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 55 |     Variable,
[INFO] [stdout] 56 |     Constant,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     Method,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attributes` is never read
[INFO] [stdout]   --> src/symbol_table/mod.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct Symbol {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub attributes: HashMap<String, String>, // Additional attributes
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Symbol` 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 `with_mutable` and `with_attribute` are never used
[INFO] [stdout]    --> src/symbol_table/mod.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout]  77 | impl Symbol {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn with_mutable(mut self, mutable: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn with_attribute(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `lookup_current_scope`, `get_current_scope_symbols`, and `get_all_symbols` are never used
[INFO] [stdout]    --> src/symbol_table/mod.rs:278:12
[INFO] [stdout]     |
[INFO] [stdout] 161 | impl SymbolTable {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn lookup_current_scope(&self, name: &str) -> Option<&Symbol> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn get_current_scope_symbols(&self) -> Vec<&Symbol> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn get_all_symbols(&self) -> Vec<&Symbol> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AsmInstruction` is never constructed
[INFO] [stdout]   --> src/codegen/mod.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct AsmInstruction {
[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 items `new` and `with_comment` are never used
[INFO] [stdout]   --> src/codegen/mod.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl AsmInstruction {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 24 |     pub fn new(opcode: impl Into<String>, operands: Vec<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn with_comment(mut self, comment: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `label_counter` is never read
[INFO] [stdout]   --> src/codegen/mod.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct CodeGenerator {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 55 |     label_counter: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Internal` is never constructed
[INFO] [stdout]   --> src/error/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum ErrorKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 12 |     Internal,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ErrorKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_file` is never used
[INFO] [stdout]   --> src/error/mod.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl SourceLocation {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn with_file(line: usize, column: usize, file: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `mark_recovered` is never used
[INFO] [stdout]   --> src/error/mod.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl CompilerError {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn mark_recovered(mut self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RecoveryStrategy` is never used
[INFO] [stdout]    --> src/error/mod.rs:135:10
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub enum RecoveryStrategy {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `warnings` is never read
[INFO] [stdout]    --> src/error/mod.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub struct ErrorCollector {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 149 |     errors: Vec<CompilerError>,
[INFO] [stdout] 150 |     warnings: Vec<CompilerError>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ErrorCollector` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_max_errors`, `add_warning`, `warning_count`, `warnings`, `report`, and `clear` are never used
[INFO] [stdout]    --> src/error/mod.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl ErrorCollector {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn with_max_errors(mut self, max: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn add_warning(&mut self, warning: CompilerError) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn warning_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn warnings(&self) -> &[CompilerError] {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn report(&self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SYNC_TOKENS` is never used
[INFO] [stdout]    --> src/error/mod.rs:222:11
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub const SYNC_TOKENS: &[&str] = &[";", "}", "func", "class", "if", "while", "for", "return"];
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_sync_token` is never used
[INFO] [stdout]    --> src/error/mod.rs:225:8
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub fn is_sync_token(token: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `IfRelGoto` and `Param` are never constructed
[INFO] [stdout]   --> src/ir/tac.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum TACInstruction {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 71 |     IfRelGoto {
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     Param {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TACInstruction` 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: method `errors` is never used
[INFO] [stdout]    --> src/lexer/mod.rs:450:12
[INFO] [stdout]     |
[INFO] [stdout]  21 | impl Lexer {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub fn errors(&self) -> &[CompilerError] {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Error` is never constructed
[INFO] [stdout]   --> src/lexer/token.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 88 |     Error,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_keyword`, `is_type`, `is_literal`, and `is_operator` are never used
[INFO] [stdout]    --> src/lexer/token.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 177 | impl Token {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn is_keyword(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn is_type(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn is_literal(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn is_operator(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `loop_invariant_code_motion` and `instructions` are never used
[INFO] [stdout]    --> src/optimizer/mod.rs:252:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl Optimizer {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn loop_invariant_code_motion(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 407 |     pub fn instructions(&self) -> &[TACInstruction] {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Span` is never constructed
[INFO] [stdout]  --> src/parser/ast.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Span {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_line` are never used
[INFO] [stdout]   --> src/parser/ast.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Span {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 16 |     pub fn new(start_line: usize, start_col: usize, end_line: usize, end_col: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn from_line(line: usize, col: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `StackPush`, `StackPop`, and `StackPeek` are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout]  89 | pub enum Expr {
[INFO] [stdout]     |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 146 |     StackPush {
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     StackPop {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     StackPeek {
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` 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: variant `Empty` is never constructed
[INFO] [stdout]    --> src/parser/ast.rs:298:5
[INFO] [stdout]     |
[INFO] [stdout] 230 | pub enum Stmt {
[INFO] [stdout]     |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 298 |     Empty,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Stmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `precedence` is never read
[INFO] [stdout]   --> src/parser/shift_reduce.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Production {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub precedence: i32,  // For conflict resolution
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Production` 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: variants `Program`, `Stmt`, and `Token` are never constructed
[INFO] [stdout]   --> src/parser/shift_reduce.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum ASTNode {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] 38 |     Program(Vec<ASTNode>),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 39 |     Expr(Expr),
[INFO] [stdout] 40 |     Stmt(Stmt),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 41 |     Token(Token),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ASTNode` 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 `print_tables` and `detect_conflicts` are never used
[INFO] [stdout]    --> src/parser/shift_reduce.rs:653:12
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl ShiftReduceParser {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 653 |     pub fn print_tables(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 671 |     pub fn detect_conflicts(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `symbol_table` and `errors` are never used
[INFO] [stdout]    --> src/semantic/type_checker.rs:954:12
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl SemanticAnalyzer {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 954 |     pub fn symbol_table(&self) -> &SymbolTable {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 959 |     pub fn errors(&self) -> &ErrorCollector {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Constant` and `Method` are never constructed
[INFO] [stdout]   --> src/symbol_table/mod.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub enum SymbolKind {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 55 |     Variable,
[INFO] [stdout] 56 |     Constant,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     Method,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attributes` is never read
[INFO] [stdout]   --> src/symbol_table/mod.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct Symbol {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub attributes: HashMap<String, String>, // Additional attributes
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Symbol` 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 `with_mutable` and `with_attribute` are never used
[INFO] [stdout]    --> src/symbol_table/mod.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout]  77 | impl Symbol {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn with_mutable(mut self, mutable: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn with_attribute(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `lookup_current_scope`, `get_current_scope_symbols`, and `get_all_symbols` are never used
[INFO] [stdout]    --> src/symbol_table/mod.rs:278:12
[INFO] [stdout]     |
[INFO] [stdout] 161 | impl SymbolTable {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn lookup_current_scope(&self, name: &str) -> Option<&Symbol> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn get_current_scope_symbols(&self) -> Vec<&Symbol> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn get_all_symbols(&self) -> Vec<&Symbol> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.41s
[INFO] running `Command { std: "docker" "inspect" "62463c491528c06d5ad3f2945e38ae4b8de1861996ab18b8cf9c7dbf8827db2f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "62463c491528c06d5ad3f2945e38ae4b8de1861996ab18b8cf9c7dbf8827db2f", kill_on_drop: false }`
[INFO] [stdout] 62463c491528c06d5ad3f2945e38ae4b8de1861996ab18b8cf9c7dbf8827db2f
