[INFO] cloning repository https://github.com/hi-brylle/crisp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hi-brylle/crisp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhi-brylle%2Fcrisp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhi-brylle%2Fcrisp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] caa6db89b31031a025ebb1cb00b6393ad77a83cc
[INFO] testing hi-brylle/crisp against beta-2024-12-08 for beta-1.84.0-4-retry
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhi-brylle%2Fcrisp" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/hi-brylle/crisp on toolchain beta-2024-12-08
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2024-12-08" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/hi-brylle/crisp
[INFO] finished tweaking git repo https://github.com/hi-brylle/crisp
[INFO] tweaked toml for git repo https://github.com/hi-brylle/crisp written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/hi-brylle/crisp 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" "+beta-2024-12-08" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-12-08" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9991ac885495244791a96861c7d5d1caeca06bb801bdd6230d2e1529fce95ba5
[INFO] running `Command { std: "docker" "start" "-a" "9991ac885495244791a96861c7d5d1caeca06bb801bdd6230d2e1529fce95ba5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9991ac885495244791a96861c7d5d1caeca06bb801bdd6230d2e1529fce95ba5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9991ac885495244791a96861c7d5d1caeca06bb801bdd6230d2e1529fce95ba5", kill_on_drop: false }`
[INFO] [stdout] 9991ac885495244791a96861c7d5d1caeca06bb801bdd6230d2e1529fce95ba5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-12-08" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 425fcac3df634c80125eaf923c351efe61a449e74fec5ff91ee9ea020ca28d01
[INFO] running `Command { std: "docker" "start" "-a" "425fcac3df634c80125eaf923c351efe61a449e74fec5ff91ee9ea020ca28d01", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.92
[INFO] [stderr]    Compiling unicode-ident v1.0.14
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling once_cell v1.20.2
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling syn v2.0.90
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling pest v2.7.14
[INFO] [stderr]    Compiling pest_meta v2.7.14
[INFO] [stderr]    Compiling pest_generator v2.7.14
[INFO] [stderr]    Compiling pest_derive v2.7.14
[INFO] [stderr]    Compiling crisp v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `name_resolution::resolve_candidate_bindings`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use name_resolution::resolve_candidate_bindings;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `name_resolution::resolve_names`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use name_resolution::resolve_names;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `name_resolution::clean_up_symbol_table`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use name_resolution::clean_up_symbol_table;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `name_resolution::get_program_usages`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use name_resolution::get_program_usages;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TypeLiteral`
[INFO] [stdout]  --> src/scope.rs:3:84
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::ast::{Expression::{self, *}, FunctionDefinition, Program, Statement::*, TypeLiteral};
[INFO] [stdout]   |                                                                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Bound`
[INFO] [stdout]  --> src/name_resolution.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashSet, ops::Bound};
[INFO] [stdout]   |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `symbol_table`
[INFO] [stdout]  --> src/name_resolution.rs:4:111
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{ast::{Assignment, Expression::{self, *}, ExpressionTerm, FunctionDefinition, Program, Statement}, symbol_table};
[INFO] [stdout]   |                                                                                                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/parser.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |             let mut children = pair.into_inner();
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let mut function_body: FunctionBody = build_function_body_ast(&scope_address, children.next().unwrap());
[INFO] [stdout]     |         ----^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:132:17
[INFO] [stdout]     |
[INFO] [stdout] 132 |             let mut children = pair.into_inner();
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:170:17
[INFO] [stdout]     |
[INFO] [stdout] 170 |             let mut children = pair.into_inner();
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `program_ast`
[INFO] [stdout]   --> src/main.rs:72:24
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let (symbol_table, program_ast) = table_and_ast;
[INFO] [stdout]    |                        ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program_ast`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_symbol_table` is never used
[INFO] [stdout]   --> src/main.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn extract_symbol_table(program_ast: Program) -> Result<(SymbolTable, Program), Vec<String>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `scope_address` is never read
[INFO] [stdout]  --> src/ast.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Program {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] 3 |     pub scope_address: String,
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Program` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rhs` is never read
[INFO] [stdout]   --> src/ast.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Assignment {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub rhs: ExpressionTerm,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Assignment` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `return_expression_term` is never read
[INFO] [stdout]   --> src/ast.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct FunctionBody {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 40 |     pub statements: Vec<Statement>,
[INFO] [stdout] 41 |     pub return_expression_term: Option<ExpressionTerm>
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FunctionBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `enclosing_scope_address` and `expression` are never read
[INFO] [stdout]   --> src/ast.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct ExpressionTerm {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 54 |     pub enclosing_scope_address: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 55 |     pub expression: Expression
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExpressionTerm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Number(f64),
[INFO] [stdout]    |     ------ ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is 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] 60 |     Number(()),
[INFO] [stdout]    |            ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 |     Negative(Box<Expression>),
[INFO] [stdout]    |     -------- ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is 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] 61 |     Negative(()),
[INFO] [stdout]    |              ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:62:10
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Plus(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     ---- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Plus((), ()),
[INFO] [stdout]    |          ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:63:11
[INFO] [stdout]    |
[INFO] [stdout] 63 |     Minus(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     ----- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 63 |     Minus((), ()),
[INFO] [stdout]    |           ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:64:11
[INFO] [stdout]    |
[INFO] [stdout] 64 |     Times(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     ----- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 64 |     Times((), ()),
[INFO] [stdout]    |           ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 |     Divide(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     ------ ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 65 |     Divide((), ()),
[INFO] [stdout]    |            ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |     IsEqual(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     ------- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 66 |     IsEqual((), ()),
[INFO] [stdout]    |             ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:67:14
[INFO] [stdout]    |
[INFO] [stdout] 67 |     NotEqual(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     -------- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 67 |     NotEqual((), ()),
[INFO] [stdout]    |              ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:68:14
[INFO] [stdout]    |
[INFO] [stdout] 68 |     LessThan(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     -------- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 68 |     LessThan((), ()),
[INFO] [stdout]    |              ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:69:21
[INFO] [stdout]    |
[INFO] [stdout] 69 |     LessThanOrEqual(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     --------------- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 69 |     LessThanOrEqual((), ()),
[INFO] [stdout]    |                     ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:70:17
[INFO] [stdout]    |
[INFO] [stdout] 70 |     GreaterThan(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     ----------- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 70 |     GreaterThan((), ()),
[INFO] [stdout]    |                 ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:71:24
[INFO] [stdout]    |
[INFO] [stdout] 71 |     GreaterThanOrEqual(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     ------------------ ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 71 |     GreaterThanOrEqual((), ()),
[INFO] [stdout]    |                        ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |     Boolean(bool),
[INFO] [stdout]    |     ------- ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is 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] 73 |     Boolean(()),
[INFO] [stdout]    |             ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     Not(Box<Expression>),
[INFO] [stdout]    |     --- ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is 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] 74 |     Not(()),
[INFO] [stdout]    |         ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 |     Or(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     -- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 75 |     Or((), ()),
[INFO] [stdout]    |        ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |     And(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     --- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 76 |     And((), ()),
[INFO] [stdout]    |         ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:78:11
[INFO] [stdout]    |
[INFO] [stdout] 78 |     Ident(Identifier),
[INFO] [stdout]    |     ----- ^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is 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] 78 |     Ident(()),
[INFO] [stdout]    |           ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:80:18
[INFO] [stdout]    |
[INFO] [stdout] 80 |     FunctionCall(FunctionCall),
[INFO] [stdout]    |     ------------ ^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is 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] 80 |     FunctionCall(()),
[INFO] [stdout]    |                  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:82:22
[INFO] [stdout]    |
[INFO] [stdout] 82 |     IfElseExpression(IfElseExpression),
[INFO] [stdout]    |     ---------------- ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is 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] 82 |     IfElseExpression(()),
[INFO] [stdout]    |                      ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:84:19
[INFO] [stdout]    |
[INFO] [stdout] 84 |     StringLiteral(String)
[INFO] [stdout]    |     ------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is 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] 84 |     StringLiteral(())
[INFO] [stdout]    |                   ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `identifier_name` and `start_pos` are never read
[INFO] [stdout]   --> src/ast.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct Identifier {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 89 |     pub identifier_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 90 |     pub start_pos: usize
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Identifier` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `function_name` and `function_arguments` are never read
[INFO] [stdout]   --> src/ast.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct FunctionCall {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 95 |     pub function_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 96 |     pub function_arguments: Vec<Expression>
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FunctionCall` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `predicate`, `true_branch`, and `false_branch` are never read
[INFO] [stdout]    --> src/ast.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub struct IfElseExpression {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 101 |     pub predicate: Box<Expression>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 102 |     pub true_branch: Box<Expression>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 103 |     pub false_branch: Box<Expression>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IfElseExpression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Scope` is never used
[INFO] [stdout]  --> src/scope.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum Scope<'a> {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Symbol` is never constructed
[INFO] [stdout]   --> src/scope.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Symbol {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Symbol` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Variable`, `Function`, and `FunctionParameter` are never constructed
[INFO] [stdout]   --> src/scope.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum SymbolKind {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 21 |     Variable,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 22 |     Function,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 23 |     FunctionParameter
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Usage` is never constructed
[INFO] [stdout]   --> src/scope.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Usage {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Usage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UsageKind` is never used
[INFO] [stdout]   --> src/scope.rs:34:10
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub enum UsageKind {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UsageKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NameResolutionError` is never constructed
[INFO] [stdout]   --> src/scope.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct NameResolutionError {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NameResolutionErrorKind` is never used
[INFO] [stdout]   --> src/scope.rs:44:10
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub enum NameResolutionErrorKind {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_scope_name` is never used
[INFO] [stdout]   --> src/scope.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn get_scope_name(scope: &Scope) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_level_symbol_table` is never used
[INFO] [stdout]   --> src/scope.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn get_level_symbol_table(scope: &Scope) -> Vec<Symbol> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_for_redeclarations` is never used
[INFO] [stdout]    --> src/scope.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn check_for_redeclarations(scope: &Scope) -> Vec<NameResolutionError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_usages` is never used
[INFO] [stdout]    --> src/scope.rs:132:4
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn extract_usages(expression_node: &Expression) -> Vec<Usage> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_level_usages` is never used
[INFO] [stdout]    --> src/scope.rs:219:4
[INFO] [stdout]     |
[INFO] [stdout] 219 | fn get_level_usages(scope: &Scope) -> Vec<Usage> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `usage_is_defined` is never used
[INFO] [stdout]    --> src/scope.rs:258:4
[INFO] [stdout]     |
[INFO] [stdout] 258 | fn usage_is_defined(usage: &Usage, symbol_table: &Vec<Symbol>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `name_resolution` is never used
[INFO] [stdout]    --> src/scope.rs:285:8
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub fn name_resolution(scope: &Scope, symbol_table_stack: &mut Vec<Vec<Symbol>>) -> Vec<NameResolutionError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `symbol_table` is never read
[INFO] [stdout]  --> src/symbol_table.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct SymbolTable {
[INFO] [stdout]   |            ----------- field in this struct
[INFO] [stdout] 5 |     pub symbol_table: Vec<Symbol>
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `SymbolTable` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `symbol`, `scope_address`, and `kind` are never read
[INFO] [stdout]   --> src/symbol_table.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct Symbol {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 10 |     pub symbol: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 11 |     pub scope_address: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub kind: SymbolKind,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Symbol` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `VariableDeclaration`, `FunctionDefinition`, and `FunctionParameter` are never constructed
[INFO] [stdout]   --> src/symbol_table.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum SymbolKind {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 17 |     VariableDeclaration(usize),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     FunctionDefinition(Vec<TypeLiteral>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     FunctionParameter(TypeLiteral)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_program_symbol_table` is never used
[INFO] [stdout]   --> src/symbol_table.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn build_program_symbol_table(program: &Program) -> SymbolTable {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_assignment_symbol_table` is never used
[INFO] [stdout]   --> src/symbol_table.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn build_assignment_symbol_table(assignment: &Assignment) -> Vec<Symbol> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_function_def_symbol_table` is never used
[INFO] [stdout]   --> src/symbol_table.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn build_function_def_symbol_table(function_definition: &FunctionDefinition) -> Vec<Symbol> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Usage` is never constructed
[INFO] [stdout]  --> src/name_resolution.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Usage {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Usage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UsageKind` is never used
[INFO] [stdout]   --> src/name_resolution.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum UsageKind {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UsageKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BoundUsage` is never constructed
[INFO] [stdout]   --> src/name_resolution.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct BoundUsage {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BoundUsage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clean_up_symbol_table` is never used
[INFO] [stdout]   --> src/name_resolution.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn clean_up_symbol_table(symbol_table: &SymbolTable) -> (SymbolTable, Vec<Symbol>, Vec<Symbol>)  {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_program_usages` is never used
[INFO] [stdout]   --> src/name_resolution.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn get_program_usages(program_ast: &Program) -> Vec<Usage> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_statement_usages` is never used
[INFO] [stdout]    --> src/name_resolution.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn get_statement_usages(statement: &Statement) -> Vec<Usage> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_assignment_usages` is never used
[INFO] [stdout]    --> src/name_resolution.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn get_assignment_usages(assignment: &Assignment) -> Vec<Usage> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_function_def_usages` is never used
[INFO] [stdout]    --> src/name_resolution.rs:127:4
[INFO] [stdout]     |
[INFO] [stdout] 127 | fn get_function_def_usages(function_definition: &FunctionDefinition) -> Vec<Usage> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_expression_term_usages` is never used
[INFO] [stdout]    --> src/name_resolution.rs:145:4
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn get_expression_term_usages(expression_term: &ExpressionTerm) -> Vec<Usage> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resolve_names` is never used
[INFO] [stdout]    --> src/name_resolution.rs:243:8
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub fn resolve_names(usages: &Vec<Usage>, valid_symbol_table: &SymbolTable) -> Vec<BoundUsage> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_depth` is never used
[INFO] [stdout]    --> src/name_resolution.rs:256:4
[INFO] [stdout]     |
[INFO] [stdout] 256 | fn get_depth(scope_address: &String) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resolve_usage` is never used
[INFO] [stdout]    --> src/name_resolution.rs:260:4
[INFO] [stdout]     |
[INFO] [stdout] 260 | fn resolve_usage(usage: &Usage, valid_symbol_table: &SymbolTable) -> Option<BoundUsage> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_candidate_bindings` is never used
[INFO] [stdout]    --> src/name_resolution.rs:310:4
[INFO] [stdout]     |
[INFO] [stdout] 310 | fn get_candidate_bindings(usage: &Usage, valid_symbol_table: &SymbolTable) -> Vec<BoundUsage> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resolve_candidate_bindings` is never used
[INFO] [stdout]    --> src/name_resolution.rs:331:8
[INFO] [stdout]     |
[INFO] [stdout] 331 | pub fn resolve_candidate_bindings(usages: &Vec<Usage>, valid_symbol_table: &SymbolTable) -> Vec<BoundUsage> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `symbol_table` is never read
[INFO] [stdout]  --> src/symbol_table2.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct SymbolTable2 {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 7 |     pub symbol_table: HashMap<String, SymbolInfo>
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `SymbolTable2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scope_address`, `kind`, and `inner` are never read
[INFO] [stdout]   --> src/symbol_table2.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct SymbolInfo {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 12 |     pub scope_address: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub kind: SymbolKind2,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 14 |     pub inner: Option<SymbolTable2>
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/symbol_table2.rs:19:25
[INFO] [stdout]    |
[INFO] [stdout] 19 |     VariableDeclaration(Option<TypeLiteral>, usize),    
[INFO] [stdout]    |     ------------------- ^^^^^^^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolKind2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 19 |     VariableDeclaration((), ()),    
[INFO] [stdout]    |                         ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/symbol_table2.rs:20:24
[INFO] [stdout]    |
[INFO] [stdout] 20 |     FunctionDefinition(Vec<TypeLiteral>), // Size of the type vector is the arity of the function.
[INFO] [stdout]    |     ------------------ ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolKind2` has a derived impl for the trait `Debug`, but this is 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] 20 |     FunctionDefinition(()), // Size of the type vector is the arity of the function.
[INFO] [stdout]    |                        ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/symbol_table2.rs:21:23
[INFO] [stdout]    |
[INFO] [stdout] 21 |     FunctionParameter(TypeLiteral)
[INFO] [stdout]    |     ----------------- ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolKind2` has a derived impl for the trait `Debug`, but this is 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] 21 |     FunctionParameter(())
[INFO] [stdout]    |                       ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.04s
[INFO] running `Command { std: "docker" "inspect" "425fcac3df634c80125eaf923c351efe61a449e74fec5ff91ee9ea020ca28d01", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "425fcac3df634c80125eaf923c351efe61a449e74fec5ff91ee9ea020ca28d01", kill_on_drop: false }`
[INFO] [stdout] 425fcac3df634c80125eaf923c351efe61a449e74fec5ff91ee9ea020ca28d01
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-12-08" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6ed943b5726e6bb062531590fa8dca886c9437197d3af19c77356b904c9c91eb
[INFO] running `Command { std: "docker" "start" "-a" "6ed943b5726e6bb062531590fa8dca886c9437197d3af19c77356b904c9c91eb", kill_on_drop: false }`
[INFO] [stderr]    Compiling crisp v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `name_resolution::resolve_candidate_bindings`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use name_resolution::resolve_candidate_bindings;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `name_resolution::resolve_names`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use name_resolution::resolve_names;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `name_resolution::clean_up_symbol_table`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use name_resolution::clean_up_symbol_table;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `name_resolution::get_program_usages`
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use name_resolution::get_program_usages;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TypeLiteral`
[INFO] [stdout]  --> src/scope.rs:3:84
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::ast::{Expression::{self, *}, FunctionDefinition, Program, Statement::*, TypeLiteral};
[INFO] [stdout]   |                                                                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Bound`
[INFO] [stdout]  --> src/name_resolution.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashSet, ops::Bound};
[INFO] [stdout]   |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `symbol_table`
[INFO] [stdout]  --> src/name_resolution.rs:4:111
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::{ast::{Assignment, Expression::{self, *}, ExpressionTerm, FunctionDefinition, Program, Statement}, symbol_table};
[INFO] [stdout]   |                                                                                                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/parser.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |             let mut children = pair.into_inner();
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let mut function_body: FunctionBody = build_function_body_ast(&scope_address, children.next().unwrap());
[INFO] [stdout]     |         ----^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:132:17
[INFO] [stdout]     |
[INFO] [stdout] 132 |             let mut children = pair.into_inner();
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parser.rs:170:17
[INFO] [stdout]     |
[INFO] [stdout] 170 |             let mut children = pair.into_inner();
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `program_ast`
[INFO] [stdout]   --> src/main.rs:72:24
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let (symbol_table, program_ast) = table_and_ast;
[INFO] [stdout]    |                        ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program_ast`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_symbol_table` is never used
[INFO] [stdout]   --> src/main.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn extract_symbol_table(program_ast: Program) -> Result<(SymbolTable, Program), Vec<String>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `scope_address` is never read
[INFO] [stdout]  --> src/ast.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Program {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] 3 |     pub scope_address: String,
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Program` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rhs` is never read
[INFO] [stdout]   --> src/ast.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Assignment {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub rhs: ExpressionTerm,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Assignment` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `return_expression_term` is never read
[INFO] [stdout]   --> src/ast.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct FunctionBody {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 40 |     pub statements: Vec<Statement>,
[INFO] [stdout] 41 |     pub return_expression_term: Option<ExpressionTerm>
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FunctionBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `enclosing_scope_address` and `expression` are never read
[INFO] [stdout]   --> src/ast.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct ExpressionTerm {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 54 |     pub enclosing_scope_address: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 55 |     pub expression: Expression
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExpressionTerm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 |     Number(f64),
[INFO] [stdout]    |     ------ ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is 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] 60 |     Number(()),
[INFO] [stdout]    |            ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 |     Negative(Box<Expression>),
[INFO] [stdout]    |     -------- ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is 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] 61 |     Negative(()),
[INFO] [stdout]    |              ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:62:10
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Plus(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     ---- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 62 |     Plus((), ()),
[INFO] [stdout]    |          ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:63:11
[INFO] [stdout]    |
[INFO] [stdout] 63 |     Minus(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     ----- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 63 |     Minus((), ()),
[INFO] [stdout]    |           ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:64:11
[INFO] [stdout]    |
[INFO] [stdout] 64 |     Times(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     ----- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 64 |     Times((), ()),
[INFO] [stdout]    |           ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 |     Divide(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     ------ ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 65 |     Divide((), ()),
[INFO] [stdout]    |            ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |     IsEqual(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     ------- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 66 |     IsEqual((), ()),
[INFO] [stdout]    |             ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:67:14
[INFO] [stdout]    |
[INFO] [stdout] 67 |     NotEqual(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     -------- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 67 |     NotEqual((), ()),
[INFO] [stdout]    |              ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:68:14
[INFO] [stdout]    |
[INFO] [stdout] 68 |     LessThan(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     -------- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 68 |     LessThan((), ()),
[INFO] [stdout]    |              ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:69:21
[INFO] [stdout]    |
[INFO] [stdout] 69 |     LessThanOrEqual(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     --------------- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 69 |     LessThanOrEqual((), ()),
[INFO] [stdout]    |                     ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:70:17
[INFO] [stdout]    |
[INFO] [stdout] 70 |     GreaterThan(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     ----------- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 70 |     GreaterThan((), ()),
[INFO] [stdout]    |                 ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:71:24
[INFO] [stdout]    |
[INFO] [stdout] 71 |     GreaterThanOrEqual(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     ------------------ ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 71 |     GreaterThanOrEqual((), ()),
[INFO] [stdout]    |                        ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |     Boolean(bool),
[INFO] [stdout]    |     ------- ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is 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] 73 |     Boolean(()),
[INFO] [stdout]    |             ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     Not(Box<Expression>),
[INFO] [stdout]    |     --- ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is 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] 74 |     Not(()),
[INFO] [stdout]    |         ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 |     Or(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     -- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 75 |     Or((), ()),
[INFO] [stdout]    |        ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/ast.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |     And(Box<Expression>, Box<Expression>),
[INFO] [stdout]    |     --- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 76 |     And((), ()),
[INFO] [stdout]    |         ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:78:11
[INFO] [stdout]    |
[INFO] [stdout] 78 |     Ident(Identifier),
[INFO] [stdout]    |     ----- ^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is 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] 78 |     Ident(()),
[INFO] [stdout]    |           ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:80:18
[INFO] [stdout]    |
[INFO] [stdout] 80 |     FunctionCall(FunctionCall),
[INFO] [stdout]    |     ------------ ^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is 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] 80 |     FunctionCall(()),
[INFO] [stdout]    |                  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:82:22
[INFO] [stdout]    |
[INFO] [stdout] 82 |     IfElseExpression(IfElseExpression),
[INFO] [stdout]    |     ---------------- ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is 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] 82 |     IfElseExpression(()),
[INFO] [stdout]    |                      ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ast.rs:84:19
[INFO] [stdout]    |
[INFO] [stdout] 84 |     StringLiteral(String)
[INFO] [stdout]    |     ------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expression` has a derived impl for the trait `Debug`, but this is 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] 84 |     StringLiteral(())
[INFO] [stdout]    |                   ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `identifier_name` and `start_pos` are never read
[INFO] [stdout]   --> src/ast.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct Identifier {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 89 |     pub identifier_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 90 |     pub start_pos: usize
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Identifier` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `function_name` and `function_arguments` are never read
[INFO] [stdout]   --> src/ast.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct FunctionCall {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 95 |     pub function_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 96 |     pub function_arguments: Vec<Expression>
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FunctionCall` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `predicate`, `true_branch`, and `false_branch` are never read
[INFO] [stdout]    --> src/ast.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub struct IfElseExpression {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 101 |     pub predicate: Box<Expression>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 102 |     pub true_branch: Box<Expression>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 103 |     pub false_branch: Box<Expression>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IfElseExpression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Scope` is never used
[INFO] [stdout]  --> src/scope.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum Scope<'a> {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Symbol` is never constructed
[INFO] [stdout]   --> src/scope.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Symbol {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Symbol` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Variable`, `Function`, and `FunctionParameter` are never constructed
[INFO] [stdout]   --> src/scope.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum SymbolKind {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 21 |     Variable,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 22 |     Function,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 23 |     FunctionParameter
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Usage` is never constructed
[INFO] [stdout]   --> src/scope.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Usage {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Usage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UsageKind` is never used
[INFO] [stdout]   --> src/scope.rs:34:10
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub enum UsageKind {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UsageKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NameResolutionError` is never constructed
[INFO] [stdout]   --> src/scope.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct NameResolutionError {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NameResolutionErrorKind` is never used
[INFO] [stdout]   --> src/scope.rs:44:10
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub enum NameResolutionErrorKind {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_scope_name` is never used
[INFO] [stdout]   --> src/scope.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn get_scope_name(scope: &Scope) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_level_symbol_table` is never used
[INFO] [stdout]   --> src/scope.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn get_level_symbol_table(scope: &Scope) -> Vec<Symbol> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_for_redeclarations` is never used
[INFO] [stdout]    --> src/scope.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn check_for_redeclarations(scope: &Scope) -> Vec<NameResolutionError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_usages` is never used
[INFO] [stdout]    --> src/scope.rs:132:4
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn extract_usages(expression_node: &Expression) -> Vec<Usage> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_level_usages` is never used
[INFO] [stdout]    --> src/scope.rs:219:4
[INFO] [stdout]     |
[INFO] [stdout] 219 | fn get_level_usages(scope: &Scope) -> Vec<Usage> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `usage_is_defined` is never used
[INFO] [stdout]    --> src/scope.rs:258:4
[INFO] [stdout]     |
[INFO] [stdout] 258 | fn usage_is_defined(usage: &Usage, symbol_table: &Vec<Symbol>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `name_resolution` is never used
[INFO] [stdout]    --> src/scope.rs:285:8
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub fn name_resolution(scope: &Scope, symbol_table_stack: &mut Vec<Vec<Symbol>>) -> Vec<NameResolutionError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `symbol_table` is never read
[INFO] [stdout]  --> src/symbol_table.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct SymbolTable {
[INFO] [stdout]   |            ----------- field in this struct
[INFO] [stdout] 5 |     pub symbol_table: Vec<Symbol>
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `SymbolTable` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `symbol`, `scope_address`, and `kind` are never read
[INFO] [stdout]   --> src/symbol_table.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct Symbol {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 10 |     pub symbol: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 11 |     pub scope_address: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub kind: SymbolKind,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Symbol` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `VariableDeclaration`, `FunctionDefinition`, and `FunctionParameter` are never constructed
[INFO] [stdout]   --> src/symbol_table.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum SymbolKind {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 17 |     VariableDeclaration(usize),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     FunctionDefinition(Vec<TypeLiteral>),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     FunctionParameter(TypeLiteral)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_program_symbol_table` is never used
[INFO] [stdout]   --> src/symbol_table.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn build_program_symbol_table(program: &Program) -> SymbolTable {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_assignment_symbol_table` is never used
[INFO] [stdout]   --> src/symbol_table.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn build_assignment_symbol_table(assignment: &Assignment) -> Vec<Symbol> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_function_def_symbol_table` is never used
[INFO] [stdout]   --> src/symbol_table.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn build_function_def_symbol_table(function_definition: &FunctionDefinition) -> Vec<Symbol> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Usage` is never constructed
[INFO] [stdout]  --> src/name_resolution.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Usage {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Usage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UsageKind` is never used
[INFO] [stdout]   --> src/name_resolution.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum UsageKind {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UsageKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BoundUsage` is never constructed
[INFO] [stdout]   --> src/name_resolution.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct BoundUsage {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BoundUsage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clean_up_symbol_table` is never used
[INFO] [stdout]   --> src/name_resolution.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn clean_up_symbol_table(symbol_table: &SymbolTable) -> (SymbolTable, Vec<Symbol>, Vec<Symbol>)  {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_program_usages` is never used
[INFO] [stdout]   --> src/name_resolution.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn get_program_usages(program_ast: &Program) -> Vec<Usage> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_statement_usages` is never used
[INFO] [stdout]    --> src/name_resolution.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn get_statement_usages(statement: &Statement) -> Vec<Usage> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_assignment_usages` is never used
[INFO] [stdout]    --> src/name_resolution.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn get_assignment_usages(assignment: &Assignment) -> Vec<Usage> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_function_def_usages` is never used
[INFO] [stdout]    --> src/name_resolution.rs:127:4
[INFO] [stdout]     |
[INFO] [stdout] 127 | fn get_function_def_usages(function_definition: &FunctionDefinition) -> Vec<Usage> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_expression_term_usages` is never used
[INFO] [stdout]    --> src/name_resolution.rs:145:4
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn get_expression_term_usages(expression_term: &ExpressionTerm) -> Vec<Usage> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resolve_names` is never used
[INFO] [stdout]    --> src/name_resolution.rs:243:8
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub fn resolve_names(usages: &Vec<Usage>, valid_symbol_table: &SymbolTable) -> Vec<BoundUsage> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_depth` is never used
[INFO] [stdout]    --> src/name_resolution.rs:256:4
[INFO] [stdout]     |
[INFO] [stdout] 256 | fn get_depth(scope_address: &String) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resolve_usage` is never used
[INFO] [stdout]    --> src/name_resolution.rs:260:4
[INFO] [stdout]     |
[INFO] [stdout] 260 | fn resolve_usage(usage: &Usage, valid_symbol_table: &SymbolTable) -> Option<BoundUsage> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_candidate_bindings` is never used
[INFO] [stdout]    --> src/name_resolution.rs:310:4
[INFO] [stdout]     |
[INFO] [stdout] 310 | fn get_candidate_bindings(usage: &Usage, valid_symbol_table: &SymbolTable) -> Vec<BoundUsage> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resolve_candidate_bindings` is never used
[INFO] [stdout]    --> src/name_resolution.rs:331:8
[INFO] [stdout]     |
[INFO] [stdout] 331 | pub fn resolve_candidate_bindings(usages: &Vec<Usage>, valid_symbol_table: &SymbolTable) -> Vec<BoundUsage> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `symbol_table` is never read
[INFO] [stdout]  --> src/symbol_table2.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct SymbolTable2 {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 7 |     pub symbol_table: HashMap<String, SymbolInfo>
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `SymbolTable2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scope_address`, `kind`, and `inner` are never read
[INFO] [stdout]   --> src/symbol_table2.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct SymbolInfo {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 12 |     pub scope_address: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub kind: SymbolKind2,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 14 |     pub inner: Option<SymbolTable2>
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/symbol_table2.rs:19:25
[INFO] [stdout]    |
[INFO] [stdout] 19 |     VariableDeclaration(Option<TypeLiteral>, usize),    
[INFO] [stdout]    |     ------------------- ^^^^^^^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolKind2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 19 |     VariableDeclaration((), ()),    
[INFO] [stdout]    |                         ~~  ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/symbol_table2.rs:20:24
[INFO] [stdout]    |
[INFO] [stdout] 20 |     FunctionDefinition(Vec<TypeLiteral>), // Size of the type vector is the arity of the function.
[INFO] [stdout]    |     ------------------ ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolKind2` has a derived impl for the trait `Debug`, but this is 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] 20 |     FunctionDefinition(()), // Size of the type vector is the arity of the function.
[INFO] [stdout]    |                        ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/symbol_table2.rs:21:23
[INFO] [stdout]    |
[INFO] [stdout] 21 |     FunctionParameter(TypeLiteral)
[INFO] [stdout]    |     ----------------- ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolKind2` has a derived impl for the trait `Debug`, but this is 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] 21 |     FunctionParameter(())
[INFO] [stdout]    |                       ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.84s
[INFO] running `Command { std: "docker" "inspect" "6ed943b5726e6bb062531590fa8dca886c9437197d3af19c77356b904c9c91eb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6ed943b5726e6bb062531590fa8dca886c9437197d3af19c77356b904c9c91eb", kill_on_drop: false }`
[INFO] [stdout] 6ed943b5726e6bb062531590fa8dca886c9437197d3af19c77356b904c9c91eb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-12-08" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 9fa195e2e7254452b09edc038aef466a75049f8ff11a1f3ca4df505d8e58b991
[INFO] running `Command { std: "docker" "start" "-a" "9fa195e2e7254452b09edc038aef466a75049f8ff11a1f3ca4df505d8e58b991", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `name_resolution::resolve_candidate_bindings`
[INFO] [stderr]  --> src/main.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use name_resolution::resolve_candidate_bindings;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `name_resolution::resolve_names`
[INFO] [stderr]  --> src/main.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use name_resolution::resolve_names;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `name_resolution::clean_up_symbol_table`
[INFO] [stderr]   --> src/main.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use name_resolution::clean_up_symbol_table;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `name_resolution::get_program_usages`
[INFO] [stderr]   --> src/main.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 | use name_resolution::get_program_usages;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `TypeLiteral`
[INFO] [stderr]  --> src/scope.rs:3:84
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::ast::{Expression::{self, *}, FunctionDefinition, Program, Statement::*, TypeLiteral};
[INFO] [stderr]   |                                                                                    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ops::Bound`
[INFO] [stderr]  --> src/name_resolution.rs:1:33
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{collections::HashSet, ops::Bound};
[INFO] [stderr]   |                                 ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `symbol_table`
[INFO] [stderr]  --> src/name_resolution.rs:4:111
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::{ast::{Assignment, Expression::{self, *}, ExpressionTerm, FunctionDefinition, Program, Statement}, symbol_table};
[INFO] [stderr]   |                                                                                                               ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/parser.rs:12:17
[INFO] [stderr]    |
[INFO] [stderr] 12 |             let mut children = pair.into_inner();
[INFO] [stderr]    |                 ----^^^^^^^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/parser.rs:118:9
[INFO] [stderr]     |
[INFO] [stderr] 118 |     let mut function_body: FunctionBody = build_function_body_ast(&scope_address, children.next().unwrap());
[INFO] [stderr]     |         ----^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/parser.rs:132:17
[INFO] [stderr]     |
[INFO] [stderr] 132 |             let mut children = pair.into_inner();
[INFO] [stderr]     |                 ----^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/parser.rs:170:17
[INFO] [stderr]     |
[INFO] [stderr] 170 |             let mut children = pair.into_inner();
[INFO] [stderr]     |                 ----^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `program_ast`
[INFO] [stderr]   --> src/main.rs:72:24
[INFO] [stderr]    |
[INFO] [stderr] 72 |     let (symbol_table, program_ast) = table_and_ast;
[INFO] [stderr]    |                        ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program_ast`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `extract_symbol_table` is never used
[INFO] [stderr]   --> src/main.rs:63:4
[INFO] [stderr]    |
[INFO] [stderr] 63 | fn extract_symbol_table(program_ast: Program) -> Result<(SymbolTable, Program), Vec<String>> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `scope_address` is never read
[INFO] [stderr]  --> src/ast.rs:3:9
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub struct Program {
[INFO] [stderr]   |            ------- field in this struct
[INFO] [stderr] 3 |     pub scope_address: String,
[INFO] [stderr]   |         ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Program` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `rhs` is never read
[INFO] [stderr]   --> src/ast.rs:18:9
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct Assignment {
[INFO] [stderr]    |            ---------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 18 |     pub rhs: ExpressionTerm,
[INFO] [stderr]    |         ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Assignment` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `return_expression_term` is never read
[INFO] [stderr]   --> src/ast.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub struct FunctionBody {
[INFO] [stderr]    |            ------------ field in this struct
[INFO] [stderr] 40 |     pub statements: Vec<Statement>,
[INFO] [stderr] 41 |     pub return_expression_term: Option<ExpressionTerm>
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `FunctionBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `enclosing_scope_address` and `expression` are never read
[INFO] [stderr]   --> src/ast.rs:54:9
[INFO] [stderr]    |
[INFO] [stderr] 53 | pub struct ExpressionTerm {
[INFO] [stderr]    |            -------------- fields in this struct
[INFO] [stderr] 54 |     pub enclosing_scope_address: String,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 55 |     pub expression: Expression
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ExpressionTerm` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/ast.rs:60:12
[INFO] [stderr]    |
[INFO] [stderr] 60 |     Number(f64),
[INFO] [stderr]    |     ------ ^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 60 |     Number(()),
[INFO] [stderr]    |            ~~
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/ast.rs:61:14
[INFO] [stderr]    |
[INFO] [stderr] 61 |     Negative(Box<Expression>),
[INFO] [stderr]    |     -------- ^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 61 |     Negative(()),
[INFO] [stderr]    |              ~~
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> src/ast.rs:62:10
[INFO] [stderr]    |
[INFO] [stderr] 62 |     Plus(Box<Expression>, Box<Expression>),
[INFO] [stderr]    |     ---- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 62 |     Plus((), ()),
[INFO] [stderr]    |          ~~  ~~
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> src/ast.rs:63:11
[INFO] [stderr]    |
[INFO] [stderr] 63 |     Minus(Box<Expression>, Box<Expression>),
[INFO] [stderr]    |     ----- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 63 |     Minus((), ()),
[INFO] [stderr]    |           ~~  ~~
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> src/ast.rs:64:11
[INFO] [stderr]    |
[INFO] [stderr] 64 |     Times(Box<Expression>, Box<Expression>),
[INFO] [stderr]    |     ----- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 64 |     Times((), ()),
[INFO] [stderr]    |           ~~  ~~
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> src/ast.rs:65:12
[INFO] [stderr]    |
[INFO] [stderr] 65 |     Divide(Box<Expression>, Box<Expression>),
[INFO] [stderr]    |     ------ ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 65 |     Divide((), ()),
[INFO] [stderr]    |            ~~  ~~
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> src/ast.rs:66:13
[INFO] [stderr]    |
[INFO] [stderr] 66 |     IsEqual(Box<Expression>, Box<Expression>),
[INFO] [stderr]    |     ------- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 66 |     IsEqual((), ()),
[INFO] [stderr]    |             ~~  ~~
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> src/ast.rs:67:14
[INFO] [stderr]    |
[INFO] [stderr] 67 |     NotEqual(Box<Expression>, Box<Expression>),
[INFO] [stderr]    |     -------- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 67 |     NotEqual((), ()),
[INFO] [stderr]    |              ~~  ~~
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> src/ast.rs:68:14
[INFO] [stderr]    |
[INFO] [stderr] 68 |     LessThan(Box<Expression>, Box<Expression>),
[INFO] [stderr]    |     -------- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 68 |     LessThan((), ()),
[INFO] [stderr]    |              ~~  ~~
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> src/ast.rs:69:21
[INFO] [stderr]    |
[INFO] [stderr] 69 |     LessThanOrEqual(Box<Expression>, Box<Expression>),
[INFO] [stderr]    |     --------------- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 69 |     LessThanOrEqual((), ()),
[INFO] [stderr]    |                     ~~  ~~
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> src/ast.rs:70:17
[INFO] [stderr]    |
[INFO] [stderr] 70 |     GreaterThan(Box<Expression>, Box<Expression>),
[INFO] [stderr]    |     ----------- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 70 |     GreaterThan((), ()),
[INFO] [stderr]    |                 ~~  ~~
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> src/ast.rs:71:24
[INFO] [stderr]    |
[INFO] [stderr] 71 |     GreaterThanOrEqual(Box<Expression>, Box<Expression>),
[INFO] [stderr]    |     ------------------ ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 71 |     GreaterThanOrEqual((), ()),
[INFO] [stderr]    |                        ~~  ~~
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/ast.rs:73:13
[INFO] [stderr]    |
[INFO] [stderr] 73 |     Boolean(bool),
[INFO] [stderr]    |     ------- ^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 73 |     Boolean(()),
[INFO] [stderr]    |             ~~
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/ast.rs:74:9
[INFO] [stderr]    |
[INFO] [stderr] 74 |     Not(Box<Expression>),
[INFO] [stderr]    |     --- ^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 74 |     Not(()),
[INFO] [stderr]    |         ~~
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> src/ast.rs:75:8
[INFO] [stderr]    |
[INFO] [stderr] 75 |     Or(Box<Expression>, Box<Expression>),
[INFO] [stderr]    |     -- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 75 |     Or((), ()),
[INFO] [stderr]    |        ~~  ~~
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> src/ast.rs:76:9
[INFO] [stderr]    |
[INFO] [stderr] 76 |     And(Box<Expression>, Box<Expression>),
[INFO] [stderr]    |     --- ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 76 |     And((), ()),
[INFO] [stderr]    |         ~~  ~~
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/ast.rs:78:11
[INFO] [stderr]    |
[INFO] [stderr] 78 |     Ident(Identifier),
[INFO] [stderr]    |     ----- ^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 78 |     Ident(()),
[INFO] [stderr]    |           ~~
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/ast.rs:80:18
[INFO] [stderr]    |
[INFO] [stderr] 80 |     FunctionCall(FunctionCall),
[INFO] [stderr]    |     ------------ ^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 80 |     FunctionCall(()),
[INFO] [stderr]    |                  ~~
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/ast.rs:82:22
[INFO] [stderr]    |
[INFO] [stderr] 82 |     IfElseExpression(IfElseExpression),
[INFO] [stderr]    |     ---------------- ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 82 |     IfElseExpression(()),
[INFO] [stderr]    |                      ~~
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/ast.rs:84:19
[INFO] [stderr]    |
[INFO] [stderr] 84 |     StringLiteral(String)
[INFO] [stderr]    |     ------------- ^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Expression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 84 |     StringLiteral(())
[INFO] [stderr]    |                   ~~
[INFO] [stderr] 
[INFO] [stderr] warning: fields `identifier_name` and `start_pos` are never read
[INFO] [stderr]   --> src/ast.rs:89:9
[INFO] [stderr]    |
[INFO] [stderr] 88 | pub struct Identifier {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 89 |     pub identifier_name: String,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 90 |     pub start_pos: usize
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Identifier` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `function_name` and `function_arguments` are never read
[INFO] [stderr]   --> src/ast.rs:95:9
[INFO] [stderr]    |
[INFO] [stderr] 94 | pub struct FunctionCall {
[INFO] [stderr]    |            ------------ fields in this struct
[INFO] [stderr] 95 |     pub function_name: String,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 96 |     pub function_arguments: Vec<Expression>
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `FunctionCall` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `predicate`, `true_branch`, and `false_branch` are never read
[INFO] [stderr]    --> src/ast.rs:101:9
[INFO] [stderr]     |
[INFO] [stderr] 100 | pub struct IfElseExpression {
[INFO] [stderr]     |            ---------------- fields in this struct
[INFO] [stderr] 101 |     pub predicate: Box<Expression>,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] 102 |     pub true_branch: Box<Expression>,
[INFO] [stderr]     |         ^^^^^^^^^^^
[INFO] [stderr] 103 |     pub false_branch: Box<Expression>,
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `IfElseExpression` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Scope` is never used
[INFO] [stderr]  --> src/scope.rs:7:10
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub enum Scope<'a> {
[INFO] [stderr]   |          ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Symbol` is never constructed
[INFO] [stderr]   --> src/scope.rs:13:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct Symbol {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Symbol` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Variable`, `Function`, and `FunctionParameter` are never constructed
[INFO] [stderr]   --> src/scope.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub enum SymbolKind {
[INFO] [stderr]    |          ---------- variants in this enum
[INFO] [stderr] 21 |     Variable,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 22 |     Function,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 23 |     FunctionParameter
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SymbolKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Usage` is never constructed
[INFO] [stderr]   --> src/scope.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub struct Usage {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Usage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: enum `UsageKind` is never used
[INFO] [stderr]   --> src/scope.rs:34:10
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub enum UsageKind {
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `UsageKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NameResolutionError` is never constructed
[INFO] [stderr]   --> src/scope.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub struct NameResolutionError {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `NameResolutionErrorKind` is never used
[INFO] [stderr]   --> src/scope.rs:44:10
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub enum NameResolutionErrorKind {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_scope_name` is never used
[INFO] [stderr]   --> src/scope.rs:49:4
[INFO] [stderr]    |
[INFO] [stderr] 49 | fn get_scope_name(scope: &Scope) -> String {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_level_symbol_table` is never used
[INFO] [stderr]   --> src/scope.rs:56:4
[INFO] [stderr]    |
[INFO] [stderr] 56 | fn get_level_symbol_table(scope: &Scope) -> Vec<Symbol> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_for_redeclarations` is never used
[INFO] [stderr]    --> src/scope.rs:116:4
[INFO] [stderr]     |
[INFO] [stderr] 116 | fn check_for_redeclarations(scope: &Scope) -> Vec<NameResolutionError> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `extract_usages` is never used
[INFO] [stderr]    --> src/scope.rs:132:4
[INFO] [stderr]     |
[INFO] [stderr] 132 | fn extract_usages(expression_node: &Expression) -> Vec<Usage> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_level_usages` is never used
[INFO] [stderr]    --> src/scope.rs:219:4
[INFO] [stderr]     |
[INFO] [stderr] 219 | fn get_level_usages(scope: &Scope) -> Vec<Usage> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `usage_is_defined` is never used
[INFO] [stderr]    --> src/scope.rs:258:4
[INFO] [stderr]     |
[INFO] [stderr] 258 | fn usage_is_defined(usage: &Usage, symbol_table: &Vec<Symbol>) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `name_resolution` is never used
[INFO] [stderr]    --> src/scope.rs:285:8
[INFO] [stderr]     |
[INFO] [stderr] 285 | pub fn name_resolution(scope: &Scope, symbol_table_stack: &mut Vec<Vec<Symbol>>) -> Vec<NameResolutionError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `symbol_table` is never read
[INFO] [stderr]  --> src/symbol_table.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct SymbolTable {
[INFO] [stderr]   |            ----------- field in this struct
[INFO] [stderr] 5 |     pub symbol_table: Vec<Symbol>
[INFO] [stderr]   |         ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `SymbolTable` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `symbol`, `scope_address`, and `kind` are never read
[INFO] [stderr]   --> src/symbol_table.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 9  | pub struct Symbol {
[INFO] [stderr]    |            ------ fields in this struct
[INFO] [stderr] 10 |     pub symbol: String,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 11 |     pub scope_address: String,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 12 |     pub kind: SymbolKind,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Symbol` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `VariableDeclaration`, `FunctionDefinition`, and `FunctionParameter` are never constructed
[INFO] [stderr]   --> src/symbol_table.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub enum SymbolKind {
[INFO] [stderr]    |          ---------- variants in this enum
[INFO] [stderr] 17 |     VariableDeclaration(usize),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 20 |     FunctionDefinition(Vec<TypeLiteral>),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 21 |     FunctionParameter(TypeLiteral)
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SymbolKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `build_program_symbol_table` is never used
[INFO] [stderr]   --> src/symbol_table.rs:24:8
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub fn build_program_symbol_table(program: &Program) -> SymbolTable {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `build_assignment_symbol_table` is never used
[INFO] [stderr]   --> src/symbol_table.rs:43:4
[INFO] [stderr]    |
[INFO] [stderr] 43 | fn build_assignment_symbol_table(assignment: &Assignment) -> Vec<Symbol> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `build_function_def_symbol_table` is never used
[INFO] [stderr]   --> src/symbol_table.rs:53:4
[INFO] [stderr]    |
[INFO] [stderr] 53 | fn build_function_def_symbol_table(function_definition: &FunctionDefinition) -> Vec<Symbol> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Usage` is never constructed
[INFO] [stderr]  --> src/name_resolution.rs:8:12
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub struct Usage {
[INFO] [stderr]   |            ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Usage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: enum `UsageKind` is never used
[INFO] [stderr]   --> src/name_resolution.rs:15:10
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub enum UsageKind {
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `UsageKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BoundUsage` is never constructed
[INFO] [stderr]   --> src/name_resolution.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub struct BoundUsage {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `BoundUsage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `clean_up_symbol_table` is never used
[INFO] [stderr]   --> src/name_resolution.rs:27:8
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub fn clean_up_symbol_table(symbol_table: &SymbolTable) -> (SymbolTable, Vec<Symbol>, Vec<Symbol>)  {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_program_usages` is never used
[INFO] [stderr]   --> src/name_resolution.rs:94:8
[INFO] [stderr]    |
[INFO] [stderr] 94 | pub fn get_program_usages(program_ast: &Program) -> Vec<Usage> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_statement_usages` is never used
[INFO] [stderr]    --> src/name_resolution.rs:104:4
[INFO] [stderr]     |
[INFO] [stderr] 104 | fn get_statement_usages(statement: &Statement) -> Vec<Usage> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_assignment_usages` is never used
[INFO] [stderr]    --> src/name_resolution.rs:119:4
[INFO] [stderr]     |
[INFO] [stderr] 119 | fn get_assignment_usages(assignment: &Assignment) -> Vec<Usage> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_function_def_usages` is never used
[INFO] [stderr]    --> src/name_resolution.rs:127:4
[INFO] [stderr]     |
[INFO] [stderr] 127 | fn get_function_def_usages(function_definition: &FunctionDefinition) -> Vec<Usage> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_expression_term_usages` is never used
[INFO] [stderr]    --> src/name_resolution.rs:145:4
[INFO] [stderr]     |
[INFO] [stderr] 145 | fn get_expression_term_usages(expression_term: &ExpressionTerm) -> Vec<Usage> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `resolve_names` is never used
[INFO] [stderr]    --> src/name_resolution.rs:243:8
[INFO] [stderr]     |
[INFO] [stderr] 243 | pub fn resolve_names(usages: &Vec<Usage>, valid_symbol_table: &SymbolTable) -> Vec<BoundUsage> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_depth` is never used
[INFO] [stderr]    --> src/name_resolution.rs:256:4
[INFO] [stderr]     |
[INFO] [stderr] 256 | fn get_depth(scope_address: &String) -> usize {
[INFO] [stderr]     |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `resolve_usage` is never used
[INFO] [stderr]    --> src/name_resolution.rs:260:4
[INFO] [stderr]     |
[INFO] [stderr] 260 | fn resolve_usage(usage: &Usage, valid_symbol_table: &SymbolTable) -> Option<BoundUsage> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_candidate_bindings` is never used
[INFO] [stderr]    --> src/name_resolution.rs:310:4
[INFO] [stderr]     |
[INFO] [stderr] 310 | fn get_candidate_bindings(usage: &Usage, valid_symbol_table: &SymbolTable) -> Vec<BoundUsage> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `resolve_candidate_bindings` is never used
[INFO] [stderr]    --> src/name_resolution.rs:331:8
[INFO] [stderr]     |
[INFO] [stderr] 331 | pub fn resolve_candidate_bindings(usages: &Vec<Usage>, valid_symbol_table: &SymbolTable) -> Vec<BoundUsage> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `symbol_table` is never read
[INFO] [stderr]  --> src/symbol_table2.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct SymbolTable2 {
[INFO] [stderr]   |            ------------ field in this struct
[INFO] [stderr] 7 |     pub symbol_table: HashMap<String, SymbolInfo>
[INFO] [stderr]   |         ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `SymbolTable2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `scope_address`, `kind`, and `inner` are never read
[INFO] [stderr]   --> src/symbol_table2.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct SymbolInfo {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 12 |     pub scope_address: String,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 13 |     pub kind: SymbolKind2,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 14 |     pub inner: Option<SymbolTable2>
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SymbolInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]   --> src/symbol_table2.rs:19:25
[INFO] [stderr]    |
[INFO] [stderr] 19 |     VariableDeclaration(Option<TypeLiteral>, usize),    
[INFO] [stderr]    |     ------------------- ^^^^^^^^^^^^^^^^^^^  ^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     fields in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SymbolKind2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]    |
[INFO] [stderr] 19 |     VariableDeclaration((), ()),    
[INFO] [stderr]    |                         ~~  ~~
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/symbol_table2.rs:20:24
[INFO] [stderr]    |
[INFO] [stderr] 20 |     FunctionDefinition(Vec<TypeLiteral>), // Size of the type vector is the arity of the function.
[INFO] [stderr]    |     ------------------ ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SymbolKind2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 20 |     FunctionDefinition(()), // Size of the type vector is the arity of the function.
[INFO] [stderr]    |                        ~~
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/symbol_table2.rs:21:23
[INFO] [stderr]    |
[INFO] [stderr] 21 |     FunctionParameter(TypeLiteral)
[INFO] [stderr]    |     ----------------- ^^^^^^^^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SymbolKind2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 21 |     FunctionParameter(())
[INFO] [stderr]    |                       ~~
[INFO] [stderr] 
[INFO] [stderr] warning: `crisp` (bin "crisp" test) generated 79 warnings (run `cargo fix --bin "crisp" --tests` to apply 11 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/crisp-e67345f5a4fefb87)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9fa195e2e7254452b09edc038aef466a75049f8ff11a1f3ca4df505d8e58b991", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9fa195e2e7254452b09edc038aef466a75049f8ff11a1f3ca4df505d8e58b991", kill_on_drop: false }`
[INFO] [stdout] 9fa195e2e7254452b09edc038aef466a75049f8ff11a1f3ca4df505d8e58b991
