[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 { [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 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | fn read_string(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 204 | pub fn next_token(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 362 | pub fn tokenize(&mut self) -> Result, 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 { [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> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 122 | fn parse_declaration(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | fn parse_type_declaration(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 212 | fn parse_function_declaration(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 260 | fn parse_parameter_list(&mut self) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 274 | fn parse_parameter(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 302 | fn parse_type_reference(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 369 | fn parse_variable_declaration(&mut self, is_mutable: bool) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 407 | fn parse_block(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 433 | fn parse_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 499 | fn parse_assignment_operator(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 518 | fn parse_if_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 553 | fn parse_while_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 574 | fn parse_for_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 615 | fn parse_return_statement(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 636 | fn parse_expression(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 640 | fn parse_assignment_expression(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 645 | fn parse_logical_or_expression(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 665 | fn parse_logical_and_expression(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 685 | fn parse_equality_expression(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 712 | fn parse_comparison_expression(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 743 | fn parse_bitwise_expression(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 772 | fn parse_shift_expression(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 799 | fn parse_term(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 826 | fn parse_factor(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 855 | fn parse_unary(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 894 | fn parse_call(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 940 | fn finish_call(&mut self, callee: Expression) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 966 | fn parse_primary(&mut self) -> Result { [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, [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 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn get_parent_scope(&mut self, scope_id: ScopeId) -> Option { [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, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 123 | symbols: HashMap, [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, [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, // 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, [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, [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, // 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, [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, // 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, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 260 | pub span: SourceSpan, [INFO] [stdout] | ^^^^ [INFO] [stdout] 261 | pub local_symbols: HashMap, // 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, [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>, // 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> { [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 { [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(&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) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn sprint_errors(&mut self, diagnostics: Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn print_errors(&mut self, diagnostics: Vec) { [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, // 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, // 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, // 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, [INFO] [stdout] 260 | pub span: SourceSpan, [INFO] [stdout] | ^^^^ [INFO] [stdout] 261 | pub local_symbols: HashMap, // 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, [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, [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> { [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