[INFO] cloning repository https://github.com/fuzzymf/ferry [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fuzzymf/ferry" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffuzzymf%2Fferry", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffuzzymf%2Fferry'... [INFO] [stderr] /workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffuzzymf%2Fferry/objects: No space left on device [WARN] Retrying crate fetch in 3 seconds (attempt 1) [INFO] cloning repository https://github.com/fuzzymf/ferry [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fuzzymf/ferry" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffuzzymf%2Fferry", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffuzzymf%2Fferry'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 9b3438e882d5fdecf5fb1bdc21d4ff8ccc119d0d [INFO] checking fuzzymf/ferry against master#3350c1eb3fd8fe1bee1ed4c76944d707bd256876 for pr-140558 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffuzzymf%2Fferry" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/fuzzymf/ferry on toolchain 3350c1eb3fd8fe1bee1ed4c76944d707bd256876 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3350c1eb3fd8fe1bee1ed4c76944d707bd256876" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/fuzzymf/ferry [INFO] finished tweaking git repo https://github.com/fuzzymf/ferry [INFO] tweaked toml for git repo https://github.com/fuzzymf/ferry written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/fuzzymf/ferry 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" "+3350c1eb3fd8fe1bee1ed4c76944d707bd256876" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+3350c1eb3fd8fe1bee1ed4c76944d707bd256876" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8a660fe4f3a152c4b3b70ecfda8c027383922a8800aa17eeb074a90abe9d83f7 [INFO] running `Command { std: "docker" "start" "-a" "8a660fe4f3a152c4b3b70ecfda8c027383922a8800aa17eeb074a90abe9d83f7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8a660fe4f3a152c4b3b70ecfda8c027383922a8800aa17eeb074a90abe9d83f7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8a660fe4f3a152c4b3b70ecfda8c027383922a8800aa17eeb074a90abe9d83f7", kill_on_drop: false }` [INFO] [stdout] 8a660fe4f3a152c4b3b70ecfda8c027383922a8800aa17eeb074a90abe9d83f7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+3350c1eb3fd8fe1bee1ed4c76944d707bd256876" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4ef353223319367223c2acfc5824f5cb5ad9b1573dd2c955828e2c51519b58d9 [INFO] running `Command { std: "docker" "start" "-a" "4ef353223319367223c2acfc5824f5cb5ad9b1573dd2c955828e2c51519b58d9", kill_on_drop: false }` [INFO] [stderr] Checking ferry v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Keyword` [INFO] [stdout] --> src/parser/declarations.rs:3:51 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::types::{ASTNodeType, DataType, Keyword, TokenType}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Keyword` [INFO] [stdout] --> src/parser/expressions.rs:3:41 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::types::{ASTNodeType, Keyword, TokenType}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Keyword` [INFO] [stdout] --> src/parser/declarations.rs:3:51 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::types::{ASTNodeType, DataType, Keyword, TokenType}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Keyword` [INFO] [stdout] --> src/parser/expressions.rs:3:41 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::types::{ASTNodeType, Keyword, TokenType}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `count` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:235:18 [INFO] [stdout] | [INFO] [stdout] 235 | let (result, count) = fold_and_propagate_with_stats(node, const_map, changed)?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_count` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `original_len` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:862:13 [INFO] [stdout] | [INFO] [stdout] 862 | let original_len = result.children.len(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target_changed` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:904:52 [INFO] [stdout] | [INFO] [stdout] 904 | ... let (target_block, target_changed, target_removed) = [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_changed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `changed` is never read [INFO] [stdout] --> src/ir/advanced_optimiser.rs:913:33 [INFO] [stdout] | [INFO] [stdout] 913 | ... changed = true; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `loop_optimized` is never read [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1058:21 [INFO] [stdout] | [INFO] [stdout] 1058 | loop_optimized = true; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ind_var` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1265:18 [INFO] [stdout] | [INFO] [stdout] 1265 | let (ind_var, const_node) = if is_induction_var(&condition.children[0], induction_vars) [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ind_var` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ind_idx` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1642:59 [INFO] [stdout] | [INFO] [stdout] 1642 | ... let (has_ind_var, ind_idx, const_idx) = if is_induction_var( [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ind_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_node` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1870:22 [INFO] [stdout] | [INFO] [stdout] 1870 | let (var_node, const_node) = [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ind_idx` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2097:34 [INFO] [stdout] | [INFO] [stdout] 2097 | let (is_ind_var, ind_idx, const_idx) = [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ind_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `has_multiple_returns` is assigned to, but never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2458:13 [INFO] [stdout] | [INFO] [stdout] 2458 | let mut has_multiple_returns = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_has_multiple_returns` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `has_multiple_returns` is never read [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2469:9 [INFO] [stdout] | [INFO] [stdout] 2469 | has_multiple_returns = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_node` [INFO] [stdout] --> src/ir/basic_optimiser.rs:827:22 [INFO] [stdout] | [INFO] [stdout] 827 | let (var_node, const_node) = [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ind_idx` [INFO] [stdout] --> src/ir/basic_optimiser.rs:1079:34 [INFO] [stdout] | [INFO] [stdout] 1079 | let (is_ind_var, ind_idx, const_idx) = [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ind_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `count` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:235:18 [INFO] [stdout] | [INFO] [stdout] 235 | let (result, count) = fold_and_propagate_with_stats(node, const_map, changed)?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_count` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `original_len` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:862:13 [INFO] [stdout] | [INFO] [stdout] 862 | let original_len = result.children.len(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target_changed` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:904:52 [INFO] [stdout] | [INFO] [stdout] 904 | ... let (target_block, target_changed, target_removed) = [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_changed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `changed` is never read [INFO] [stdout] --> src/ir/advanced_optimiser.rs:913:33 [INFO] [stdout] | [INFO] [stdout] 913 | ... changed = true; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `void_ptr_type` [INFO] [stdout] --> src/semantic/preprocessor.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | let void_ptr_type = Type::Pointer(Box::new(void_type.clone())); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_void_ptr_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `loop_optimized` is never read [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1058:21 [INFO] [stdout] | [INFO] [stdout] 1058 | loop_optimized = true; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `float_type` [INFO] [stdout] --> src/semantic/preprocessor.rs:330:9 [INFO] [stdout] | [INFO] [stdout] 330 | let float_type = Type::Float; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_float_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/semantic/symbol_table.rs:87:14 [INFO] [stdout] | [INFO] [stdout] 87 | for (i, scope) in self.scopes.iter().enumerate().rev() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ind_var` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1265:18 [INFO] [stdout] | [INFO] [stdout] 1265 | let (ind_var, const_node) = if is_induction_var(&condition.children[0], induction_vars) [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ind_var` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ind_idx` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1642:59 [INFO] [stdout] | [INFO] [stdout] 1642 | ... let (has_ind_var, ind_idx, const_idx) = if is_induction_var( [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ind_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_node` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1870:22 [INFO] [stdout] | [INFO] [stdout] 1870 | let (var_node, const_node) = [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ind_idx` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2097:34 [INFO] [stdout] | [INFO] [stdout] 2097 | let (is_ind_var, ind_idx, const_idx) = [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ind_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `has_multiple_returns` is assigned to, but never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2458:13 [INFO] [stdout] | [INFO] [stdout] 2458 | let mut has_multiple_returns = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_has_multiple_returns` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `has_multiple_returns` is never read [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2469:9 [INFO] [stdout] | [INFO] [stdout] 2469 | has_multiple_returns = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `return_type` [INFO] [stdout] --> src/semantic/mod.rs:510:25 [INFO] [stdout] | [INFO] [stdout] 510 | return_type, [INFO] [stdout] | ^^^^^^^^^^^ help: try ignoring the field: `return_type: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `return_type` [INFO] [stdout] --> src/semantic/mod.rs:541:50 [INFO] [stdout] | [INFO] [stdout] 541 | symbol_table::Type::Variadic(return_type) => { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `constant_folding_and_propagation` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:114:4 [INFO] [stdout] | [INFO] [stdout] 114 | fn constant_folding_and_propagation(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fold_and_propagate` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:229:4 [INFO] [stdout] | [INFO] [stdout] 229 | fn fold_and_propagate( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enhanced_dead_code_elimination` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:430:4 [INFO] [stdout] | [INFO] [stdout] 430 | fn enhanced_dead_code_elimination(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_dead_code` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:771:4 [INFO] [stdout] | [INFO] [stdout] 771 | fn remove_dead_code( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `advanced_loop_optimization` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1007:4 [INFO] [stdout] | [INFO] [stdout] 1007 | fn advanced_loop_optimization(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Float` and `Bool` are never constructed [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1163:5 [INFO] [stdout] | [INFO] [stdout] 1161 | enum IRValue { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 1162 | Int(i32), [INFO] [stdout] 1163 | Float(f32), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 1164 | Bool(bool), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IRValue` 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: function `common_subexpression_elimination` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2296:4 [INFO] [stdout] | [INFO] [stdout] 2296 | fn common_subexpression_elimination(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_cse` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2362:4 [INFO] [stdout] | [INFO] [stdout] 2362 | fn apply_cse( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `optimize_functions` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2413:4 [INFO] [stdout] | [INFO] [stdout] 2413 | fn optimize_functions(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `var_counter` is never read [INFO] [stdout] --> src/ir/generator.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct IRGenerator { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 6 | // Counter for generating unique variable names in the IR [INFO] [stdout] 7 | var_counter: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `fresh_var` is never used [INFO] [stdout] --> src/ir/generator.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 12 | impl IRGenerator { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 21 | fn fresh_var(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Operator` is never used [INFO] [stdout] --> src/parser/types.rs:85:6 [INFO] [stdout] | [INFO] [stdout] 85 | enum Operator { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_node` [INFO] [stdout] --> src/ir/basic_optimiser.rs:827:22 [INFO] [stdout] | [INFO] [stdout] 827 | let (var_node, const_node) = [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ind_idx` [INFO] [stdout] --> src/ir/basic_optimiser.rs:1079:34 [INFO] [stdout] | [INFO] [stdout] 1079 | let (is_ind_var, ind_idx, const_idx) = [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ind_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `void_ptr_type` [INFO] [stdout] --> src/semantic/preprocessor.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | let void_ptr_type = Type::Pointer(Box::new(void_type.clone())); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_void_ptr_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `float_type` [INFO] [stdout] --> src/semantic/preprocessor.rs:330:9 [INFO] [stdout] | [INFO] [stdout] 330 | let float_type = Type::Float; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_float_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/semantic/symbol_table.rs:87:14 [INFO] [stdout] | [INFO] [stdout] 87 | for (i, scope) in self.scopes.iter().enumerate().rev() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `return_type` [INFO] [stdout] --> src/semantic/mod.rs:510:25 [INFO] [stdout] | [INFO] [stdout] 510 | return_type, [INFO] [stdout] | ^^^^^^^^^^^ help: try ignoring the field: `return_type: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `return_type` [INFO] [stdout] --> src/semantic/mod.rs:541:50 [INFO] [stdout] | [INFO] [stdout] 541 | symbol_table::Type::Variadic(return_type) => { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `constant_folding_and_propagation` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:114:4 [INFO] [stdout] | [INFO] [stdout] 114 | fn constant_folding_and_propagation(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fold_and_propagate` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:229:4 [INFO] [stdout] | [INFO] [stdout] 229 | fn fold_and_propagate( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enhanced_dead_code_elimination` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:430:4 [INFO] [stdout] | [INFO] [stdout] 430 | fn enhanced_dead_code_elimination(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_dead_code` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:771:4 [INFO] [stdout] | [INFO] [stdout] 771 | fn remove_dead_code( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `advanced_loop_optimization` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1007:4 [INFO] [stdout] | [INFO] [stdout] 1007 | fn advanced_loop_optimization(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Float` and `Bool` are never constructed [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1163:5 [INFO] [stdout] | [INFO] [stdout] 1161 | enum IRValue { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 1162 | Int(i32), [INFO] [stdout] 1163 | Float(f32), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 1164 | Bool(bool), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IRValue` 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: function `common_subexpression_elimination` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2296:4 [INFO] [stdout] | [INFO] [stdout] 2296 | fn common_subexpression_elimination(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_cse` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2362:4 [INFO] [stdout] | [INFO] [stdout] 2362 | fn apply_cse( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `optimize_functions` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2413:4 [INFO] [stdout] | [INFO] [stdout] 2413 | fn optimize_functions(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `var_counter` is never read [INFO] [stdout] --> src/ir/generator.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct IRGenerator { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 6 | // Counter for generating unique variable names in the IR [INFO] [stdout] 7 | var_counter: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `fresh_var` is never used [INFO] [stdout] --> src/ir/generator.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 12 | impl IRGenerator { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 21 | fn fresh_var(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Operator` is never used [INFO] [stdout] --> src/parser/types.rs:85:6 [INFO] [stdout] | [INFO] [stdout] 85 | enum Operator { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Keyword` [INFO] [stdout] --> src/parser/declarations.rs:3:51 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::types::{ASTNodeType, DataType, Keyword, TokenType}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Keyword` [INFO] [stdout] --> src/parser/expressions.rs:3:41 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::types::{ASTNodeType, Keyword, TokenType}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{HashMap, HashSet, VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Keyword` [INFO] [stdout] --> src/parser/declarations.rs:3:51 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::types::{ASTNodeType, DataType, Keyword, TokenType}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Keyword` [INFO] [stdout] --> src/parser/expressions.rs:3:41 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::parser::types::{ASTNodeType, Keyword, TokenType}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `param_offset` [INFO] [stdout] --> src/codegen/mod.rs:270:21 [INFO] [stdout] | [INFO] [stdout] 270 | let mut param_offset = 0; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_param_offset` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/codegen/mod.rs:270:17 [INFO] [stdout] | [INFO] [stdout] 270 | let mut param_offset = 0; [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `count` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:235:18 [INFO] [stdout] | [INFO] [stdout] 235 | let (result, count) = fold_and_propagate_with_stats(node, const_map, changed)?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_count` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `param_offset` [INFO] [stdout] --> src/codegen/mod.rs:270:21 [INFO] [stdout] | [INFO] [stdout] 270 | let mut param_offset = 0; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_param_offset` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `original_len` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:862:13 [INFO] [stdout] | [INFO] [stdout] 862 | let original_len = result.children.len(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target_changed` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:904:52 [INFO] [stdout] | [INFO] [stdout] 904 | ... let (target_block, target_changed, target_removed) = [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_changed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `changed` is never read [INFO] [stdout] --> src/ir/advanced_optimiser.rs:913:33 [INFO] [stdout] | [INFO] [stdout] 913 | ... changed = true; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `loop_optimized` is never read [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1058:21 [INFO] [stdout] | [INFO] [stdout] 1058 | loop_optimized = true; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ind_var` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1265:18 [INFO] [stdout] | [INFO] [stdout] 1265 | let (ind_var, const_node) = if is_induction_var(&condition.children[0], induction_vars) [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ind_var` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ind_idx` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1642:59 [INFO] [stdout] | [INFO] [stdout] 1642 | ... let (has_ind_var, ind_idx, const_idx) = if is_induction_var( [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ind_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/codegen/mod.rs:270:17 [INFO] [stdout] | [INFO] [stdout] 270 | let mut param_offset = 0; [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `count` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:235:18 [INFO] [stdout] | [INFO] [stdout] 235 | let (result, count) = fold_and_propagate_with_stats(node, const_map, changed)?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_count` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_node` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1870:22 [INFO] [stdout] | [INFO] [stdout] 1870 | let (var_node, const_node) = [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ind_idx` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2097:34 [INFO] [stdout] | [INFO] [stdout] 2097 | let (is_ind_var, ind_idx, const_idx) = [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ind_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `original_len` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:862:13 [INFO] [stdout] | [INFO] [stdout] 862 | let original_len = result.children.len(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target_changed` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:904:52 [INFO] [stdout] | [INFO] [stdout] 904 | ... let (target_block, target_changed, target_removed) = [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_changed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `changed` is never read [INFO] [stdout] --> src/ir/advanced_optimiser.rs:913:33 [INFO] [stdout] | [INFO] [stdout] 913 | ... changed = true; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `loop_optimized` is never read [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1058:21 [INFO] [stdout] | [INFO] [stdout] 1058 | loop_optimized = true; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ind_var` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1265:18 [INFO] [stdout] | [INFO] [stdout] 1265 | let (ind_var, const_node) = if is_induction_var(&condition.children[0], induction_vars) [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ind_var` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `has_multiple_returns` is assigned to, but never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2458:13 [INFO] [stdout] | [INFO] [stdout] 2458 | let mut has_multiple_returns = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_has_multiple_returns` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `has_multiple_returns` is never read [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2469:9 [INFO] [stdout] | [INFO] [stdout] 2469 | has_multiple_returns = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ind_idx` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1642:59 [INFO] [stdout] | [INFO] [stdout] 1642 | ... let (has_ind_var, ind_idx, const_idx) = if is_induction_var( [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ind_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_node` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1870:22 [INFO] [stdout] | [INFO] [stdout] 1870 | let (var_node, const_node) = [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ind_idx` [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2097:34 [INFO] [stdout] | [INFO] [stdout] 2097 | let (is_ind_var, ind_idx, const_idx) = [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ind_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `has_multiple_returns` is assigned to, but never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2458:13 [INFO] [stdout] | [INFO] [stdout] 2458 | let mut has_multiple_returns = false; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_has_multiple_returns` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `has_multiple_returns` is never read [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2469:9 [INFO] [stdout] | [INFO] [stdout] 2469 | has_multiple_returns = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_node` [INFO] [stdout] --> src/ir/basic_optimiser.rs:827:22 [INFO] [stdout] | [INFO] [stdout] 827 | let (var_node, const_node) = [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ind_idx` [INFO] [stdout] --> src/ir/basic_optimiser.rs:1079:34 [INFO] [stdout] | [INFO] [stdout] 1079 | let (is_ind_var, ind_idx, const_idx) = [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ind_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `var_node` [INFO] [stdout] --> src/ir/basic_optimiser.rs:827:22 [INFO] [stdout] | [INFO] [stdout] 827 | let (var_node, const_node) = [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_var_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ind_idx` [INFO] [stdout] --> src/ir/basic_optimiser.rs:1079:34 [INFO] [stdout] | [INFO] [stdout] 1079 | let (is_ind_var, ind_idx, const_idx) = [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ind_idx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `void_ptr_type` [INFO] [stdout] --> src/semantic/preprocessor.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | let void_ptr_type = Type::Pointer(Box::new(void_type.clone())); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_void_ptr_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `float_type` [INFO] [stdout] --> src/semantic/preprocessor.rs:330:9 [INFO] [stdout] | [INFO] [stdout] 330 | let float_type = Type::Float; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_float_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `void_ptr_type` [INFO] [stdout] --> src/semantic/preprocessor.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | let void_ptr_type = Type::Pointer(Box::new(void_type.clone())); [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_void_ptr_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/semantic/symbol_table.rs:87:14 [INFO] [stdout] | [INFO] [stdout] 87 | for (i, scope) in self.scopes.iter().enumerate().rev() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `float_type` [INFO] [stdout] --> src/semantic/preprocessor.rs:330:9 [INFO] [stdout] | [INFO] [stdout] 330 | let float_type = Type::Float; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_float_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/semantic/symbol_table.rs:87:14 [INFO] [stdout] | [INFO] [stdout] 87 | for (i, scope) in self.scopes.iter().enumerate().rev() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `return_type` [INFO] [stdout] --> src/semantic/mod.rs:510:25 [INFO] [stdout] | [INFO] [stdout] 510 | return_type, [INFO] [stdout] | ^^^^^^^^^^^ help: try ignoring the field: `return_type: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `return_type` [INFO] [stdout] --> src/semantic/mod.rs:541:50 [INFO] [stdout] | [INFO] [stdout] 541 | symbol_table::Type::Variadic(return_type) => { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `return_type` [INFO] [stdout] --> src/semantic/mod.rs:510:25 [INFO] [stdout] | [INFO] [stdout] 510 | return_type, [INFO] [stdout] | ^^^^^^^^^^^ help: try ignoring the field: `return_type: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `return_type` [INFO] [stdout] --> src/semantic/mod.rs:541:50 [INFO] [stdout] | [INFO] [stdout] 541 | symbol_table::Type::Variadic(return_type) => { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_return_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `temp_counter` is never read [INFO] [stdout] --> src/codegen/mod.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 27 | struct CodeGenContext { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 28 | asm_code: String, [INFO] [stdout] 29 | temp_counter: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `constant_folding_and_propagation` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:114:4 [INFO] [stdout] | [INFO] [stdout] 114 | fn constant_folding_and_propagation(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fold_and_propagate` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:229:4 [INFO] [stdout] | [INFO] [stdout] 229 | fn fold_and_propagate( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enhanced_dead_code_elimination` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:430:4 [INFO] [stdout] | [INFO] [stdout] 430 | fn enhanced_dead_code_elimination(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_dead_code` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:771:4 [INFO] [stdout] | [INFO] [stdout] 771 | fn remove_dead_code( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `advanced_loop_optimization` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1007:4 [INFO] [stdout] | [INFO] [stdout] 1007 | fn advanced_loop_optimization(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Float` and `Bool` are never constructed [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1163:5 [INFO] [stdout] | [INFO] [stdout] 1161 | enum IRValue { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 1162 | Int(i32), [INFO] [stdout] 1163 | Float(f32), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 1164 | Bool(bool), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IRValue` 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: function `common_subexpression_elimination` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2296:4 [INFO] [stdout] | [INFO] [stdout] 2296 | fn common_subexpression_elimination(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_cse` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2362:4 [INFO] [stdout] | [INFO] [stdout] 2362 | fn apply_cse( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `optimize_functions` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2413:4 [INFO] [stdout] | [INFO] [stdout] 2413 | fn optimize_functions(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `var_counter` is never read [INFO] [stdout] --> src/ir/generator.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct IRGenerator { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 6 | // Counter for generating unique variable names in the IR [INFO] [stdout] 7 | var_counter: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `fresh_var` is never used [INFO] [stdout] --> src/ir/generator.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 12 | impl IRGenerator { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 21 | fn fresh_var(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Type` is never constructed [INFO] [stdout] --> src/ir/types.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 2 | pub enum IRNodeType { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 29 | Type, // Type information [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IRNodeType` 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 `Int64`, `Double`, and `Array` are never constructed [INFO] [stdout] --> src/ir/types.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum IRType { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 45 | Int64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 46 | Float, [INFO] [stdout] 47 | Double, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 48 | Pointer(Box), [INFO] [stdout] 49 | Array(Box, usize), // Type and size [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IRType` 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 `line` and `column` are never read [INFO] [stdout] --> src/parser/tokenizer.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Token { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 6 | pub token_type: TokenType, // Type of token [INFO] [stdout] 7 | pub line: usize, // Line number for better error reporting [INFO] [stdout] | ^^^^ [INFO] [stdout] 8 | pub column: usize, // Column number for better error reporting [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/types.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | Comment(String), [INFO] [stdout] | ------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `TokenType` 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] 71 - Comment(String), [INFO] [stdout] 71 + Comment(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Operator` is never used [INFO] [stdout] --> src/parser/types.rs:85:6 [INFO] [stdout] | [INFO] [stdout] 85 | enum Operator { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `LongDouble`, `UnsignedChar`, `UnsignedInt`, `UnsignedShort`, and `UnsignedLong` are never constructed [INFO] [stdout] --> src/parser/types.rs:166:5 [INFO] [stdout] | [INFO] [stdout] 157 | pub enum DataType { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 166 | LongDouble, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 167 | UnsignedChar, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 168 | UnsignedInt, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 169 | UnsignedShort, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 170 | UnsignedLong, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DataType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Function`, `Statement`, and `Expression` are never constructed [INFO] [stdout] --> src/parser/types.rs:193:5 [INFO] [stdout] | [INFO] [stdout] 190 | pub enum ASTNodeType { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 193 | Function, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | Statement, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | Expression, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ASTNodeType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Struct` and `Array` are never constructed [INFO] [stdout] --> src/semantic/symbol_table.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum Type { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 17 | Struct(String), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 18 | Array { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Type` 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_initialized` are never read [INFO] [stdout] --> src/semantic/symbol_table.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 26 | pub struct Symbol { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 27 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 28 | pub symbol_type: Type, [INFO] [stdout] 29 | pub is_initialized: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Symbol` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print_symbols` is never used [INFO] [stdout] --> src/semantic/symbol_table.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl SymbolTable { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn print_symbols(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `temp_counter` is never read [INFO] [stdout] --> src/codegen/mod.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 27 | struct CodeGenContext { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 28 | asm_code: String, [INFO] [stdout] 29 | temp_counter: usize, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `constant_folding_and_propagation` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:114:4 [INFO] [stdout] | [INFO] [stdout] 114 | fn constant_folding_and_propagation(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fold_and_propagate` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:229:4 [INFO] [stdout] | [INFO] [stdout] 229 | fn fold_and_propagate( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enhanced_dead_code_elimination` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:430:4 [INFO] [stdout] | [INFO] [stdout] 430 | fn enhanced_dead_code_elimination(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `remove_dead_code` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:771:4 [INFO] [stdout] | [INFO] [stdout] 771 | fn remove_dead_code( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `advanced_loop_optimization` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1007:4 [INFO] [stdout] | [INFO] [stdout] 1007 | fn advanced_loop_optimization(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Float` and `Bool` are never constructed [INFO] [stdout] --> src/ir/advanced_optimiser.rs:1163:5 [INFO] [stdout] | [INFO] [stdout] 1161 | enum IRValue { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 1162 | Int(i32), [INFO] [stdout] 1163 | Float(f32), [INFO] [stdout] | ^^^^^ [INFO] [stdout] 1164 | Bool(bool), [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IRValue` 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: function `common_subexpression_elimination` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2296:4 [INFO] [stdout] | [INFO] [stdout] 2296 | fn common_subexpression_elimination(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `apply_cse` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2362:4 [INFO] [stdout] | [INFO] [stdout] 2362 | fn apply_cse( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `optimize_functions` is never used [INFO] [stdout] --> src/ir/advanced_optimiser.rs:2413:4 [INFO] [stdout] | [INFO] [stdout] 2413 | fn optimize_functions(node: IRNode) -> Result<(IRNode, bool), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `var_counter` is never read [INFO] [stdout] --> src/ir/generator.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct IRGenerator { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 6 | // Counter for generating unique variable names in the IR [INFO] [stdout] 7 | var_counter: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `fresh_var` is never used [INFO] [stdout] --> src/ir/generator.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 12 | impl IRGenerator { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 21 | fn fresh_var(&mut self) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Type` is never constructed [INFO] [stdout] --> src/ir/types.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 2 | pub enum IRNodeType { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 29 | Type, // Type information [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IRNodeType` 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 `Int64`, `Double`, and `Array` are never constructed [INFO] [stdout] --> src/ir/types.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum IRType { [INFO] [stdout] | ------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 45 | Int64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 46 | Float, [INFO] [stdout] 47 | Double, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 48 | Pointer(Box), [INFO] [stdout] 49 | Array(Box, usize), // Type and size [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IRType` 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 `line` and `column` are never read [INFO] [stdout] --> src/parser/tokenizer.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Token { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 6 | pub token_type: TokenType, // Type of token [INFO] [stdout] 7 | pub line: usize, // Line number for better error reporting [INFO] [stdout] | ^^^^ [INFO] [stdout] 8 | pub column: usize, // Column number for better error reporting [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/types.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | Comment(String), [INFO] [stdout] | ------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `TokenType` 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] 71 - Comment(String), [INFO] [stdout] 71 + Comment(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Operator` is never used [INFO] [stdout] --> src/parser/types.rs:85:6 [INFO] [stdout] | [INFO] [stdout] 85 | enum Operator { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `LongDouble`, `UnsignedChar`, `UnsignedInt`, `UnsignedShort`, and `UnsignedLong` are never constructed [INFO] [stdout] --> src/parser/types.rs:166:5 [INFO] [stdout] | [INFO] [stdout] 157 | pub enum DataType { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 166 | LongDouble, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 167 | UnsignedChar, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 168 | UnsignedInt, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 169 | UnsignedShort, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 170 | UnsignedLong, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DataType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Function`, `Statement`, and `Expression` are never constructed [INFO] [stdout] --> src/parser/types.rs:193:5 [INFO] [stdout] | [INFO] [stdout] 190 | pub enum ASTNodeType { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 193 | Function, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 201 | Statement, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | Expression, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ASTNodeType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Struct` and `Array` are never constructed [INFO] [stdout] --> src/semantic/symbol_table.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum Type { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 17 | Struct(String), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 18 | Array { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Type` 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_initialized` are never read [INFO] [stdout] --> src/semantic/symbol_table.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 26 | pub struct Symbol { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 27 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 28 | pub symbol_type: Type, [INFO] [stdout] 29 | pub is_initialized: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Symbol` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print_symbols` is never used [INFO] [stdout] --> src/semantic/symbol_table.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl SymbolTable { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn print_symbols(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.32s [INFO] running `Command { std: "docker" "inspect" "4ef353223319367223c2acfc5824f5cb5ad9b1573dd2c955828e2c51519b58d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4ef353223319367223c2acfc5824f5cb5ad9b1573dd2c955828e2c51519b58d9", kill_on_drop: false }` [INFO] [stdout] 4ef353223319367223c2acfc5824f5cb5ad9b1573dd2c955828e2c51519b58d9