[INFO] cloning repository https://github.com/kociumba/klang_lib
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kociumba/klang_lib" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkociumba%2Fklang_lib", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkociumba%2Fklang_lib'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d379f7f88fec20f9a54b225d1d87eaef9a611f7a
[INFO] checking kociumba/klang_lib against try#54cf65b8d066c082e536455049b95943cf30378f for pr-151920
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkociumba%2Fklang_lib" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kociumba/klang_lib
[INFO] finished tweaking git repo https://github.com/kociumba/klang_lib
[INFO] tweaked toml for git repo https://github.com/kociumba/klang_lib written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kociumba/klang_lib on toolchain 54cf65b8d066c082e536455049b95943cf30378f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+54cf65b8d066c082e536455049b95943cf30378f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kociumba/klang_lib 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" "+54cf65b8d066c082e536455049b95943cf30378f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+54cf65b8d066c082e536455049b95943cf30378f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a5fc8f8cce8bbed0e9a4e0206d87e8dd466cc5a98b90c3ce41740477a7856195
[INFO] running `Command { std: "docker" "start" "-a" "a5fc8f8cce8bbed0e9a4e0206d87e8dd466cc5a98b90c3ce41740477a7856195", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a5fc8f8cce8bbed0e9a4e0206d87e8dd466cc5a98b90c3ce41740477a7856195", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a5fc8f8cce8bbed0e9a4e0206d87e8dd466cc5a98b90c3ce41740477a7856195", kill_on_drop: false }`
[INFO] [stdout] a5fc8f8cce8bbed0e9a4e0206d87e8dd466cc5a98b90c3ce41740477a7856195
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+54cf65b8d066c082e536455049b95943cf30378f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 98e59bb5aff1bfecaff232c20c76a0286a127b1d4e2b5da432bfdb160782398a
[INFO] running `Command { std: "docker" "start" "-a" "98e59bb5aff1bfecaff232c20c76a0286a127b1d4e2b5da432bfdb160782398a", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]     Checking thiserror v2.0.12
[INFO] [stderr]     Checking klang_lib v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `log::error`
[INFO] [stdout]   --> src/analysis/external_api.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     use log::error;
[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 variable: `object`
[INFO] [stdout]    --> src/analysis/rules/type_check.rs:240:40
[INFO] [stdout]     |
[INFO] [stdout] 240 |             Expression::MemberAccess { object, member, .. } => {
[INFO] [stdout]     |                                        ^^^^^^ help: try ignoring the field: `object: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `member`
[INFO] [stdout]    --> src/analysis/rules/type_check.rs:240:48
[INFO] [stdout]     |
[INFO] [stdout] 240 |             Expression::MemberAccess { object, member, .. } => {
[INFO] [stdout]     |                                                ^^^^^^ help: try ignoring the field: `member: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `array`
[INFO] [stdout]    --> src/analysis/rules/type_check.rs:244:39
[INFO] [stdout]     |
[INFO] [stdout] 244 |             Expression::IndexAccess { array, .. } => {
[INFO] [stdout]     |                                       ^^^^^ help: try ignoring the field: `array: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_ref`
[INFO] [stdout]    --> src/analysis/mod.rs:365:35
[INFO] [stdout]     |
[INFO] [stdout] 365 |             TypeDefinition::Alias(type_ref) => {
[INFO] [stdout]     |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_ref`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Token` is never used
[INFO] [stdout]  --> src/lexer/mod.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum Token {
[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 `SpannedToken` is never constructed
[INFO] [stdout]   --> src/lexer/mod.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub struct SpannedToken {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lexer` is never constructed
[INFO] [stdout]   --> src/lexer/mod.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct Lexer<'src> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/lexer/mod.rs:90:12
[INFO] [stdout]     |
[INFO] [stdout]  89 | impl<'src> Lexer<'src> {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  90 |     pub fn new(source: &'src str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     fn advance(&mut self) -> Option<char> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn peek(&mut self) -> Option<&char> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn skip_whitespace(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn skip_comment(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn read_identifier(&mut self, first_char: char) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn read_number(&mut self, first_char: char) -> Result<f64, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     fn read_string(&mut self) -> Result<String, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn next_token(&mut self) -> Result<SpannedToken, String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn tokenize(&mut self) -> Result<Vec<SpannedToken>, String> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/parser/mod.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Parser<'src> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/parser/mod.rs:31:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl<'src> Parser<'src> {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout]  31 |     pub fn new(lexer: &'src mut Lexer<'src>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     fn advance(&mut self) -> Option<Token> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     fn check(&self, token_type: &Token) -> bool {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn match_token(&mut self, token_type: &Token) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     fn consume(&mut self, token_type: &Token, message: &str) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     fn current_span(&self) -> SourceSpan {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn parse_program(&mut self) -> Result<Program, Vec<String>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     fn parse_declaration(&mut self) -> Result<Declaration, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn parse_type_declaration(&mut self) -> Result<Declaration, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     fn parse_function_declaration(&mut self) -> Result<Declaration, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     fn parse_parameter_list(&mut self) -> Result<Vec<Parameter>, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     fn parse_parameter(&mut self) -> Result<Parameter, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     fn parse_type_reference(&mut self) -> Result<TypeReference, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 369 |     fn parse_variable_declaration(&mut self, is_mutable: bool) -> Result<VariableDeclaration, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 407 |     fn parse_block(&mut self) -> Result<Block, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 433 |     fn parse_statement(&mut self) -> Result<Statement, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 499 |     fn parse_assignment_operator(&mut self) -> Option<AssignmentOperator> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 518 |     fn parse_if_statement(&mut self) -> Result<Statement, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 553 |     fn parse_while_statement(&mut self) -> Result<Statement, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 574 |     fn parse_for_statement(&mut self) -> Result<Statement, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 615 |     fn parse_return_statement(&mut self) -> Result<Statement, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 636 |     fn parse_expression(&mut self) -> Result<Expression, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     fn parse_assignment_expression(&mut self) -> Result<Expression, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 645 |     fn parse_logical_or_expression(&mut self) -> Result<Expression, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 665 |     fn parse_logical_and_expression(&mut self) -> Result<Expression, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 685 |     fn parse_equality_expression(&mut self) -> Result<Expression, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 712 |     fn parse_comparison_expression(&mut self) -> Result<Expression, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 743 |     fn parse_bitwise_expression(&mut self) -> Result<Expression, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 772 |     fn parse_shift_expression(&mut self) -> Result<Expression, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 799 |     fn parse_term(&mut self) -> Result<Expression, String> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 826 |     fn parse_factor(&mut self) -> Result<Expression, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 855 |     fn parse_unary(&mut self) -> Result<Expression, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 894 |     fn parse_call(&mut self) -> Result<Expression, String> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 940 |     fn finish_call(&mut self, callee: Expression) -> Result<Expression, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 966 |     fn parse_primary(&mut self) -> Result<Expression, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `line` and `column` are never read
[INFO] [stdout]  --> src/parser/ast.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct SourcePosition {
[INFO] [stdout]   |            -------------- fields in this struct
[INFO] [stdout] 6 |     pub line: usize,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 7 |     pub column: usize,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `SourcePosition` 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: fields `start` and `end` are never read
[INFO] [stdout]   --> src/parser/ast.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SourceSpan {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 13 |     pub start: SourcePosition,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 14 |     pub end: SourcePosition,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SourceSpan` 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 `AstNode` is never used
[INFO] [stdout]   --> src/parser/ast.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum AstNode<'a> {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scopes`, `next_scope_id`, and `global_scope_id` are never read
[INFO] [stdout]   --> src/parser/ast.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct SymbolTable {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 44 |     scopes: HashMap<ScopeId, Scope>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 45 |     next_scope_id: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 46 |     global_scope_id: ScopeId,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolTable` 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 items `new`, `global_scope`, `create_scope`, `get_parent_scope`, `add_symbol`, and `lookup_symbol` are never used
[INFO] [stdout]   --> src/parser/ast.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl SymbolTable {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 51 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn global_scope(&mut self) -> ScopeId {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn create_scope(&mut self, parent: Option<ScopeId>) -> ScopeId {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn get_parent_scope(&mut self, scope_id: ScopeId) -> Option<ScopeId> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn add_symbol(&mut self, scope_id: ScopeId, name: &str, symbol: Symbol) -> Result<(), String> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn lookup_symbol(&self, scope_id: ScopeId, name: &str) -> Option<&Symbol> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `parent`, and `symbols` are never read
[INFO] [stdout]    --> src/parser/ast.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct Scope {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 121 |     id: ScopeId,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 122 |     parent: Option<ScopeId>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 123 |     symbols: HashMap<String, Symbol>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Scope` 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 `Type`, `Function`, and `Variable` are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:129:5
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub enum Symbol {
[INFO] [stdout]     |          ------ variants in this enum
[INFO] [stdout] 129 |     Type(TypeSymbol),
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 130 |     Function(FunctionSymbol),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 131 |     Variable(VariableSymbol),
[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: fields `name`, `definition`, `span`, and `is_resolved` are never read
[INFO] [stdout]    --> src/parser/ast.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct TypeSymbol {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 137 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 138 |     pub definition: TypeDefinition,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 139 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 140 |     pub is_resolved: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeSymbol` 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: fields `name`, `parameters`, `return_type`, `span`, and `is_resolved` are never read
[INFO] [stdout]    --> src/parser/ast.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct FunctionSymbol {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 146 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 147 |     pub parameters: Vec<Parameter>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 148 |     pub return_type: TypeReference,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 149 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 150 |     pub is_resolved: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FunctionSymbol` 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: fields `name`, `type_ref`, `is_mutable`, `span`, and `is_resolved` are never read
[INFO] [stdout]    --> src/parser/ast.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub struct VariableSymbol {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 156 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 157 |     pub type_ref: TypeReference,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 158 |     pub is_mutable: bool,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 159 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 160 |     pub is_resolved: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VariableSymbol` 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 `TypeDeclaration`, `FunctionDeclaration`, and `VariableDeclaration` are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:166:5
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub enum Declaration {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] 166 |     TypeDeclaration(TypeDeclaration),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 167 |     FunctionDeclaration(FunctionDeclaration),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 168 |     VariableDeclaration(VariableDeclaration),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Declaration` 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: fields `name`, `definition`, `span`, and `symbol_id` are never read
[INFO] [stdout]    --> src/parser/ast.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub struct TypeDeclaration {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 174 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 175 |     pub definition: TypeDefinition,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 176 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 177 |     pub symbol_id: Option<String>, // Reference to the symbol table
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeDeclaration` 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 `Alias` and `Struct` are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub enum TypeDefinition {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout] 183 |     Alias(TypeReference),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 184 |     Struct(StructDefinition),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeDefinition` 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 `fields` is never read
[INFO] [stdout]    --> src/parser/ast.rs:190:9
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub struct StructDefinition {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 190 |     pub fields: Vec<StructField>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StructDefinition` 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: fields `name`, `type_ref`, and `span` are never read
[INFO] [stdout]    --> src/parser/ast.rs:196:9
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct StructField {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 196 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 197 |     pub type_ref: TypeReference,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 198 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StructField` 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: fields `name`, `parameters`, `return_type`, `body`, `span`, and `symbol_id` are never read
[INFO] [stdout]    --> src/parser/ast.rs:204:9
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub struct FunctionDeclaration {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 204 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 205 |     pub parameters: Vec<Parameter>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 206 |     pub return_type: TypeReference,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 207 |     pub body: Block,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 208 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 209 |     pub symbol_id: Option<String>, // Reference to the symbol table
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FunctionDeclaration` 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: fields `name`, `type_ref`, and `span` are never read
[INFO] [stdout]    --> src/parser/ast.rs:215:9
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub struct Parameter {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 215 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 216 |     pub type_ref: TypeReference,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 217 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Parameter` 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: fields `name`, `type_ref`, `initializer`, `is_mutable`, `span`, and `symbol_id` are never read
[INFO] [stdout]    --> src/parser/ast.rs:223:9
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct VariableDeclaration {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout] 223 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 224 |     pub type_ref: TypeReference,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 225 |     pub initializer: Option<Expression>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 226 |     pub is_mutable: bool,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 227 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 228 |     pub symbol_id: Option<String>, // Reference to the symbol table
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VariableDeclaration` 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: multiple variants are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:235:5
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub enum TypeReference {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] 234 |     // Built-in types
[INFO] [stdout] 235 |     Int32,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 236 |     Int64,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 237 |     Float32,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 238 |     Float64,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 239 |     Bool,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 240 |     String,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 241 |     Void,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     Named(String),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     Function {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     Unresolved,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeReference` 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: fields `statements`, `span`, and `local_symbols` are never read
[INFO] [stdout]    --> src/parser/ast.rs:259:9
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub struct Block {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 259 |     pub statements: Vec<Statement>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 260 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 261 |     pub local_symbols: HashMap<String, Symbol>, // Local scope
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Block` 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: multiple variants are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:267:5
[INFO] [stdout]     |
[INFO] [stdout] 266 | pub enum Statement {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 267 |     VariableDeclaration(VariableDeclaration),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 268 |     Assignment(Assignment),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 269 |     ExpressionStatement(Expression),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 270 |     ReturnStatement(ReturnStatement),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 271 |     IfStatement(IfStatement),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 272 |     WhileStatement(WhileStatement),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 273 |     ForStatement(ForStatement),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 274 |     Block(Block),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Statement` 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: fields `target`, `operator`, `value`, and `span` are never read
[INFO] [stdout]    --> src/parser/ast.rs:280:9
[INFO] [stdout]     |
[INFO] [stdout] 279 | pub struct Assignment {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 280 |     pub target: LValue,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 281 |     pub operator: AssignmentOperator,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 282 |     pub value: Expression,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 283 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Assignment` 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 `Identifier`, `MemberAccess`, and `IndexAccess` are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub enum LValue {
[INFO] [stdout]     |          ------ variants in this enum
[INFO] [stdout] 289 |     Identifier(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 290 |     MemberAccess {
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     IndexAccess {
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LValue` 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: multiple variants are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:303:5
[INFO] [stdout]     |
[INFO] [stdout] 302 | pub enum AssignmentOperator {
[INFO] [stdout]     |          ------------------ variants in this enum
[INFO] [stdout] 303 |     Simple,     // =
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 304 |     Add,        // +=
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 305 |     Subtract,   // -=
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 306 |     Multiply,   // *=
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 307 |     Divide,     // /=
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 308 |     Modulo,     // %=
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 309 |     BitwiseAnd, // &=
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 310 |     BitwiseOr,  // |=
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 311 |     BitwiseXor, // ^=
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 312 |     LeftShift,  // <<=
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 313 |     RightShift, // >>=
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AssignmentOperator` 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: fields `value` and `span` are never read
[INFO] [stdout]    --> src/parser/ast.rs:319:9
[INFO] [stdout]     |
[INFO] [stdout] 318 | pub struct ReturnStatement {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 319 |     pub value: Option<Expression>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 320 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ReturnStatement` 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: fields `condition`, `then_branch`, `else_branch`, and `span` are never read
[INFO] [stdout]    --> src/parser/ast.rs:326:9
[INFO] [stdout]     |
[INFO] [stdout] 325 | pub struct IfStatement {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 326 |     pub condition: Expression,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 327 |     pub then_branch: Block,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 328 |     pub else_branch: Option<Box<Statement>>, // Either Block or another IfStatement (for else if)
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 329 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IfStatement` 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: fields `condition`, `body`, and `span` are never read
[INFO] [stdout]    --> src/parser/ast.rs:335:9
[INFO] [stdout]     |
[INFO] [stdout] 334 | pub struct WhileStatement {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 335 |     pub condition: Expression,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 336 |     pub body: Block,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 337 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WhileStatement` 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: fields `iterator`, `iterable`, `body`, and `span` are never read
[INFO] [stdout]    --> src/parser/ast.rs:343:9
[INFO] [stdout]     |
[INFO] [stdout] 342 | pub struct ForStatement {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 343 |     pub iterator: String,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 344 |     pub iterable: Expression, // Could be a range or a collection
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 345 |     pub body: Block,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 346 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ForStatement` 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: multiple variants are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:352:5
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub enum Expression {
[INFO] [stdout]     |          ---------- variants in this enum
[INFO] [stdout] 352 |     Literal(Literal),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 353 |     Identifier(String),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 354 |     BinaryOperation {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     UnaryOperation {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 367 |     FunctionCall {
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |     MemberAccess {
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 379 |     IndexAccess {
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     Grouping {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expression` 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 `Integer`, `Float`, `String`, `Boolean`, and `Null` are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:395:5
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub enum Literal {
[INFO] [stdout]     |          ------- variants in this enum
[INFO] [stdout] 395 |     Integer(i64),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 396 |     Float(f64),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 397 |     String(String),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 398 |     Boolean(bool),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 399 |     Null,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Literal` 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: multiple variants are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:406:5
[INFO] [stdout]     |
[INFO] [stdout] 404 | pub enum BinaryOperator {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout] 405 |     // Arithmetic
[INFO] [stdout] 406 |     Add,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 407 |     Subtract,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 408 |     Multiply,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 409 |     Divide,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 410 |     Modulo,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 413 |     Equal,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 414 |     NotEqual,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 415 |     LessThan,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 416 |     LessThanOrEqual,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 417 |     GreaterThan,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 418 |     GreaterThanOrEqual,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 421 |     And,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 422 |     Or,
[INFO] [stdout]     |     ^^
[INFO] [stdout] ...
[INFO] [stdout] 425 |     BitwiseAnd,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 426 |     BitwiseOr,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 427 |     BitwiseXor,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 428 |     LeftShift,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 429 |     RightShift,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BinaryOperator` 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 `Positive`, `Negative`, `Not`, and `BitwiseNot` are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:435:5
[INFO] [stdout]     |
[INFO] [stdout] 434 | pub enum UnaryOperator {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] 435 |     Positive,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 436 |     Negative,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 437 |     Not,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 438 |     BitwiseNot,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UnaryOperator` 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: struct `SemanticAnalyzer` is never constructed
[INFO] [stdout]   --> src/analysis/mod.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct SemanticAnalyzer {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/analysis/mod.rs:24:12
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl SemanticAnalyzer {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  24 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  42 |     pub fn analyze(&self, program: &mut Program) -> Result<(), Vec<Diagnostic>> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     fn collect_declarations(&self, ctx: &mut AnalysisContext) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     fn apply_rules(&self, ctx: &mut AnalysisContext) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     fn visit_program(&self, ctx: &mut AnalysisContext) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn visit_declaration(&self, ctx: &mut AnalysisContext, decl: &Declaration) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     fn visit_block(&self, ctx: &mut AnalysisContext, block: &Block) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     fn visit_statement(&self, ctx: &mut AnalysisContext, stmt: &Statement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     fn visit_expression(&self, ctx: &mut AnalysisContext, expr: &Expression) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     fn visit_type_definition(&self, ctx: &mut AnalysisContext, type_def: &TypeDefinition) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SemanticRule` is never used
[INFO] [stdout]  --> src/analysis/rule.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait SemanticRule {
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DiagnosticSeverity` is never used
[INFO] [stdout]  --> src/analysis/diagnostic.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum DiagnosticSeverity {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Diagnostic` is never constructed
[INFO] [stdout]   --> src/analysis/diagnostic.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Diagnostic {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DiagnosticRelatedInfo` is never constructed
[INFO] [stdout]   --> src/analysis/diagnostic.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct DiagnosticRelatedInfo {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DiagnosticCollector` is never constructed
[INFO] [stdout]   --> src/analysis/diagnostic.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct DiagnosticCollector {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/analysis/diagnostic.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl DiagnosticCollector {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 32 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn add(&mut self, diagnostic: Diagnostic) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn report_error(&mut self, rule_id: &str, message: String, span: SourceSpan) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn report_warning(&mut self, rule_id: &str, message: String, span: SourceSpan) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn report_info(&mut self, rule_id: &str, message: String, span: SourceSpan) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn has_errors(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn diagnostics(&self) -> &[Diagnostic] {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn to_c_strings(&self) -> Vec<*mut c_char> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AnalysisContext` is never constructed
[INFO] [stdout]  --> src/analysis/context.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct AnalysisContext<'a> {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_rule_enabled`, `enter_scope`, `exit_scope`, and `get_span_for_identifier` are never used
[INFO] [stdout]   --> src/analysis/context.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<'a> AnalysisContext<'a> {
[INFO] [stdout]    | ---------------------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new(program: &'a mut Program) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn is_rule_enabled(&self, rule_id: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn enter_scope(&mut self) -> ScopeId {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn exit_scope(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn get_span_for_identifier(&mut self, name: &String) -> Option<SourceSpan> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RuleRegistry` is never constructed
[INFO] [stdout]  --> src/analysis/rule_registry.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct RuleRegistry {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `register`, `get_rule`, and `get_all_rules` are never used
[INFO] [stdout]   --> src/analysis/rule_registry.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl RuleRegistry {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn register<R: SemanticRule + 'static>(&mut self, rule: R) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn get_rule(&self, rule_id: &str) -> Option<&dyn SemanticRule> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn get_all_rules(&self) -> Vec<&dyn SemanticRule> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DuplicateDeclarationRule` is never constructed
[INFO] [stdout]  --> src/analysis/rules/duplicate_decl.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct DuplicateDeclarationRule;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypeCheckRule` is never constructed
[INFO] [stdout]   --> src/analysis/rules/type_check.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct TypeCheckRule;
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `get_lvalue_type`, `get_expression_type`, `are_types_compatible`, `are_numeric_types`, `type_to_string`, and `operator_to_string` are never used
[INFO] [stdout]    --> src/analysis/rules/type_check.rs:89:8
[INFO] [stdout]     |
[INFO] [stdout]  88 | impl TypeCheckRule {
[INFO] [stdout]     | ------------------ associated functions in this implementation
[INFO] [stdout]  89 |     fn get_lvalue_type(ctx: &mut AnalysisContext, lvalue: &LValue) -> TypeReference {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub(crate) fn get_expression_type(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub(crate) fn are_types_compatible(t1: &TypeReference, t2: &TypeReference) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     fn are_numeric_types(typ: &TypeReference) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub(crate) fn type_to_string(typ: &TypeReference) -> String {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     fn operator_to_string(op: &BinaryOperator) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UndefinedVariableRule` is never constructed
[INFO] [stdout]  --> src/analysis/rules/undefined_val.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct UndefinedVariableRule;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReturnTypeCheckRule` is never constructed
[INFO] [stdout]  --> src/analysis/rules/return_type.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ReturnTypeCheckRule;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypeResolutionRule` is never constructed
[INFO] [stdout]  --> src/analysis/rules/type_resolve.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TypeResolutionRule;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AnalyzerConfig` is never constructed
[INFO] [stdout]  --> src/analysis/external_api.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct AnalyzerConfig {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `analyze_with_config` and `list_rules` are never used
[INFO] [stdout]   --> src/analysis/external_api.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl SemanticAnalyzer {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] 23 |     pub fn analyze_with_config(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn list_rules(&self) -> Vec<(&'static str, &'static str, DiagnosticSeverity)> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DiagnosticPrinter` is never constructed
[INFO] [stdout]  --> src/analysis/diagnostic_printer.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct DiagnosticPrinter {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `sprint_errors`, and `print_errors` are never used
[INFO] [stdout]   --> src/analysis/diagnostic_printer.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl DiagnosticPrinter {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new(source_code: String, file_name: String, use_colors: Option<bool>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn sprint_errors(&mut self, diagnostics: Vec<Diagnostic>) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn print_errors(&mut self, diagnostics: Vec<Diagnostic>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `object`
[INFO] [stdout]    --> src/analysis/rules/type_check.rs:240:40
[INFO] [stdout]     |
[INFO] [stdout] 240 |             Expression::MemberAccess { object, member, .. } => {
[INFO] [stdout]     |                                        ^^^^^^ help: try ignoring the field: `object: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `member`
[INFO] [stdout]    --> src/analysis/rules/type_check.rs:240:48
[INFO] [stdout]     |
[INFO] [stdout] 240 |             Expression::MemberAccess { object, member, .. } => {
[INFO] [stdout]     |                                                ^^^^^^ help: try ignoring the field: `member: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `array`
[INFO] [stdout]    --> src/analysis/rules/type_check.rs:244:39
[INFO] [stdout]     |
[INFO] [stdout] 244 |             Expression::IndexAccess { array, .. } => {
[INFO] [stdout]     |                                       ^^^^^ help: try ignoring the field: `array: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `type_ref`
[INFO] [stdout]    --> src/analysis/mod.rs:365:35
[INFO] [stdout]     |
[INFO] [stdout] 365 |             TypeDefinition::Alias(type_ref) => {
[INFO] [stdout]     |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_type_ref`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `source` is never read
[INFO] [stdout]   --> src/lexer/mod.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct Lexer<'src> {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 83 |     source: &'src 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: field `0` is never read
[INFO] [stdout]   --> src/parser/ast.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |     Program(&'a Program),
[INFO] [stdout]    |     ------- ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[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] 30 -     Program(&'a Program),
[INFO] [stdout] 30 +     Program(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/parser/ast.rs:32:21
[INFO] [stdout]    |
[INFO] [stdout] 32 |     TypeDeclaration(&'a TypeDeclaration),
[INFO] [stdout]    |     --------------- ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[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] 32 -     TypeDeclaration(&'a TypeDeclaration),
[INFO] [stdout] 32 +     TypeDeclaration(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/parser/ast.rs:38:17
[INFO] [stdout]    |
[INFO] [stdout] 38 |     StructField(&'a StructField),
[INFO] [stdout]    |     ----------- ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[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] 38 -     StructField(&'a StructField),
[INFO] [stdout] 38 +     StructField(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Declaration` and `Block` are never constructed
[INFO] [stdout]   --> src/parser/ast.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum AstNode<'a> {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] 30 |     Program(&'a Program),
[INFO] [stdout] 31 |     Declaration(&'a Declaration),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     Block(&'a Block),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/parser/ast.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct Scope {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 121 |     id: ScopeId,
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Scope` 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: fields `name`, `definition`, and `is_resolved` are never read
[INFO] [stdout]    --> src/parser/ast.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct TypeSymbol {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 137 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 138 |     pub definition: TypeDefinition,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 139 |     pub span: SourceSpan,
[INFO] [stdout] 140 |     pub is_resolved: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeSymbol` 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: fields `name` and `is_resolved` are never read
[INFO] [stdout]    --> src/parser/ast.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct FunctionSymbol {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 146 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub is_resolved: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FunctionSymbol` 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: fields `name`, `is_mutable`, and `is_resolved` are never read
[INFO] [stdout]    --> src/parser/ast.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub struct VariableSymbol {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 156 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 157 |     pub type_ref: TypeReference,
[INFO] [stdout] 158 |     pub is_mutable: bool,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 159 |     pub span: SourceSpan,
[INFO] [stdout] 160 |     pub is_resolved: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VariableSymbol` 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 `symbol_id` is never read
[INFO] [stdout]    --> src/parser/ast.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub struct TypeDeclaration {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub symbol_id: Option<String>, // Reference to the symbol table
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TypeDeclaration` 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: fields `name`, `type_ref`, and `span` are never read
[INFO] [stdout]    --> src/parser/ast.rs:196:9
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct StructField {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 196 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 197 |     pub type_ref: TypeReference,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 198 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StructField` 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 `symbol_id` is never read
[INFO] [stdout]    --> src/parser/ast.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub struct FunctionDeclaration {
[INFO] [stdout]     |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub symbol_id: Option<String>, // Reference to the symbol table
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FunctionDeclaration` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.19s
[INFO] [stdout] warning: field `symbol_id` is never read
[INFO] [stdout]    --> src/parser/ast.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct VariableDeclaration {
[INFO] [stdout]     |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub symbol_id: Option<String>, // Reference to the symbol table
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VariableDeclaration` 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: fields `span` and `local_symbols` are never read
[INFO] [stdout]    --> src/parser/ast.rs:260:9
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub struct Block {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 259 |     pub statements: Vec<Statement>,
[INFO] [stdout] 260 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 261 |     pub local_symbols: HashMap<String, Symbol>, // Local scope
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Block` 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 `operator` is never read
[INFO] [stdout]    --> src/parser/ast.rs:281:9
[INFO] [stdout]     |
[INFO] [stdout] 279 | pub struct Assignment {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 280 |     pub target: LValue,
[INFO] [stdout] 281 |     pub operator: AssignmentOperator,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Assignment` 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 `member` is never read
[INFO] [stdout]    --> src/parser/ast.rs:292:9
[INFO] [stdout]     |
[INFO] [stdout] 290 |     MemberAccess {
[INFO] [stdout]     |     ------------ field in this variant
[INFO] [stdout] 291 |         object: Box<Expression>,
[INFO] [stdout] 292 |         member: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LValue` 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: multiple variants are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 302 | pub enum AssignmentOperator {
[INFO] [stdout]     |          ------------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 306 |     Multiply,   // *=
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 307 |     Divide,     // /=
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 308 |     Modulo,     // %=
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 309 |     BitwiseAnd, // &=
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 310 |     BitwiseOr,  // |=
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 311 |     BitwiseXor, // ^=
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 312 |     LeftShift,  // <<=
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 313 |     RightShift, // >>=
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AssignmentOperator` 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 `span` is never read
[INFO] [stdout]    --> src/parser/ast.rs:329:9
[INFO] [stdout]     |
[INFO] [stdout] 325 | pub struct IfStatement {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IfStatement` 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 `span` is never read
[INFO] [stdout]    --> src/parser/ast.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 334 | pub struct WhileStatement {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WhileStatement` 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 `type_ref` is never read
[INFO] [stdout]    --> src/parser/ast.rs:359:9
[INFO] [stdout]     |
[INFO] [stdout] 354 |     BinaryOperation {
[INFO] [stdout]     |     --------------- field in this variant
[INFO] [stdout] ...
[INFO] [stdout] 359 |         type_ref: TypeReference, // Filled during type checking
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expression` 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: fields `span` and `type_ref` are never read
[INFO] [stdout]    --> src/parser/ast.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 361 |     UnaryOperation {
[INFO] [stdout]     |     -------------- fields in this variant
[INFO] [stdout] ...
[INFO] [stdout] 364 |         span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 365 |         type_ref: TypeReference, // Filled during type checking
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expression` 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: fields `span` and `type_ref` are never read
[INFO] [stdout]    --> src/parser/ast.rs:370:9
[INFO] [stdout]     |
[INFO] [stdout] 367 |     FunctionCall {
[INFO] [stdout]     |     ------------ fields in this variant
[INFO] [stdout] ...
[INFO] [stdout] 370 |         span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 371 |         type_ref: TypeReference, // Return type, filled during type checking
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expression` 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: fields `span` and `type_ref` are never read
[INFO] [stdout]    --> src/parser/ast.rs:376:9
[INFO] [stdout]     |
[INFO] [stdout] 373 |     MemberAccess {
[INFO] [stdout]     |     ------------ fields in this variant
[INFO] [stdout] ...
[INFO] [stdout] 376 |         span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 377 |         type_ref: TypeReference, // Filled during type checking
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expression` 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: fields `span` and `type_ref` are never read
[INFO] [stdout]    --> src/parser/ast.rs:382:9
[INFO] [stdout]     |
[INFO] [stdout] 379 |     IndexAccess {
[INFO] [stdout]     |     ----------- fields in this variant
[INFO] [stdout] ...
[INFO] [stdout] 382 |         span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 383 |         type_ref: TypeReference, // Filled during type checking
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expression` 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: fields `span` and `type_ref` are never read
[INFO] [stdout]    --> src/parser/ast.rs:387:9
[INFO] [stdout]     |
[INFO] [stdout] 385 |     Grouping {
[INFO] [stdout]     |     -------- fields in this variant
[INFO] [stdout] 386 |         expression: Box<Expression>,
[INFO] [stdout] 387 |         span: SourceSpan,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 388 |         type_ref: TypeReference, // Same as inner expression, filled during type checking
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expression` 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 `0` is never read
[INFO] [stdout]    --> src/parser/ast.rs:395:13
[INFO] [stdout]     |
[INFO] [stdout] 395 |     Integer(i64),
[INFO] [stdout]     |     ------- ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Literal` has derived impls for the traits `Clone` and `Debug`, but these are 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] 395 -     Integer(i64),
[INFO] [stdout] 395 +     Integer(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/parser/ast.rs:397:12
[INFO] [stdout]     |
[INFO] [stdout] 397 |     String(String),
[INFO] [stdout]     |     ------ ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Literal` has derived impls for the traits `Clone` and `Debug`, but these are 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] 397 -     String(String),
[INFO] [stdout] 397 +     String(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Float`, `Boolean`, and `Null` are never constructed
[INFO] [stdout]    --> src/parser/ast.rs:396:5
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub enum Literal {
[INFO] [stdout]     |          ------- variants in this enum
[INFO] [stdout] 395 |     Integer(i64),
[INFO] [stdout] 396 |     Float(f64),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 397 |     String(String),
[INFO] [stdout] 398 |     Boolean(bool),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 399 |     Null,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Literal` 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 `BitwiseNot` is never constructed
[INFO] [stdout]    --> src/parser/ast.rs:438:5
[INFO] [stdout]     |
[INFO] [stdout] 434 | pub enum UnaryOperator {
[INFO] [stdout]     |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 438 |     BitwiseNot,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UnaryOperator` 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 `analyze` is never used
[INFO] [stdout]   --> src/analysis/mod.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl SemanticAnalyzer {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn analyze(&self, program: &mut Program) -> Result<(), Vec<Diagnostic>> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `description`, `severity`, and `enabled_by_default` are never used
[INFO] [stdout]   --> src/analysis/rule.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub trait SemanticRule {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 10 |     fn description(&self) -> &'static str;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     fn severity(&self) -> DiagnosticSeverity;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     fn enabled_by_default(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `report_warning`, `report_info`, `has_errors`, and `to_c_strings` are never used
[INFO] [stdout]   --> src/analysis/diagnostic.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl DiagnosticCollector {
[INFO] [stdout]    | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn report_warning(&mut self, rule_id: &str, message: String, span: SourceSpan) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn report_info(&mut self, rule_id: &str, message: String, span: SourceSpan) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn has_errors(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn to_c_strings(&self) -> Vec<*mut c_char> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_rule` is never used
[INFO] [stdout]   --> src/analysis/rule_registry.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl RuleRegistry {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn get_rule(&self, rule_id: &str) -> Option<&dyn SemanticRule> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `list_rules` is never used
[INFO] [stdout]   --> src/analysis/external_api.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl SemanticAnalyzer {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn list_rules(&self) -> Vec<(&'static str, &'static str, DiagnosticSeverity)> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `use_colors` is never read
[INFO] [stdout]  --> src/analysis/diagnostic_printer.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct DiagnosticPrinter {
[INFO] [stdout]   |            ----------------- field in this struct
[INFO] [stdout] 4 |     pub use_colors: bool,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "98e59bb5aff1bfecaff232c20c76a0286a127b1d4e2b5da432bfdb160782398a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "98e59bb5aff1bfecaff232c20c76a0286a127b1d4e2b5da432bfdb160782398a", kill_on_drop: false }`
[INFO] [stdout] 98e59bb5aff1bfecaff232c20c76a0286a127b1d4e2b5da432bfdb160782398a
