[INFO] cloning repository https://github.com/DecklynKern/brainfric
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/DecklynKern/brainfric" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDecklynKern%2Fbrainfric", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDecklynKern%2Fbrainfric'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] da9dc011c9f91665a8eadb587cc23e3a0d12abb0
[INFO] checking DecklynKern/brainfric against try#2b39fe756f52bc2825bf5b2bfc385cab922dae10 for pr-143011
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDecklynKern%2Fbrainfric" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/DecklynKern/brainfric
[INFO] finished tweaking git repo https://github.com/DecklynKern/brainfric
[INFO] tweaked toml for git repo https://github.com/DecklynKern/brainfric written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/DecklynKern/brainfric on toolchain 2b39fe756f52bc2825bf5b2bfc385cab922dae10
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2b39fe756f52bc2825bf5b2bfc385cab922dae10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/DecklynKern/brainfric 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" "+2b39fe756f52bc2825bf5b2bfc385cab922dae10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+2b39fe756f52bc2825bf5b2bfc385cab922dae10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 88fb900ecd0e6a69dbe7eb40f07b68f29dbf012d0830e67532d5ac86293a9d0e
[INFO] running `Command { std: "docker" "start" "-a" "88fb900ecd0e6a69dbe7eb40f07b68f29dbf012d0830e67532d5ac86293a9d0e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "88fb900ecd0e6a69dbe7eb40f07b68f29dbf012d0830e67532d5ac86293a9d0e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "88fb900ecd0e6a69dbe7eb40f07b68f29dbf012d0830e67532d5ac86293a9d0e", kill_on_drop: false }`
[INFO] [stdout] 88fb900ecd0e6a69dbe7eb40f07b68f29dbf012d0830e67532d5ac86293a9d0e
[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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+2b39fe756f52bc2825bf5b2bfc385cab922dae10" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3a9f3340fc68225b9b9a9262adb7bc7fd360972baa61402561486f721d485e3e
[INFO] running `Command { std: "docker" "start" "-a" "3a9f3340fc68225b9b9a9262adb7bc7fd360972baa61402561486f721d485e3e", kill_on_drop: false }`
[INFO] [stderr]     Checking brainfric v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: the feature `generic_const_exprs` is incomplete and may not be safe to use and/or cause compiler crashes
[INFO] [stdout]  --> src/lib.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | #![feature(generic_const_exprs)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #76560 <https://github.com/rust-lang/rust/issues/76560> for more information
[INFO] [stdout]   = note: `#[warn(incomplete_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Index`
[INFO] [stdout]  --> src/ir.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::Index;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/optimize.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]  --> src/optimize.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::mem;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::args::*`
[INFO] [stdout]  --> src/optimize.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::args::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ir::*`
[INFO] [stdout]  --> src/optimize.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::ir::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `generic_const_exprs` is incomplete and may not be safe to use and/or cause compiler crashes
[INFO] [stdout]  --> src/lib.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | #![feature(generic_const_exprs)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #76560 <https://github.com/rust-lang/rust/issues/76560> for more information
[INFO] [stdout]   = note: `#[warn(incomplete_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Index`
[INFO] [stdout]  --> src/ir.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::Index;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/optimize.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]  --> src/optimize.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::mem;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::args::*`
[INFO] [stdout]  --> src/optimize.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::args::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ir::*`
[INFO] [stdout]  --> src/optimize.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::ir::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/elaborate.rs:631:33
[INFO] [stdout]     |
[INFO] [stdout] 630 | ...                   todo!(),
[INFO] [stdout]     |                       ------- any code following this expression is unreachable
[INFO] [stdout] 631 | ...                   todo!()
[INFO] [stdout]     |                       ^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/elaborate.rs:631:33
[INFO] [stdout]     |
[INFO] [stdout] 630 | ...                   todo!(),
[INFO] [stdout]     |                       ------- any code following this expression is unreachable
[INFO] [stdout] 631 | ...                   todo!()
[INFO] [stdout]     |                       ^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/elaborate.rs:653:33
[INFO] [stdout]     |
[INFO] [stdout] 652 | ...                   todo!(),
[INFO] [stdout]     |                       ------- any code following this expression is unreachable
[INFO] [stdout] 653 | ...                   todo!()
[INFO] [stdout]     |                       ^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/elaborate.rs:653:33
[INFO] [stdout]     |
[INFO] [stdout] 652 | ...                   todo!(),
[INFO] [stdout]     |                       ------- any code following this expression is unreachable
[INFO] [stdout] 653 | ...                   todo!()
[INFO] [stdout]     |                       ^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]     --> src/elaborate.rs:1075:138
[INFO] [stdout]      |
[INFO] [stdout] 1075 | ...laboratedStatement::WriteByteSequence(todo!(), todo!()),
[INFO] [stdout]      |                                          -------  ^^^^^^^ unreachable expression
[INFO] [stdout]      |                                          |
[INFO] [stdout]      |                                          any code following this expression is unreachable
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]     --> src/elaborate.rs:1075:138
[INFO] [stdout]      |
[INFO] [stdout] 1075 | ...laboratedStatement::WriteByteSequence(todo!(), todo!()),
[INFO] [stdout]      |                                          -------  ^^^^^^^ unreachable expression
[INFO] [stdout]      |                                          |
[INFO] [stdout]      |                                          any code following this expression is unreachable
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `field_offset`
[INFO] [stdout]    --> src/elaborate.rs:392:46
[INFO] [stdout]     |
[INFO] [stdout] 392 |                     let Some((new_data_type, field_offset)) = self.get_field_data(&data_type_again, field_name.clone())
[INFO] [stdout]     |                                              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_field_offset`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enum_id`
[INFO] [stdout]    --> src/elaborate.rs:629:63
[INFO] [stdout]     |
[INFO] [stdout] 629 | ...                   Some(ElaboratedDataType::UserEnum(enum_id)) => BoolExpression::ByteEquals(
[INFO] [stdout]     |                                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enum_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enum_id`
[INFO] [stdout]    --> src/elaborate.rs:651:63
[INFO] [stdout]     |
[INFO] [stdout] 651 | ...                   Some(ElaboratedDataType::UserEnum(enum_id)) => BoolExpression::ByteNotEquals(
[INFO] [stdout]     |                                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enum_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `field_offset`
[INFO] [stdout]    --> src/elaborate.rs:392:46
[INFO] [stdout]     |
[INFO] [stdout] 392 |                     let Some((new_data_type, field_offset)) = self.get_field_data(&data_type_again, field_name.clone())
[INFO] [stdout]     |                                              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_field_offset`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enum_id`
[INFO] [stdout]    --> src/elaborate.rs:629:63
[INFO] [stdout]     |
[INFO] [stdout] 629 | ...                   Some(ElaboratedDataType::UserEnum(enum_id)) => BoolExpression::ByteEquals(
[INFO] [stdout]     |                                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enum_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enum_id`
[INFO] [stdout]    --> src/elaborate.rs:651:63
[INFO] [stdout]     |
[INFO] [stdout] 651 | ...                   Some(ElaboratedDataType::UserEnum(enum_id)) => BoolExpression::ByteNotEquals(
[INFO] [stdout]     |                                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enum_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/ir.rs:260:17
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 ElaboratedSpecifier::ConstOffset(extra_offset) => {
[INFO] [stdout]     |                 ---------------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 260 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr1`
[INFO] [stdout]    --> src/ir.rs:689:39
[INFO] [stdout]     |
[INFO] [stdout] 689 |             ShortExpression::Multiply(expr1, expr2) => {
[INFO] [stdout]     |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_expr1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr2`
[INFO] [stdout]    --> src/ir.rs:689:46
[INFO] [stdout]     |
[INFO] [stdout] 689 |             ShortExpression::Multiply(expr1, expr2) => {
[INFO] [stdout]     |                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_expr2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/ir.rs:260:17
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 ElaboratedSpecifier::ConstOffset(extra_offset) => {
[INFO] [stdout]     |                 ---------------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 260 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `accessor`
[INFO] [stdout]    --> src/ir.rs:745:48
[INFO] [stdout]     |
[INFO] [stdout] 745 |                 ElaboratedStatement::LeftShift(accessor, amount) => {
[INFO] [stdout]     |                                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_accessor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `amount`
[INFO] [stdout]    --> src/ir.rs:745:58
[INFO] [stdout]     |
[INFO] [stdout] 745 |                 ElaboratedStatement::LeftShift(accessor, amount) => {
[INFO] [stdout]     |                                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `accessor`
[INFO] [stdout]    --> src/ir.rs:748:49
[INFO] [stdout]     |
[INFO] [stdout] 748 |                 ElaboratedStatement::RightShift(accessor, amount) => {
[INFO] [stdout]     |                                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_accessor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `amount`
[INFO] [stdout]    --> src/ir.rs:748:59
[INFO] [stdout]     |
[INFO] [stdout] 748 |                 ElaboratedStatement::RightShift(accessor, amount) => {
[INFO] [stdout]     |                                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr1`
[INFO] [stdout]    --> src/ir.rs:689:39
[INFO] [stdout]     |
[INFO] [stdout] 689 |             ShortExpression::Multiply(expr1, expr2) => {
[INFO] [stdout]     |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_expr1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr2`
[INFO] [stdout]    --> src/ir.rs:689:46
[INFO] [stdout]     |
[INFO] [stdout] 689 |             ShortExpression::Multiply(expr1, expr2) => {
[INFO] [stdout]     |                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_expr2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `accessor`
[INFO] [stdout]    --> src/ir.rs:745:48
[INFO] [stdout]     |
[INFO] [stdout] 745 |                 ElaboratedStatement::LeftShift(accessor, amount) => {
[INFO] [stdout]     |                                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_accessor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `amount`
[INFO] [stdout]    --> src/ir.rs:745:58
[INFO] [stdout]     |
[INFO] [stdout] 745 |                 ElaboratedStatement::LeftShift(accessor, amount) => {
[INFO] [stdout]     |                                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `accessor`
[INFO] [stdout]    --> src/ir.rs:748:49
[INFO] [stdout]     |
[INFO] [stdout] 748 |                 ElaboratedStatement::RightShift(accessor, amount) => {
[INFO] [stdout]     |                                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_accessor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `amount`
[INFO] [stdout]    --> src/ir.rs:748:59
[INFO] [stdout]     |
[INFO] [stdout] 748 |                 ElaboratedStatement::RightShift(accessor, amount) => {
[INFO] [stdout]     |                                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `try_match_types` is never used
[INFO] [stdout]    --> src/elaborate.rs:950:8
[INFO] [stdout]     |
[INFO] [stdout] 337 | impl Elaborator {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 950 |     fn try_match_types(&self, type1: ElaboratedDataType, type2: ElaboratedDataType) -> Result<ElaboratedDataType, BrainFricError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/args.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |         &INPUT_FILE
[INFO] [stdout]    |         ^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 56 |         &raw const INPUT_FILE
[INFO] [stdout]    |          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/args.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         &OUTPUT_FILE
[INFO] [stdout]    |         ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 62 |         &raw const OUTPUT_FILE
[INFO] [stdout]    |          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `try_match_types` is never used
[INFO] [stdout]    --> src/elaborate.rs:950:8
[INFO] [stdout]     |
[INFO] [stdout] 337 | impl Elaborator {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 950 |     fn try_match_types(&self, type1: ElaboratedDataType, type2: ElaboratedDataType) -> Result<ElaboratedDataType, BrainFricError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/args.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |         &INPUT_FILE
[INFO] [stdout]    |         ^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 56 |         &raw const INPUT_FILE
[INFO] [stdout]    |          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/args.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         &OUTPUT_FILE
[INFO] [stdout]    |         ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 62 |         &raw const OUTPUT_FILE
[INFO] [stdout]    |          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found struct `ParsedDataType`
[INFO] [stdout]    --> tests/test.rs:76:92
[INFO] [stdout]     |
[INFO] [stdout] 76  |                 body: StatementBody::Declaration(vec!["a".into(), "b".into(), "c".into()], ParsedDataType)
[INFO] [stdout]     |                                                                                            ^^^^^^^^^^^^^^ help: use struct literal syntax instead: `ParsedDataType { head: val, parameters: val }`
[INFO] [stdout] ...
[INFO] [stdout] 125 |         statements!()
[INFO] [stdout]     |         ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/parse.rs:45:1
[INFO] [stdout]     |
[INFO] [stdout] 45  | pub struct ParsedDataType {
[INFO] [stdout]     | ------------------------- `ParsedDataType` defined here
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected value, found struct `ParsedDataType`
[INFO] [stdout]    --> tests/test.rs:76:92
[INFO] [stdout]     |
[INFO] [stdout] 76  |                 body: StatementBody::Declaration(vec!["a".into(), "b".into(), "c".into()], ParsedDataType)
[INFO] [stdout]     |                                                                                            ^^^^^^^^^^^^^^ help: use struct literal syntax instead: `ParsedDataType { head: val, parameters: val }`
[INFO] [stdout] ...
[INFO] [stdout] 157 |     let mut generated_ir = generate_ir(statements!()).unwrap_or_else(|_| panic!());
[INFO] [stdout]     |                                        ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/workdir/src/parse.rs:45:1
[INFO] [stdout]     |
[INFO] [stdout] 45  | pub struct ParsedDataType {
[INFO] [stdout]     | ------------------------- `ParsedDataType` defined here
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `generic_const_exprs` is incomplete and may not be safe to use and/or cause compiler crashes
[INFO] [stdout]  --> src/main.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | #![feature(generic_const_exprs)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #76560 <https://github.com/rust-lang/rust/issues/76560> for more information
[INFO] [stdout]   = note: `#[warn(incomplete_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Index`
[INFO] [stdout]  --> src/ir.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::Index;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/optimize.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]  --> src/optimize.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::mem;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::args::*`
[INFO] [stdout]  --> src/optimize.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::args::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ir::*`
[INFO] [stdout]  --> src/optimize.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::ir::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `NumberLiteral` found for enum `brainfric::lex::Token` in the current scope
[INFO] [stdout]    --> tests/test.rs:43:24
[INFO] [stdout]     |
[INFO] [stdout] 43  |                 Token::NumberLiteral(240)
[INFO] [stdout]     |                        ^^^^^^^^^^^^^ variant or associated item not found in `brainfric::lex::Token`
[INFO] [stdout] ...
[INFO] [stdout] 117 |         tokens!()
[INFO] [stdout]     |         --------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `tokens` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `generic_const_exprs` is incomplete and may not be safe to use and/or cause compiler crashes
[INFO] [stdout]  --> src/main.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | #![feature(generic_const_exprs)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #76560 <https://github.com/rust-lang/rust/issues/76560> for more information
[INFO] [stdout]   = note: `#[warn(incomplete_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Index`
[INFO] [stdout]  --> src/ir.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::Index;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/optimize.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]  --> src/optimize.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::mem;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::args::*`
[INFO] [stdout]  --> src/optimize.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::args::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ir::*`
[INFO] [stdout]  --> src/optimize.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::ir::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `brainfric::lex::Token` with `Vec<brainfric::lex::Token>`
[INFO] [stdout]    --> tests/test.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 115 | /     assert_eq!(
[INFO] [stdout] 116 | |         lex(program!()).unwrap_or_else(|_| panic!()),
[INFO] [stdout] 117 | |         tokens!()
[INFO] [stdout] 118 | |     )
[INFO] [stdout]     | |_____^ no implementation for `brainfric::lex::Token == Vec<brainfric::lex::Token>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PartialEq<Vec<brainfric::lex::Token>>` is not implemented for `brainfric::lex::Token`
[INFO] [stdout]             but trait `PartialEq<brainfric::lex::Token>` is implemented for it
[INFO] [stdout]     = help: for that trait implementation, expected `brainfric::lex::Token`, found `Vec<brainfric::lex::Token>`
[INFO] [stdout]     = note: required for `Vec<brainfric::lex::Token>` to implement `PartialEq<Vec<Vec<brainfric::lex::Token>>>`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `NumberLiteral` found for enum `brainfric::lex::Token` in the current scope
[INFO] [stdout]    --> tests/test.rs:43:24
[INFO] [stdout]     |
[INFO] [stdout] 43  |                 Token::NumberLiteral(240)
[INFO] [stdout]     |                        ^^^^^^^^^^^^^ variant or associated item not found in `brainfric::lex::Token`
[INFO] [stdout] ...
[INFO] [stdout] 124 |         parse(tokens!(), 0).unwrap_or_else(|_| panic!()),
[INFO] [stdout]     |               --------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `tokens` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> tests/test.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |         parse(tokens!(), 0).unwrap_or_else(|_| panic!()),
[INFO] [stdout]     |         ^^^^^            - unexpected argument #2 of type `{integer}`
[INFO] [stdout]     |
[INFO] [stdout] note: expected `&[Token]`, found `Vec<Vec<Token>>`
[INFO] [stdout]    --> tests/test.rs:124:15
[INFO] [stdout]     |
[INFO] [stdout] 124 |         parse(tokens!(), 0).unwrap_or_else(|_| panic!()),
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout]     = note: expected reference `&[brainfric::lex::Token]`
[INFO] [stdout]                   found struct `Vec<Vec<brainfric::lex::Token>>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /opt/rustwide/workdir/src/parse.rs:924:8
[INFO] [stdout]     |
[INFO] [stdout] 924 | pub fn parse(code: &[Token]) -> Result<ParsedProgram, BrainFricError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 124 -         parse(tokens!(), 0).unwrap_or_else(|_| panic!()),
[INFO] [stdout] 124 +         parse(/* &[brainfric::lex::Token] */).unwrap_or_else(|_| panic!()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/test.rs:68:51
[INFO] [stdout]     |
[INFO] [stdout] 68  |         Accessor {name: $name.into(), specifiers: Vec::new()}
[INFO] [stdout]     |                                                   ^^^^^^^^^^ expected `Box<[Specifier]>`, found `Vec<_>`
[INFO] [stdout] ...
[INFO] [stdout] 125 |         statements!()
[INFO] [stdout]     |         ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<[Specifier]>`
[INFO] [stdout]                found struct `Vec<_>`
[INFO] [stdout]     = note: this error originates in the macro `access` which comes from the expansion of the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: call `Into::into` on this expression to convert `Vec<_>` into `Box<[Specifier]>`
[INFO] [stdout]     |
[INFO] [stdout] 81  |                     access!("a").into(),
[INFO] [stdout]     |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/test.rs:68:51
[INFO] [stdout]     |
[INFO] [stdout] 68  |         Accessor {name: $name.into(), specifiers: Vec::new()}
[INFO] [stdout]     |                                                   ^^^^^^^^^^ expected `Box<[Specifier]>`, found `Vec<_>`
[INFO] [stdout] ...
[INFO] [stdout] 125 |         statements!()
[INFO] [stdout]     |         ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<[Specifier]>`
[INFO] [stdout]                found struct `Vec<_>`
[INFO] [stdout]     = note: this error originates in the macro `access` which comes from the expansion of the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: call `Into::into` on this expression to convert `Vec<_>` into `Box<[Specifier]>`
[INFO] [stdout]     |
[INFO] [stdout] 87  |                 body: StatementBody::Read(access!("b").into())
[INFO] [stdout]     |                                                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/test.rs:68:51
[INFO] [stdout]     |
[INFO] [stdout] 68  |         Accessor {name: $name.into(), specifiers: Vec::new()}
[INFO] [stdout]     |                                                   ^^^^^^^^^^ expected `Box<[Specifier]>`, found `Vec<_>`
[INFO] [stdout] ...
[INFO] [stdout] 125 |         statements!()
[INFO] [stdout]     |         ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<[Specifier]>`
[INFO] [stdout]                found struct `Vec<_>`
[INFO] [stdout]     = note: this error originates in the macro `access` which comes from the expansion of the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: call `Into::into` on this expression to convert `Vec<_>` into `Box<[Specifier]>`
[INFO] [stdout]     |
[INFO] [stdout] 92  |                     access!("c").into(),
[INFO] [stdout]     |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Subtract` found for enum `brainfric::parse::Expression` in the current scope
[INFO] [stdout]    --> tests/test.rs:93:33
[INFO] [stdout]     |
[INFO] [stdout] 93  |                     Expression::Subtract(
[INFO] [stdout]     |                                 ^^^^^^^^ variant or associated item not found in `brainfric::parse::Expression`
[INFO] [stdout] ...
[INFO] [stdout] 125 |         statements!()
[INFO] [stdout]     |         ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/test.rs:68:51
[INFO] [stdout]     |
[INFO] [stdout] 68  |         Accessor {name: $name.into(), specifiers: Vec::new()}
[INFO] [stdout]     |                                                   ^^^^^^^^^^ expected `Box<[Specifier]>`, found `Vec<_>`
[INFO] [stdout] ...
[INFO] [stdout] 125 |         statements!()
[INFO] [stdout]     |         ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<[Specifier]>`
[INFO] [stdout]                found struct `Vec<_>`
[INFO] [stdout]     = note: this error originates in the macro `access` which comes from the expansion of the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: call `Into::into` on this expression to convert `Vec<_>` into `Box<[Specifier]>`
[INFO] [stdout]     |
[INFO] [stdout] 94  |                         Box::new(Expression::Access(access!("a").into())),
[INFO] [stdout]     |                                                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/test.rs:68:51
[INFO] [stdout]     |
[INFO] [stdout] 68  |         Accessor {name: $name.into(), specifiers: Vec::new()}
[INFO] [stdout]     |                                                   ^^^^^^^^^^ expected `Box<[Specifier]>`, found `Vec<_>`
[INFO] [stdout] ...
[INFO] [stdout] 125 |         statements!()
[INFO] [stdout]     |         ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<[Specifier]>`
[INFO] [stdout]                found struct `Vec<_>`
[INFO] [stdout]     = note: this error originates in the macro `access` which comes from the expansion of the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: call `Into::into` on this expression to convert `Vec<_>` into `Box<[Specifier]>`
[INFO] [stdout]     |
[INFO] [stdout] 95  |                         Box::new(Expression::Access(access!("b").into()))
[INFO] [stdout]     |                                                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/test.rs:68:51
[INFO] [stdout]     |
[INFO] [stdout] 68  |         Accessor {name: $name.into(), specifiers: Vec::new()}
[INFO] [stdout]     |                                                   ^^^^^^^^^^ expected `Box<[Specifier]>`, found `Vec<_>`
[INFO] [stdout] ...
[INFO] [stdout] 125 |         statements!()
[INFO] [stdout]     |         ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<[Specifier]>`
[INFO] [stdout]                found struct `Vec<_>`
[INFO] [stdout]     = note: this error originates in the macro `access` which comes from the expansion of the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: call `Into::into` on this expression to convert `Vec<_>` into `Box<[Specifier]>`
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 body: StatementBody::Write(Expression::Access(access!("c").into()))
[INFO] [stdout]     |                                                                           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `ParsedProgram`
[INFO] [stdout]    --> tests/test.rs:123:5
[INFO] [stdout]     |
[INFO] [stdout] 123 | /     assert_eq!(
[INFO] [stdout] 124 | |         parse(tokens!(), 0).unwrap_or_else(|_| panic!()),
[INFO] [stdout] 125 | |         statements!()
[INFO] [stdout] 126 | |     )
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |     |
[INFO] [stdout]     | |_____ParsedProgram
[INFO] [stdout]     |       Vec<brainfric::parse::Statement>
[INFO] [stdout]     |
[INFO] [stdout] note: the foreign item type `ParsedProgram` doesn't implement `PartialEq<Vec<brainfric::parse::Statement>>`
[INFO] [stdout]    --> /opt/rustwide/workdir/src/parse.rs:232:1
[INFO] [stdout]     |
[INFO] [stdout] 232 | pub struct ParsedProgram {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^ not implement `PartialEq<Vec<brainfric::parse::Statement>>`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `ParsedProgram` doesn't implement `Debug`
[INFO] [stdout]    --> tests/test.rs:123:5
[INFO] [stdout]     |
[INFO] [stdout] 123 | /     assert_eq!(
[INFO] [stdout] 124 | |         parse(tokens!(), 0).unwrap_or_else(|_| panic!()),
[INFO] [stdout] 125 | |         statements!()
[INFO] [stdout] 126 | |     )
[INFO] [stdout]     | |_____^ the trait `Debug` is not implemented for `ParsedProgram`
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/test.rs:74:13
[INFO] [stdout]     |
[INFO] [stdout] 74  | /             Statement {
[INFO] [stdout] 75  | |                 line_num: 2,
[INFO] [stdout] 76  | |                 body: StatementBody::Declaration(vec!["a".into(), "b".into(), "c".into()], ParsedDataType)
[INFO] [stdout] 77  | |             },
[INFO] [stdout]     | |_____________^ expected `ElaboratedStatement`, found `Statement`
[INFO] [stdout] ...
[INFO] [stdout] 157 |       let mut generated_ir = generate_ir(statements!()).unwrap_or_else(|_| panic!());
[INFO] [stdout]     |                                          ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/test.rs:68:51
[INFO] [stdout]     |
[INFO] [stdout] 68  |         Accessor {name: $name.into(), specifiers: Vec::new()}
[INFO] [stdout]     |                                                   ^^^^^^^^^^ expected `Box<[Specifier]>`, found `Vec<_>`
[INFO] [stdout] ...
[INFO] [stdout] 157 |     let mut generated_ir = generate_ir(statements!()).unwrap_or_else(|_| panic!());
[INFO] [stdout]     |                                        ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<[Specifier]>`
[INFO] [stdout]                found struct `Vec<_>`
[INFO] [stdout]     = note: this error originates in the macro `access` which comes from the expansion of the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: call `Into::into` on this expression to convert `Vec<_>` into `Box<[Specifier]>`
[INFO] [stdout]     |
[INFO] [stdout] 81  |                     access!("a").into(),
[INFO] [stdout]     |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/test.rs:68:51
[INFO] [stdout]     |
[INFO] [stdout] 68  |         Accessor {name: $name.into(), specifiers: Vec::new()}
[INFO] [stdout]     |                                                   ^^^^^^^^^^ expected `Box<[Specifier]>`, found `Vec<_>`
[INFO] [stdout] ...
[INFO] [stdout] 157 |     let mut generated_ir = generate_ir(statements!()).unwrap_or_else(|_| panic!());
[INFO] [stdout]     |                                        ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<[Specifier]>`
[INFO] [stdout]                found struct `Vec<_>`
[INFO] [stdout]     = note: this error originates in the macro `access` which comes from the expansion of the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: call `Into::into` on this expression to convert `Vec<_>` into `Box<[Specifier]>`
[INFO] [stdout]     |
[INFO] [stdout] 87  |                 body: StatementBody::Read(access!("b").into())
[INFO] [stdout]     |                                                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/test.rs:68:51
[INFO] [stdout]     |
[INFO] [stdout] 68  |         Accessor {name: $name.into(), specifiers: Vec::new()}
[INFO] [stdout]     |                                                   ^^^^^^^^^^ expected `Box<[Specifier]>`, found `Vec<_>`
[INFO] [stdout] ...
[INFO] [stdout] 157 |     let mut generated_ir = generate_ir(statements!()).unwrap_or_else(|_| panic!());
[INFO] [stdout]     |                                        ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<[Specifier]>`
[INFO] [stdout]                found struct `Vec<_>`
[INFO] [stdout]     = note: this error originates in the macro `access` which comes from the expansion of the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: call `Into::into` on this expression to convert `Vec<_>` into `Box<[Specifier]>`
[INFO] [stdout]     |
[INFO] [stdout] 92  |                     access!("c").into(),
[INFO] [stdout]     |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Subtract` found for enum `brainfric::parse::Expression` in the current scope
[INFO] [stdout]    --> tests/test.rs:93:33
[INFO] [stdout]     |
[INFO] [stdout] 93  |                     Expression::Subtract(
[INFO] [stdout]     |                                 ^^^^^^^^ variant or associated item not found in `brainfric::parse::Expression`
[INFO] [stdout] ...
[INFO] [stdout] 157 |     let mut generated_ir = generate_ir(statements!()).unwrap_or_else(|_| panic!());
[INFO] [stdout]     |                                        ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/test.rs:68:51
[INFO] [stdout]     |
[INFO] [stdout] 68  |         Accessor {name: $name.into(), specifiers: Vec::new()}
[INFO] [stdout]     |                                                   ^^^^^^^^^^ expected `Box<[Specifier]>`, found `Vec<_>`
[INFO] [stdout] ...
[INFO] [stdout] 157 |     let mut generated_ir = generate_ir(statements!()).unwrap_or_else(|_| panic!());
[INFO] [stdout]     |                                        ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<[Specifier]>`
[INFO] [stdout]                found struct `Vec<_>`
[INFO] [stdout]     = note: this error originates in the macro `access` which comes from the expansion of the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: call `Into::into` on this expression to convert `Vec<_>` into `Box<[Specifier]>`
[INFO] [stdout]     |
[INFO] [stdout] 94  |                         Box::new(Expression::Access(access!("a").into())),
[INFO] [stdout]     |                                                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/test.rs:68:51
[INFO] [stdout]     |
[INFO] [stdout] 68  |         Accessor {name: $name.into(), specifiers: Vec::new()}
[INFO] [stdout]     |                                                   ^^^^^^^^^^ expected `Box<[Specifier]>`, found `Vec<_>`
[INFO] [stdout] ...
[INFO] [stdout] 157 |     let mut generated_ir = generate_ir(statements!()).unwrap_or_else(|_| panic!());
[INFO] [stdout]     |                                        ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<[Specifier]>`
[INFO] [stdout]                found struct `Vec<_>`
[INFO] [stdout]     = note: this error originates in the macro `access` which comes from the expansion of the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: call `Into::into` on this expression to convert `Vec<_>` into `Box<[Specifier]>`
[INFO] [stdout]     |
[INFO] [stdout] 95  |                         Box::new(Expression::Access(access!("b").into()))
[INFO] [stdout]     |                                                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/test.rs:68:51
[INFO] [stdout]     |
[INFO] [stdout] 68  |         Accessor {name: $name.into(), specifiers: Vec::new()}
[INFO] [stdout]     |                                                   ^^^^^^^^^^ expected `Box<[Specifier]>`, found `Vec<_>`
[INFO] [stdout] ...
[INFO] [stdout] 157 |     let mut generated_ir = generate_ir(statements!()).unwrap_or_else(|_| panic!());
[INFO] [stdout]     |                                        ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<[Specifier]>`
[INFO] [stdout]                found struct `Vec<_>`
[INFO] [stdout]     = note: this error originates in the macro `access` which comes from the expansion of the macro `statements` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: call `Into::into` on this expression to convert `Vec<_>` into `Box<[Specifier]>`
[INFO] [stdout]     |
[INFO] [stdout] 101 |                 body: StatementBody::Write(Expression::Access(access!("c").into()))
[INFO] [stdout]     |                                                                           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `unwrap_or_else` found for struct `brainfric::ir::IRBlock` in the current scope
[INFO] [stdout]    --> tests/test.rs:157:55
[INFO] [stdout]     |
[INFO] [stdout] 157 |     let mut generated_ir = generate_ir(statements!()).unwrap_or_else(|_| panic!());
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^ method not found in `brainfric::ir::IRBlock`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0308, E0369, E0423, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `brainfric` (test "test") due to 24 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/elaborate.rs:631:33
[INFO] [stdout]     |
[INFO] [stdout] 630 | ...                   todo!(),
[INFO] [stdout]     |                       ------- any code following this expression is unreachable
[INFO] [stdout] 631 | ...                   todo!()
[INFO] [stdout]     |                       ^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/elaborate.rs:653:33
[INFO] [stdout]     |
[INFO] [stdout] 652 | ...                   todo!(),
[INFO] [stdout]     |                       ------- any code following this expression is unreachable
[INFO] [stdout] 653 | ...                   todo!()
[INFO] [stdout]     |                       ^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]     --> src/elaborate.rs:1075:138
[INFO] [stdout]      |
[INFO] [stdout] 1075 | ...laboratedStatement::WriteByteSequence(todo!(), todo!()),
[INFO] [stdout]      |                                          -------  ^^^^^^^ unreachable expression
[INFO] [stdout]      |                                          |
[INFO] [stdout]      |                                          any code following this expression is unreachable
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/elaborate.rs:631:33
[INFO] [stdout]     |
[INFO] [stdout] 630 | ...                   todo!(),
[INFO] [stdout]     |                       ------- any code following this expression is unreachable
[INFO] [stdout] 631 | ...                   todo!()
[INFO] [stdout]     |                       ^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/elaborate.rs:653:33
[INFO] [stdout]     |
[INFO] [stdout] 652 | ...                   todo!(),
[INFO] [stdout]     |                       ------- any code following this expression is unreachable
[INFO] [stdout] 653 | ...                   todo!()
[INFO] [stdout]     |                       ^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]     --> src/elaborate.rs:1075:138
[INFO] [stdout]      |
[INFO] [stdout] 1075 | ...laboratedStatement::WriteByteSequence(todo!(), todo!()),
[INFO] [stdout]      |                                          -------  ^^^^^^^ unreachable expression
[INFO] [stdout]      |                                          |
[INFO] [stdout]      |                                          any code following this expression is unreachable
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `field_offset`
[INFO] [stdout]    --> src/elaborate.rs:392:46
[INFO] [stdout]     |
[INFO] [stdout] 392 |                     let Some((new_data_type, field_offset)) = self.get_field_data(&data_type_again, field_name.clone())
[INFO] [stdout]     |                                              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_field_offset`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enum_id`
[INFO] [stdout]    --> src/elaborate.rs:629:63
[INFO] [stdout]     |
[INFO] [stdout] 629 | ...                   Some(ElaboratedDataType::UserEnum(enum_id)) => BoolExpression::ByteEquals(
[INFO] [stdout]     |                                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enum_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enum_id`
[INFO] [stdout]    --> src/elaborate.rs:651:63
[INFO] [stdout]     |
[INFO] [stdout] 651 | ...                   Some(ElaboratedDataType::UserEnum(enum_id)) => BoolExpression::ByteNotEquals(
[INFO] [stdout]     |                                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enum_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/ir.rs:260:17
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 ElaboratedSpecifier::ConstOffset(extra_offset) => {
[INFO] [stdout]     |                 ---------------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 260 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr1`
[INFO] [stdout]    --> src/ir.rs:689:39
[INFO] [stdout]     |
[INFO] [stdout] 689 |             ShortExpression::Multiply(expr1, expr2) => {
[INFO] [stdout]     |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_expr1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr2`
[INFO] [stdout]    --> src/ir.rs:689:46
[INFO] [stdout]     |
[INFO] [stdout] 689 |             ShortExpression::Multiply(expr1, expr2) => {
[INFO] [stdout]     |                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_expr2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `accessor`
[INFO] [stdout]    --> src/ir.rs:745:48
[INFO] [stdout]     |
[INFO] [stdout] 745 |                 ElaboratedStatement::LeftShift(accessor, amount) => {
[INFO] [stdout]     |                                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_accessor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `amount`
[INFO] [stdout]    --> src/ir.rs:745:58
[INFO] [stdout]     |
[INFO] [stdout] 745 |                 ElaboratedStatement::LeftShift(accessor, amount) => {
[INFO] [stdout]     |                                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `accessor`
[INFO] [stdout]    --> src/ir.rs:748:49
[INFO] [stdout]     |
[INFO] [stdout] 748 |                 ElaboratedStatement::RightShift(accessor, amount) => {
[INFO] [stdout]     |                                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_accessor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `amount`
[INFO] [stdout]    --> src/ir.rs:748:59
[INFO] [stdout]     |
[INFO] [stdout] 748 |                 ElaboratedStatement::RightShift(accessor, amount) => {
[INFO] [stdout]     |                                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `field_offset`
[INFO] [stdout]    --> src/elaborate.rs:392:46
[INFO] [stdout]     |
[INFO] [stdout] 392 |                     let Some((new_data_type, field_offset)) = self.get_field_data(&data_type_again, field_name.clone())
[INFO] [stdout]     |                                              ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_field_offset`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enum_id`
[INFO] [stdout]    --> src/elaborate.rs:629:63
[INFO] [stdout]     |
[INFO] [stdout] 629 | ...                   Some(ElaboratedDataType::UserEnum(enum_id)) => BoolExpression::ByteEquals(
[INFO] [stdout]     |                                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enum_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enum_id`
[INFO] [stdout]    --> src/elaborate.rs:651:63
[INFO] [stdout]     |
[INFO] [stdout] 651 | ...                   Some(ElaboratedDataType::UserEnum(enum_id)) => BoolExpression::ByteNotEquals(
[INFO] [stdout]     |                                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enum_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut ir = ir::generate_ir(elaborated_program);
[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: function `arg_do_optimization` is never used
[INFO] [stdout]   --> src/args.rs:39:53
[INFO] [stdout]    |
[INFO] [stdout] 39 |     DO_OPTIMIZATION,            "-noopt",           arg_do_optimization,            true,
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `create_flags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `arg_allow_delete_variables` is never used
[INFO] [stdout]   --> src/args.rs:40:53
[INFO] [stdout]    |
[INFO] [stdout] 40 |     ALLOW_DELETE_VARIABLES,     "-allowdelvars",    arg_allow_delete_variables,     false,
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `create_flags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `arg_show_optimization_steps` is never used
[INFO] [stdout]   --> src/args.rs:45:53
[INFO] [stdout]    |
[INFO] [stdout] 45 |     SHOW_OPTIMIZATION_STEPS,    "-showoptsteps",    arg_show_optimization_steps,    false,
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `create_flags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `arg_show_optimization` is never used
[INFO] [stdout]   --> src/args.rs:46:53
[INFO] [stdout]    |
[INFO] [stdout] 46 |     SHOW_OPTIMIZATION,          "-showopt",         arg_show_optimization,          false,
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `create_flags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidAccessor` is never constructed
[INFO] [stdout]   --> src/error.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum ParseError {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     InvalidAccessor,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ExpectedSequence`, `ShiftTooLarge`, and `MismatchedArgumentCount` are never constructed
[INFO] [stdout]   --> src/error.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub enum ElaborateError {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 91 |     ExpectedSequence,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     ShiftTooLarge,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 95 |     InvalidTypeParameters,
[INFO] [stdout] 96 |     MismatchedArgumentCount
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `MaybeBFErr` is never used
[INFO] [stdout]    --> src/error.rs:162:10
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub type MaybeBFErr<Type> = Result<Type, BrainFricError>;
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DecimalLiteral` is never constructed
[INFO] [stdout]   --> src/lex.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum Token {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 20 |     DecimalLiteral(f32),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Token` 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: methods `is_type_head` and `is_factor_head` are never used
[INFO] [stdout]    --> src/lex.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout] 94  | impl Token {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn is_type_head(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn is_factor_head(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/parse.rs:208:15
[INFO] [stdout]     |
[INFO] [stdout] 208 |     LeftShift(Accessor, u32),
[INFO] [stdout]     |     --------- ^^^^^^^^  ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StatementBody` 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] 208 -     LeftShift(Accessor, u32),
[INFO] [stdout] 208 +     LeftShift((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/parse.rs:209:16
[INFO] [stdout]     |
[INFO] [stdout] 209 |     RightShift(Accessor, u32),
[INFO] [stdout]     |     ---------- ^^^^^^^^  ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StatementBody` 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] 209 -     RightShift(Accessor, u32),
[INFO] [stdout] 209 +     RightShift((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Array` is never constructed
[INFO] [stdout]    --> src/elaborate.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 98  | pub enum ElaboratedDataType {
[INFO] [stdout]     |          ------------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 109 |     Array(Box<ElaboratedDataType>, usize)
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ElaboratedDataType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ConvertShort` is never constructed
[INFO] [stdout]    --> src/elaborate.rs:279:5
[INFO] [stdout]     |
[INFO] [stdout] 265 | pub enum ByteExpression {
[INFO] [stdout]     |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 279 |     ConvertShort(Box<ShortExpression>)
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ByteExpression` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/elaborate.rs:299:14
[INFO] [stdout]     |
[INFO] [stdout] 299 |     Constant(Rc<str>)
[INFO] [stdout]     |     -------- ^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StringExpression` 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] 299 -     Constant(Rc<str>)
[INFO] [stdout] 299 +     Constant(())
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/elaborate.rs:308:18
[INFO] [stdout]     |
[INFO] [stdout] 308 |     AssignString(ElaboratedAccessor, StringExpression),
[INFO] [stdout]     |     ------------ ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ElaboratedStatement` 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] 308 -     AssignString(ElaboratedAccessor, StringExpression),
[INFO] [stdout] 308 +     AssignString((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `LeftShift` and `RightShift` are never constructed
[INFO] [stdout]    --> src/elaborate.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 303 | pub enum ElaboratedStatement {
[INFO] [stdout]     |          ------------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 310 |     LeftShift(ElaboratedAccessor, u32),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 311 |     RightShift(ElaboratedAccessor, u32),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ElaboratedStatement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `try_match_types` is never used
[INFO] [stdout]    --> src/elaborate.rs:950:8
[INFO] [stdout]     |
[INFO] [stdout] 337 | impl Elaborator {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 950 |     fn try_match_types(&self, type1: ElaboratedDataType, type2: ElaboratedDataType) -> Result<ElaboratedDataType, BrainFricError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `can_delete` is never used
[INFO] [stdout]   --> src/ir.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl Allocation {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn can_delete(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ComplexOffset` is never used
[INFO] [stdout]   --> src/ir.rs:92:10
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub enum ComplexOffset {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `WriteByteSequence` is never constructed
[INFO] [stdout]    --> src/ir.rs:185:5
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub enum IRStatement {
[INFO] [stdout]     |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 185 |     WriteByteSequence(Pointer, usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IRStatement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REPLACINGS` is never used
[INFO] [stdout]  --> src/clean.rs:2:7
[INFO] [stdout]   |
[INFO] [stdout] 2 | const REPLACINGS: [(&str, &str); 1] = [("][-]", "]")];
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/args.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |         &INPUT_FILE
[INFO] [stdout]    |         ^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 56 |         &raw const INPUT_FILE
[INFO] [stdout]    |          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/args.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         &OUTPUT_FILE
[INFO] [stdout]    |         ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 62 |         &raw const OUTPUT_FILE
[INFO] [stdout]    |          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/ir.rs:260:17
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 ElaboratedSpecifier::ConstOffset(extra_offset) => {
[INFO] [stdout]     |                 ---------------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 260 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr1`
[INFO] [stdout]    --> src/ir.rs:689:39
[INFO] [stdout]     |
[INFO] [stdout] 689 |             ShortExpression::Multiply(expr1, expr2) => {
[INFO] [stdout]     |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_expr1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr2`
[INFO] [stdout]    --> src/ir.rs:689:46
[INFO] [stdout]     |
[INFO] [stdout] 689 |             ShortExpression::Multiply(expr1, expr2) => {
[INFO] [stdout]     |                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_expr2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `accessor`
[INFO] [stdout]    --> src/ir.rs:745:48
[INFO] [stdout]     |
[INFO] [stdout] 745 |                 ElaboratedStatement::LeftShift(accessor, amount) => {
[INFO] [stdout]     |                                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_accessor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `amount`
[INFO] [stdout]    --> src/ir.rs:745:58
[INFO] [stdout]     |
[INFO] [stdout] 745 |                 ElaboratedStatement::LeftShift(accessor, amount) => {
[INFO] [stdout]     |                                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `accessor`
[INFO] [stdout]    --> src/ir.rs:748:49
[INFO] [stdout]     |
[INFO] [stdout] 748 |                 ElaboratedStatement::RightShift(accessor, amount) => {
[INFO] [stdout]     |                                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_accessor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `amount`
[INFO] [stdout]    --> src/ir.rs:748:59
[INFO] [stdout]     |
[INFO] [stdout] 748 |                 ElaboratedStatement::RightShift(accessor, amount) => {
[INFO] [stdout]     |                                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut ir = ir::generate_ir(elaborated_program);
[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: function `arg_do_optimization` is never used
[INFO] [stdout]   --> src/args.rs:39:53
[INFO] [stdout]    |
[INFO] [stdout] 39 |     DO_OPTIMIZATION,            "-noopt",           arg_do_optimization,            true,
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `create_flags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `arg_allow_delete_variables` is never used
[INFO] [stdout]   --> src/args.rs:40:53
[INFO] [stdout]    |
[INFO] [stdout] 40 |     ALLOW_DELETE_VARIABLES,     "-allowdelvars",    arg_allow_delete_variables,     false,
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `create_flags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `arg_show_optimization_steps` is never used
[INFO] [stdout]   --> src/args.rs:45:53
[INFO] [stdout]    |
[INFO] [stdout] 45 |     SHOW_OPTIMIZATION_STEPS,    "-showoptsteps",    arg_show_optimization_steps,    false,
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `create_flags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `arg_show_optimization` is never used
[INFO] [stdout]   --> src/args.rs:46:53
[INFO] [stdout]    |
[INFO] [stdout] 46 |     SHOW_OPTIMIZATION,          "-showopt",         arg_show_optimization,          false,
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `create_flags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidAccessor` is never constructed
[INFO] [stdout]   --> src/error.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum ParseError {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     InvalidAccessor,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ExpectedSequence`, `ShiftTooLarge`, and `MismatchedArgumentCount` are never constructed
[INFO] [stdout]   --> src/error.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub enum ElaborateError {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 91 |     ExpectedSequence,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     ShiftTooLarge,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 95 |     InvalidTypeParameters,
[INFO] [stdout] 96 |     MismatchedArgumentCount
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `MaybeBFErr` is never used
[INFO] [stdout]    --> src/error.rs:162:10
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub type MaybeBFErr<Type> = Result<Type, BrainFricError>;
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DecimalLiteral` is never constructed
[INFO] [stdout]   --> src/lex.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum Token {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 20 |     DecimalLiteral(f32),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Token` 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: methods `is_type_head` and `is_factor_head` are never used
[INFO] [stdout]    --> src/lex.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout] 94  | impl Token {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn is_type_head(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn is_factor_head(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/parse.rs:208:15
[INFO] [stdout]     |
[INFO] [stdout] 208 |     LeftShift(Accessor, u32),
[INFO] [stdout]     |     --------- ^^^^^^^^  ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StatementBody` 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] 208 -     LeftShift(Accessor, u32),
[INFO] [stdout] 208 +     LeftShift((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/parse.rs:209:16
[INFO] [stdout]     |
[INFO] [stdout] 209 |     RightShift(Accessor, u32),
[INFO] [stdout]     |     ---------- ^^^^^^^^  ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StatementBody` 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] 209 -     RightShift(Accessor, u32),
[INFO] [stdout] 209 +     RightShift((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Array` is never constructed
[INFO] [stdout]    --> src/elaborate.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 98  | pub enum ElaboratedDataType {
[INFO] [stdout]     |          ------------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 109 |     Array(Box<ElaboratedDataType>, usize)
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ElaboratedDataType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ConvertShort` is never constructed
[INFO] [stdout]    --> src/elaborate.rs:279:5
[INFO] [stdout]     |
[INFO] [stdout] 265 | pub enum ByteExpression {
[INFO] [stdout]     |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 279 |     ConvertShort(Box<ShortExpression>)
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ByteExpression` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/elaborate.rs:299:14
[INFO] [stdout]     |
[INFO] [stdout] 299 |     Constant(Rc<str>)
[INFO] [stdout]     |     -------- ^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StringExpression` 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] 299 -     Constant(Rc<str>)
[INFO] [stdout] 299 +     Constant(())
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/elaborate.rs:308:18
[INFO] [stdout]     |
[INFO] [stdout] 308 |     AssignString(ElaboratedAccessor, StringExpression),
[INFO] [stdout]     |     ------------ ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ElaboratedStatement` 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] 308 -     AssignString(ElaboratedAccessor, StringExpression),
[INFO] [stdout] 308 +     AssignString((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `LeftShift` and `RightShift` are never constructed
[INFO] [stdout]    --> src/elaborate.rs:310:5
[INFO] [stdout]     |
[INFO] [stdout] 303 | pub enum ElaboratedStatement {
[INFO] [stdout]     |          ------------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 310 |     LeftShift(ElaboratedAccessor, u32),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 311 |     RightShift(ElaboratedAccessor, u32),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ElaboratedStatement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `try_match_types` is never used
[INFO] [stdout]    --> src/elaborate.rs:950:8
[INFO] [stdout]     |
[INFO] [stdout] 337 | impl Elaborator {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 950 |     fn try_match_types(&self, type1: ElaboratedDataType, type2: ElaboratedDataType) -> Result<ElaboratedDataType, BrainFricError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `can_delete` is never used
[INFO] [stdout]   --> src/ir.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl Allocation {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn can_delete(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ComplexOffset` is never used
[INFO] [stdout]   --> src/ir.rs:92:10
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub enum ComplexOffset {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `WriteByteSequence` is never constructed
[INFO] [stdout]    --> src/ir.rs:185:5
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub enum IRStatement {
[INFO] [stdout]     |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 185 |     WriteByteSequence(Pointer, usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IRStatement` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REPLACINGS` is never used
[INFO] [stdout]  --> src/clean.rs:2:7
[INFO] [stdout]   |
[INFO] [stdout] 2 | const REPLACINGS: [(&str, &str); 1] = [("][-]", "]")];
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/args.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |         &INPUT_FILE
[INFO] [stdout]    |         ^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` on by default
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 56 |         &raw const INPUT_FILE
[INFO] [stdout]    |          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/args.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 62 |         &OUTPUT_FILE
[INFO] [stdout]    |         ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 62 |         &raw const OUTPUT_FILE
[INFO] [stdout]    |          +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3a9f3340fc68225b9b9a9262adb7bc7fd360972baa61402561486f721d485e3e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3a9f3340fc68225b9b9a9262adb7bc7fd360972baa61402561486f721d485e3e", kill_on_drop: false }`
[INFO] [stdout] 3a9f3340fc68225b9b9a9262adb7bc7fd360972baa61402561486f721d485e3e
