[INFO] cloning repository https://github.com/lantos1618/zen
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lantos1618/zen" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flantos1618%2Fzen", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flantos1618%2Fzen'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 748e238af1c0fdd9f1ada45ce4c303d2bfd7216a
[INFO] checking lantos1618/zen against master#36b21637e93b038453924d3c66821089e71d8baa for pr-143164
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flantos1618%2Fzen" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/lantos1618/zen
[INFO] finished tweaking git repo https://github.com/lantos1618/zen
[INFO] tweaked toml for git repo https://github.com/lantos1618/zen written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/lantos1618/zen on toolchain 36b21637e93b038453924d3c66821089e71d8baa
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/lantos1618/zen 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" "+36b21637e93b038453924d3c66821089e71d8baa" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: package.author
[INFO] [stderr]     Updating git repository `https://github.com/TheDan64/inkwell`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded llvm-sys v150.1.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b0e04226259fd05c5023b30793e0961454d2038de7e0b0eac608da0a7ccd38b3
[INFO] running `Command { std: "docker" "start" "-a" "b0e04226259fd05c5023b30793e0961454d2038de7e0b0eac608da0a7ccd38b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b0e04226259fd05c5023b30793e0961454d2038de7e0b0eac608da0a7ccd38b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b0e04226259fd05c5023b30793e0961454d2038de7e0b0eac608da0a7ccd38b3", kill_on_drop: false }`
[INFO] [stdout] b0e04226259fd05c5023b30793e0961454d2038de7e0b0eac608da0a7ccd38b3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 983c3d0a8c657c65e52a29a3641f6001ad5e73a77f33f61e65008cb040807f37
[INFO] running `Command { std: "docker" "start" "-a" "983c3d0a8c657c65e52a29a3641f6001ad5e73a77f33f61e65008cb040807f37", kill_on_drop: false }`
[INFO] [stderr] warning: unused manifest key: package.author
[INFO] [stderr]    Compiling proc-macro2 v1.0.69
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling libc v0.2.149
[INFO] [stderr]    Compiling memchr v2.6.4
[INFO] [stderr]    Compiling regex-syntax v0.8.2
[INFO] [stderr]    Compiling semver v1.0.20
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]     Checking utf8parse v0.2.1
[INFO] [stderr]     Checking anstyle-parse v0.2.2
[INFO] [stderr]     Checking colorchoice v1.0.0
[INFO] [stderr]    Compiling thiserror v1.0.50
[INFO] [stderr]    Compiling serde v1.0.190
[INFO] [stderr]     Checking anstyle v1.0.4
[INFO] [stderr]     Checking anstyle-query v1.0.0
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]     Checking anstream v0.6.4
[INFO] [stderr]     Checking strsim v0.10.0
[INFO] [stderr]     Checking clap_lex v0.6.0
[INFO] [stderr]    Compiling inkwell v0.2.0 (https://github.com/TheDan64/inkwell?branch=master#7a09ad8a)
[INFO] [stderr]    Compiling serde_json v1.0.108
[INFO] [stderr]     Checking ryu v1.0.15
[INFO] [stderr]     Checking either v1.9.0
[INFO] [stderr]     Checking itoa v1.0.9
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]     Checking once_cell v1.18.0
[INFO] [stderr]     Checking clap_builder v4.4.7
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling aho-corasick v1.1.2
[INFO] [stderr]    Compiling syn v2.0.38
[INFO] [stderr]    Compiling regex-automata v0.4.3
[INFO] [stderr]    Compiling regex v1.10.2
[INFO] [stderr]    Compiling serde_derive v1.0.190
[INFO] [stderr]    Compiling thiserror-impl v1.0.50
[INFO] [stderr]    Compiling inkwell_internals v0.8.0 (https://github.com/TheDan64/inkwell?branch=master#7a09ad8a)
[INFO] [stderr]    Compiling clap_derive v4.4.7
[INFO] [stderr]    Compiling llvm-sys v150.1.2
[INFO] [stderr]     Checking clap v4.4.7
[INFO] [stderr]     Checking zen v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `inkwell::execution_engine::JitFunction`
[INFO] [stdout]  --> src/codegen.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use inkwell::execution_engine::JitFunction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Linkage`
[INFO] [stdout]  --> src/codegen.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use inkwell::module::{Linkage, Module};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `inkwell::passes::PassManager`
[INFO] [stdout]  --> src/codegen.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use inkwell::passes::PassManager;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `inkwell::targets::Target`
[INFO] [stdout]  --> src/codegen.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use inkwell::targets::Target;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BasicMetadataTypeEnum` and `BasicTypeEnum`
[INFO] [stdout]  --> src/codegen.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | use inkwell::types::{BasicMetadataTypeEnum, BasicTypeEnum};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AggregateValueEnum`, `AnyValueEnum`, `BasicMetadataValueEnum`, `BasicValue`, `FloatValue`, and `FunctionValue`
[INFO] [stdout]   --> src/codegen.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  |     AggregateValueEnum, AnyValueEnum, BasicMetadataValueEnum, BasicValue, BasicValueEnum,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 10 |     FloatValue, FunctionValue, PointerValue,
[INFO] [stdout]    |     ^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddressSpace`, `FloatPredicate`, and `OptimizationLevel`
[INFO] [stdout]   --> src/codegen.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | use inkwell::{AddressSpace, FloatPredicate, OptimizationLevel};
[INFO] [stdout]    |               ^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `watCodeGen` should have an upper camel case name
[INFO] [stdout]   --> src/wat_codegen.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct watCodeGen {
[INFO] [stdout]    |            ^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `WatCodeGen`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `inkwell::execution_engine::JitFunction`
[INFO] [stdout]  --> src/codegen.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use inkwell::execution_engine::JitFunction;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Linkage`
[INFO] [stdout]  --> src/codegen.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use inkwell::module::{Linkage, Module};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `inkwell::passes::PassManager`
[INFO] [stdout]  --> src/codegen.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use inkwell::passes::PassManager;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `inkwell::targets::Target`
[INFO] [stdout]  --> src/codegen.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use inkwell::targets::Target;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BasicMetadataTypeEnum` and `BasicTypeEnum`
[INFO] [stdout]  --> src/codegen.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | use inkwell::types::{BasicMetadataTypeEnum, BasicTypeEnum};
[INFO] [stdout]   |                      ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AggregateValueEnum`, `AnyValueEnum`, `BasicMetadataValueEnum`, `BasicValue`, `FloatValue`, and `FunctionValue`
[INFO] [stdout]   --> src/codegen.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  |     AggregateValueEnum, AnyValueEnum, BasicMetadataValueEnum, BasicValue, BasicValueEnum,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 10 |     FloatValue, FunctionValue, PointerValue,
[INFO] [stdout]    |     ^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddressSpace`, `FloatPredicate`, and `OptimizationLevel`
[INFO] [stdout]   --> src/codegen.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | use inkwell::{AddressSpace, FloatPredicate, OptimizationLevel};
[INFO] [stdout]    |               ^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser`
[INFO] [stdout]   --> src/codegen.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::parser;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser`
[INFO] [stdout]  --> src/wat_codegen.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::parser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `watCodeGen` should have an upper camel case name
[INFO] [stdout]   --> src/wat_codegen.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct watCodeGen {
[INFO] [stdout]    |            ^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `WatCodeGen`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/codegen.rs:171:32
[INFO] [stdout]     |
[INFO] [stdout] 171 |             Binary { op, left, right } => match *op {
[INFO] [stdout]     |                                ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ident`
[INFO] [stdout]    --> src/codegen.rs:176:53
[INFO] [stdout]     |
[INFO] [stdout] 176 |                         Expr::Atom(Atom::Identifier(ident)) => {
[INFO] [stdout]     |                                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_ident`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exprs`
[INFO] [stdout]    --> src/codegen.rs:181:29
[INFO] [stdout]     |
[INFO] [stdout] 181 | ...                   exprs,
[INFO] [stdout]     |                       ^^^^^ help: try ignoring the field: `exprs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> src/codegen.rs:189:29
[INFO] [stdout]     |
[INFO] [stdout] 189 | ...                   left,
[INFO] [stdout]     |                       ^^^^ help: try ignoring the field: `left: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/codegen.rs:190:29
[INFO] [stdout]     |
[INFO] [stdout] 190 | ...                   right,
[INFO] [stdout]     |                       ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/codegen.rs:205:25
[INFO] [stdout]     |
[INFO] [stdout] 205 |             Unary { op, expr } => match op {
[INFO] [stdout]     |                         ^^^^ help: try ignoring the field: `expr: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> src/codegen.rs:218:26
[INFO] [stdout]     |
[INFO] [stdout] 218 |             Binary { op, left, right } => match op {
[INFO] [stdout]     |                          ^^^^ help: try ignoring the field: `left: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/codegen.rs:218:32
[INFO] [stdout]     |
[INFO] [stdout] 218 |             Binary { op, left, right } => match op {
[INFO] [stdout]     |                                ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/codegen.rs:171:32
[INFO] [stdout]     |
[INFO] [stdout] 171 |             Binary { op, left, right } => match *op {
[INFO] [stdout]     |                                ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> src/codegen.rs:265:17
[INFO] [stdout]     |
[INFO] [stdout] 265 |                 left,
[INFO] [stdout]     |                 ^^^^ help: try ignoring the field: `left: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ident`
[INFO] [stdout]    --> src/codegen.rs:176:53
[INFO] [stdout]     |
[INFO] [stdout] 176 |                         Expr::Atom(Atom::Identifier(ident)) => {
[INFO] [stdout]     |                                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_ident`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `middle`
[INFO] [stdout]    --> src/codegen.rs:266:17
[INFO] [stdout]     |
[INFO] [stdout] 266 |                 middle,
[INFO] [stdout]     |                 ^^^^^^ help: try ignoring the field: `middle: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/codegen.rs:267:17
[INFO] [stdout]     |
[INFO] [stdout] 267 |                 right,
[INFO] [stdout]     |                 ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exprs`
[INFO] [stdout]    --> src/codegen.rs:181:29
[INFO] [stdout]     |
[INFO] [stdout] 181 | ...                   exprs,
[INFO] [stdout]     |                       ^^^^^ help: try ignoring the field: `exprs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> src/codegen.rs:189:29
[INFO] [stdout]     |
[INFO] [stdout] 189 | ...                   left,
[INFO] [stdout]     |                       ^^^^ help: try ignoring the field: `left: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/codegen.rs:190:29
[INFO] [stdout]     |
[INFO] [stdout] 190 | ...                   right,
[INFO] [stdout]     |                       ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/codegen.rs:205:25
[INFO] [stdout]     |
[INFO] [stdout] 205 |             Unary { op, expr } => match op {
[INFO] [stdout]     |                         ^^^^ help: try ignoring the field: `expr: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> src/codegen.rs:218:26
[INFO] [stdout]     |
[INFO] [stdout] 218 |             Binary { op, left, right } => match op {
[INFO] [stdout]     |                          ^^^^ help: try ignoring the field: `left: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/codegen.rs:218:32
[INFO] [stdout]     |
[INFO] [stdout] 218 |             Binary { op, left, right } => match op {
[INFO] [stdout]     |                                ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]    --> src/codegen.rs:265:17
[INFO] [stdout]     |
[INFO] [stdout] 265 |                 left,
[INFO] [stdout]     |                 ^^^^ help: try ignoring the field: `left: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `middle`
[INFO] [stdout]    --> src/codegen.rs:266:17
[INFO] [stdout]     |
[INFO] [stdout] 266 |                 middle,
[INFO] [stdout]     |                 ^^^^^^ help: try ignoring the field: `middle: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]    --> src/codegen.rs:267:17
[INFO] [stdout]     |
[INFO] [stdout] 267 |                 right,
[INFO] [stdout]     |                 ^^^^^ help: try ignoring the field: `right: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/codegen.rs:290:13
[INFO] [stdout]     |
[INFO] [stdout] 290 |             _ => Err(CodeGenError::UnexpectedExpr(expr.clone())),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/codegen.rs:290:13
[INFO] [stdout]     |
[INFO] [stdout] 276 |             Expr::Atom(atom) => self.gen_atom(atom),
[INFO] [stdout]     |             ---------------- matches some of the same values
[INFO] [stdout] 277 |             Expr::Unary(unary) => self.gen_unary(unary),
[INFO] [stdout]     |             ------------------ matches some of the same values
[INFO] [stdout] 278 |             Expr::Binary(binary) => {
[INFO] [stdout]     |             -------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 282 |             Expr::Ternary(ternary) => {
[INFO] [stdout]     |             ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 290 |             _ => Err(CodeGenError::UnexpectedExpr(expr.clone())),
[INFO] [stdout]     |             ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]   --> src/wat_codegen.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let left = self.generate(&*binary.left);
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]   --> src/wat_codegen.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let right = self.generate(&*binary.right);
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/codegen.rs:290:13
[INFO] [stdout]     |
[INFO] [stdout] 290 |             _ => Err(CodeGenError::UnexpectedExpr(expr.clone())),
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/codegen.rs:290:13
[INFO] [stdout]     |
[INFO] [stdout] 276 |             Expr::Atom(atom) => self.gen_atom(atom),
[INFO] [stdout]     |             ---------------- matches some of the same values
[INFO] [stdout] 277 |             Expr::Unary(unary) => self.gen_unary(unary),
[INFO] [stdout]     |             ------------------ matches some of the same values
[INFO] [stdout] 278 |             Expr::Binary(binary) => {
[INFO] [stdout]     |             -------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 282 |             Expr::Ternary(ternary) => {
[INFO] [stdout]     |             ---------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 290 |             _ => Err(CodeGenError::UnexpectedExpr(expr.clone())),
[INFO] [stdout]     |             ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]   --> src/wat_codegen.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let left = self.generate(&*binary.left);
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]   --> src/wat_codegen.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let right = self.generate(&*binary.right);
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `FieldDef` is never constructed
[INFO] [stdout]   --> src/ast.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub enum BinaryOp {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 39 |     FieldDef,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BinaryOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `AssignmentBlock` is never constructed
[INFO] [stdout]   --> src/ast.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub enum GroupOp{
[INFO] [stdout]    |          ------- variant in this enum
[INFO] [stdout] 66 |     AssignmentBlock,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GroupOp` 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 `Equality` is never constructed
[INFO] [stdout]   --> src/token.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub enum Token {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 36 |     Equality,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Token` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UnexpectedToken` and `UnexpectedEOF` are never constructed
[INFO] [stdout]   --> src/parser.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum ParseError {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 14 |     UnexpectedToken(Token),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     UnexpectedEOF,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SymbolKind` is never used
[INFO] [stdout]   --> src/codegen.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum SymbolKind {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Symbol` is never constructed
[INFO] [stdout]   --> src/codegen.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct Symbol<'ctx> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SymbolTable` is never constructed
[INFO] [stdout]   --> src/codegen.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | struct SymbolTable<'ctx> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_parent`, `insert`, and `get` are never used
[INFO] [stdout]   --> src/codegen.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl<'ctx> SymbolTable<'ctx> {
[INFO] [stdout]    | ---------------------------- associated items in this implementation
[INFO] [stdout] 44 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn with_parent(parent: &'ctx SymbolTable<'ctx>) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     fn insert(&mut self, name: String, value: Symbol<'ctx>) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     fn get(&self, name: &str) -> Option<Symbol> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CodeGen` is never constructed
[INFO] [stdout]   --> src/codegen.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct CodeGen<'a, 'ctx> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CodeGenError` is never used
[INFO] [stdout]   --> src/codegen.rs:79:10
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum CodeGenError {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/codegen.rs:91:8
[INFO] [stdout]     |
[INFO] [stdout] 90  | impl<'a, 'ctx> CodeGen<'a, 'ctx> {
[INFO] [stdout]     | -------------------------------- associated items in this implementation
[INFO] [stdout] 91  |     fn new(context: &'ctx Context, builder: &'a Builder<'ctx>, module: &'a Module<'ctx>) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn gen_literal(&mut self, literal: &Literal) -> Result<BasicValueEnum, CodeGenError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn gen_identifier(&mut self, identifier: &str) -> Result<BasicValueEnum, CodeGenError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn gen_atom(&mut self, atom: &Atom) -> Result<BasicValueEnum, CodeGenError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     fn gen_assignment(&mut self, expr: &Binary) -> Result<(), CodeGenError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     fn gen_unary(&mut self, expr: &Unary) -> Result<BasicValueEnum, CodeGenError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     fn gen_binary(&mut self, expr: &Binary) -> Result<(), CodeGenError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn gen_group(&mut self, group: &Group) -> Result<(), CodeGenError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     fn gen_ternary(&mut self, ternary: &Ternary) -> Result<(), CodeGenError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     fn gen_expr(&mut self, expr: &Expr) -> Result<BasicValueEnum, CodeGenError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub fn compile(&mut self, expr: &Expr) -> Result<(), CodeGenError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ValueType` is never used
[INFO] [stdout]  --> src/wat_codegen.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum ValueType {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionDefinition` is never constructed
[INFO] [stdout]   --> src/wat_codegen.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct FunctionDefinition {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `watCodeGen` is never constructed
[INFO] [stdout]   --> src/wat_codegen.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct watCodeGen {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/wat_codegen.rs:34:12
[INFO] [stdout]     |
[INFO] [stdout] 33  | impl watCodeGen {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 34  |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43  |     pub fn generate(&self, expr: &Expr) -> String {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53  |     fn literal_to_wat(&self, literal: &Literal) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66  |     fn atom_to_wat(&self, atom: &Atom) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73  |     fn unary_to_wat(&self, unary: &Unary) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82  |     fn binary_to_wat(&self, binary: &Binary) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92  |     fn ternary_to_wat(&self, ternary: &Ternary) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn group_to_wat(&self, group: &Group) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/codegen.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn get(&self, name: &str) -> Option<Symbol> {
[INFO] [stdout]    |            ^^^^^                        ------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |            |
[INFO] [stdout]    |            this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn get(&self, name: &str) -> Option<Symbol<'_>> {
[INFO] [stdout]    |                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/codegen.rs:101:20
[INFO] [stdout]     |
[INFO] [stdout] 101 |     fn gen_literal(&mut self, literal: &Literal) -> Result<BasicValueEnum, CodeGenError> {
[INFO] [stdout]     |                    ^^^^^^^^^                               -------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 101 |     fn gen_literal(&mut self, literal: &Literal) -> Result<BasicValueEnum<'_>, CodeGenError> {
[INFO] [stdout]     |                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/codegen.rs:152:23
[INFO] [stdout]     |
[INFO] [stdout] 152 |     fn gen_identifier(&mut self, identifier: &str) -> Result<BasicValueEnum, CodeGenError> {
[INFO] [stdout]     |                       ^^^^^^^^^                              -------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 152 |     fn gen_identifier(&mut self, identifier: &str) -> Result<BasicValueEnum<'_>, CodeGenError> {
[INFO] [stdout]     |                                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/codegen.rs:161:17
[INFO] [stdout]     |
[INFO] [stdout] 161 |     fn gen_atom(&mut self, atom: &Atom) -> Result<BasicValueEnum, CodeGenError> {
[INFO] [stdout]     |                 ^^^^^^^^^                         -------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 161 |     fn gen_atom(&mut self, atom: &Atom) -> Result<BasicValueEnum<'_>, CodeGenError> {
[INFO] [stdout]     |                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/codegen.rs:203:18
[INFO] [stdout]     |
[INFO] [stdout] 203 |     fn gen_unary(&mut self, expr: &Unary) -> Result<BasicValueEnum, CodeGenError> {
[INFO] [stdout]     |                  ^^^^^^^^^                          -------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 203 |     fn gen_unary(&mut self, expr: &Unary) -> Result<BasicValueEnum<'_>, CodeGenError> {
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/codegen.rs:274:17
[INFO] [stdout]     |
[INFO] [stdout] 274 |     fn gen_expr(&mut self, expr: &Expr) -> Result<BasicValueEnum, CodeGenError> {
[INFO] [stdout]     |                 ^^^^^^^^^                         -------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 274 |     fn gen_expr(&mut self, expr: &Expr) -> Result<BasicValueEnum<'_>, CodeGenError> {
[INFO] [stdout]     |                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `FieldDef` is never constructed
[INFO] [stdout]   --> src/ast.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub enum BinaryOp {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 39 |     FieldDef,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BinaryOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `AssignmentBlock` is never constructed
[INFO] [stdout]   --> src/ast.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub enum GroupOp{
[INFO] [stdout]    |          ------- variant in this enum
[INFO] [stdout] 66 |     AssignmentBlock,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GroupOp` 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 `Equality` is never constructed
[INFO] [stdout]   --> src/token.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 5  | pub enum Token {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 36 |     Equality,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Token` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UnexpectedToken` and `UnexpectedEOF` are never constructed
[INFO] [stdout]   --> src/parser.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum ParseError {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 14 |     UnexpectedToken(Token),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     UnexpectedEOF,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ParseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Function`, `Variable`, `Type`, and `FieldDef` are never constructed
[INFO] [stdout]   --> src/codegen.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum SymbolKind {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 24 |     Function,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 25 |     Variable,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 26 |     Type,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 27 |     FieldDef,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SymbolKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `kind` are never read
[INFO] [stdout]   --> src/codegen.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct Symbol<'ctx> {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 32 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 33 |     ptr: PointerValue<'ctx>,
[INFO] [stdout] 34 |     kind: SymbolKind,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Symbol` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_parent` and `insert` are never used
[INFO] [stdout]   --> src/codegen.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl<'ctx> SymbolTable<'ctx> {
[INFO] [stdout]    | ---------------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn with_parent(parent: &'ctx SymbolTable<'ctx>) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     fn insert(&mut self, name: String, value: Symbol<'ctx>) {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `builder` is never read
[INFO] [stdout]   --> src/codegen.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct CodeGen<'a, 'ctx> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 72 |     pub context: &'ctx Context,
[INFO] [stdout] 73 |     pub builder: &'a Builder<'ctx>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CodeGen` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/codegen.rs:80:20
[INFO] [stdout]    |
[INFO] [stdout] 80 |     UnexpectedExpr(Expr),
[INFO] [stdout]    |     -------------- ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CodeGenError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 80 -     UnexpectedExpr(Expr),
[INFO] [stdout] 80 +     UnexpectedExpr(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/codegen.rs:82:18
[INFO] [stdout]    |
[INFO] [stdout] 82 |     BuilderError(BuilderError),
[INFO] [stdout]    |     ------------ ^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CodeGenError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 82 -     BuilderError(BuilderError),
[INFO] [stdout] 82 +     BuilderError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `UnexpectedEOF` is never constructed
[INFO] [stdout]   --> src/codegen.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum CodeGenError {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] 80 |     UnexpectedExpr(Expr),
[INFO] [stdout] 81 |     UnexpectedEOF,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CodeGenError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/wat_codegen.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub enum ValueType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 7  |     Int,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 8  |     Float,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 9  |     Bool,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 10 |     Char,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 11 |     Octal,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 12 |     Hex,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 13 |     Binary,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 14 |     String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `params`, `return_type`, and `body` are never read
[INFO] [stdout]   --> src/wat_codegen.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct FunctionDefinition {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 19 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 20 |     params: Vec<(String, ValueType)>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 21 |     return_type: ValueType,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 22 |     body: Vec<Expr>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `indentation_level`, `symbol_table`, `function_table`, `current_function`, and `label_counter` are never read
[INFO] [stdout]   --> src/wat_codegen.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct watCodeGen {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 26 |     indentation_level: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 27 |     symbol_table: HashMap<String, ValueType>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 28 |     function_table: HashMap<String, FunctionDefinition>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     current_function: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 30 |     label_counter: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/codegen.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn get(&self, name: &str) -> Option<Symbol> {
[INFO] [stdout]    |            ^^^^^                        ------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |            |
[INFO] [stdout]    |            this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 62 |     fn get(&self, name: &str) -> Option<Symbol<'_>> {
[INFO] [stdout]    |                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/codegen.rs:101:20
[INFO] [stdout]     |
[INFO] [stdout] 101 |     fn gen_literal(&mut self, literal: &Literal) -> Result<BasicValueEnum, CodeGenError> {
[INFO] [stdout]     |                    ^^^^^^^^^                               -------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 101 |     fn gen_literal(&mut self, literal: &Literal) -> Result<BasicValueEnum<'_>, CodeGenError> {
[INFO] [stdout]     |                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/codegen.rs:152:23
[INFO] [stdout]     |
[INFO] [stdout] 152 |     fn gen_identifier(&mut self, identifier: &str) -> Result<BasicValueEnum, CodeGenError> {
[INFO] [stdout]     |                       ^^^^^^^^^                              -------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 152 |     fn gen_identifier(&mut self, identifier: &str) -> Result<BasicValueEnum<'_>, CodeGenError> {
[INFO] [stdout]     |                                                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/codegen.rs:161:17
[INFO] [stdout]     |
[INFO] [stdout] 161 |     fn gen_atom(&mut self, atom: &Atom) -> Result<BasicValueEnum, CodeGenError> {
[INFO] [stdout]     |                 ^^^^^^^^^                         -------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 161 |     fn gen_atom(&mut self, atom: &Atom) -> Result<BasicValueEnum<'_>, CodeGenError> {
[INFO] [stdout]     |                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/codegen.rs:203:18
[INFO] [stdout]     |
[INFO] [stdout] 203 |     fn gen_unary(&mut self, expr: &Unary) -> Result<BasicValueEnum, CodeGenError> {
[INFO] [stdout]     |                  ^^^^^^^^^                          -------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 203 |     fn gen_unary(&mut self, expr: &Unary) -> Result<BasicValueEnum<'_>, CodeGenError> {
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/codegen.rs:274:17
[INFO] [stdout]     |
[INFO] [stdout] 274 |     fn gen_expr(&mut self, expr: &Expr) -> Result<BasicValueEnum, CodeGenError> {
[INFO] [stdout]     |                 ^^^^^^^^^                         -------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 274 |     fn gen_expr(&mut self, expr: &Expr) -> Result<BasicValueEnum<'_>, CodeGenError> {
[INFO] [stdout]     |                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_codeGen` should have a snake case name
[INFO] [stdout]    --> src/codegen.rs:301:8
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub fn test_codeGen() {
[INFO] [stdout]     |        ^^^^^^^^^^^^ help: convert the identifier to snake case: `test_code_gen`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/codegen.rs:313:5
[INFO] [stdout]     |
[INFO] [stdout] 313 |     codegen.compile(&ast);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 313 |     let _ = codegen.compile(&ast);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 36.89s
[INFO] running `Command { std: "docker" "inspect" "983c3d0a8c657c65e52a29a3641f6001ad5e73a77f33f61e65008cb040807f37", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "983c3d0a8c657c65e52a29a3641f6001ad5e73a77f33f61e65008cb040807f37", kill_on_drop: false }`
[INFO] [stdout] 983c3d0a8c657c65e52a29a3641f6001ad5e73a77f33f61e65008cb040807f37
