[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 try#bf5ff6675cf10ce009ac02007b064a7cfc4509ac for pr-140558
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffuzzymf%2Fferry" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/fuzzymf/ferry on toolchain bf5ff6675cf10ce009ac02007b064a7cfc4509ac
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bf5ff6675cf10ce009ac02007b064a7cfc4509ac" "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-tc2/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" "+bf5ff6675cf10ce009ac02007b064a7cfc4509ac" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+bf5ff6675cf10ce009ac02007b064a7cfc4509ac" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d7ccfaa8ff94068201479dc9a96e78bb1aec2f64bfd0aa6022c1bcf68f3c9e7c
[INFO] running `Command { std: "docker" "start" "-a" "d7ccfaa8ff94068201479dc9a96e78bb1aec2f64bfd0aa6022c1bcf68f3c9e7c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d7ccfaa8ff94068201479dc9a96e78bb1aec2f64bfd0aa6022c1bcf68f3c9e7c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d7ccfaa8ff94068201479dc9a96e78bb1aec2f64bfd0aa6022c1bcf68f3c9e7c", kill_on_drop: false }`
[INFO] [stdout] d7ccfaa8ff94068201479dc9a96e78bb1aec2f64bfd0aa6022c1bcf68f3c9e7c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+bf5ff6675cf10ce009ac02007b064a7cfc4509ac" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9d2ef6ff3975d989f75bff70aaab7d5fe1e6f39931e16ddf660012815a88af97
[INFO] running `Command { std: "docker" "start" "-a" "9d2ef6ff3975d989f75bff70aaab7d5fe1e6f39931e16ddf660012815a88af97", 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: `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: `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: `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: `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: `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: `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: `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: 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: `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: `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: `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: `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: `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: `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: `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: `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: `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_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: `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: `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: 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<IRType>),
[INFO] [stdout] 49 |     Array(Box<IRType>, 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] error: couldn't create a temp dir: No space left on device (os error 28) at path "/opt/rustwide/target/debug/deps/rmetanLSv2W"
[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] [stderr] error: could not compile `ferry` (bin "ferry") due to 1 previous error; 45 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `ferry` (bin "ferry" test); 20 warnings emitted
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   No space left on device (os error 28)
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   failed to parse process output: `/opt/rustwide/rustup-home/toolchains/bf5ff6675cf10ce009ac02007b064a7cfc4509ac/bin/rustc --crate-name ferry --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 --test --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C metadata=31865d971366fe94 -C extra-filename=-c396d8cc5b7ef40b --out-dir /opt/rustwide/target/debug/deps -L dependency=/opt/rustwide/target/debug/deps --extern ferry=/opt/rustwide/target/debug/deps/libferry-d0c48c3c0957fb69.rmeta --cap-lints=forbid` (exit status: 0)
[INFO] running `Command { std: "docker" "inspect" "9d2ef6ff3975d989f75bff70aaab7d5fe1e6f39931e16ddf660012815a88af97", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9d2ef6ff3975d989f75bff70aaab7d5fe1e6f39931e16ddf660012815a88af97", kill_on_drop: false }`
[INFO] [stdout] 9d2ef6ff3975d989f75bff70aaab7d5fe1e6f39931e16ddf660012815a88af97
