[INFO] cloning repository https://github.com/ArberSephirotheca/Homunculus
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ArberSephirotheca/Homunculus" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FArberSephirotheca%2FHomunculus", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FArberSephirotheca%2FHomunculus'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 087b4dca3663faf9fff430f07a49320f6f22a907
[INFO] checking ArberSephirotheca/Homunculus against master#3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0 for pr-143164
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FArberSephirotheca%2FHomunculus" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ArberSephirotheca/Homunculus
[INFO] finished tweaking git repo https://github.com/ArberSephirotheca/Homunculus
[INFO] tweaked toml for git repo https://github.com/ArberSephirotheca/Homunculus written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ArberSephirotheca/Homunculus on toolchain 3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ArberSephirotheca/Homunculus 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" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6c7b1e576def01e90670d85b92c234a50d6822bd87b14f723fa7c8b6622341de
[INFO] running `Command { std: "docker" "start" "-a" "6c7b1e576def01e90670d85b92c234a50d6822bd87b14f723fa7c8b6622341de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6c7b1e576def01e90670d85b92c234a50d6822bd87b14f723fa7c8b6622341de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6c7b1e576def01e90670d85b92c234a50d6822bd87b14f723fa7c8b6622341de", kill_on_drop: false }`
[INFO] [stdout] 6c7b1e576def01e90670d85b92c234a50d6822bd87b14f723fa7c8b6622341de
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+3129d37ef7075ee3cbaa3d6cbe1b5794f67192b0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c078795fbdb6ed3ee0fa55dea55631c138563d2027a762dc815521b54187e86e
[INFO] running `Command { std: "docker" "start" "-a" "c078795fbdb6ed3ee0fa55dea55631c138563d2027a762dc815521b54187e86e", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.81
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling autocfg v1.2.0
[INFO] [stderr]    Compiling beef v0.5.2
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling regex-syntax v0.8.3
[INFO] [stderr]    Compiling eyre v0.6.12
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]    Compiling camino v1.1.9
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]     Checking indenter v0.3.3
[INFO] [stderr]     Checking countme v3.0.1
[INFO] [stderr]     Checking dissimilar v1.0.8
[INFO] [stderr]     Checking hashbrown v0.14.3
[INFO] [stderr]     Checking text-size v1.1.1
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]     Checking expect-test v1.5.0
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]     Checking rowan v0.15.15
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling syn v2.0.60
[INFO] [stderr]    Compiling logos-codegen v0.14.0
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling syntax_node_derive v0.1.0 (/opt/rustwide/workdir/syntax_node_derive)
[INFO] [stderr]    Compiling logos-derive v0.14.0
[INFO] [stderr]     Checking logos v0.14.0
[INFO] [stderr]     Checking asuka v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `ConstantInfo`
[INFO] [stdout]  --> src/codegen/common.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 |     BuiltInVariable, ConstantInfo, StorageClass, VariableInfo,
[INFO] [stdout]   |                      ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WrapErr`
[INFO] [stdout]  --> src/codegen/common.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | use eyre::{eyre, Result, WrapErr};
[INFO] [stdout]   |                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rowan::TokenAtOffset`
[INFO] [stdout]  --> src/compiler/ast/ast.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rowan::TokenAtOffset;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `smallvec::smallvec`
[INFO] [stdout]  --> src/compiler/ast/ast.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use smallvec::smallvec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SyntaxElement`
[INFO] [stdout]  --> src/compiler/ast/ast.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     SyntaxElement, SyntaxNode, SyntaxToken, TokenKind, BUILT_IN_VARIABLE_SET,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `expect_test::expect`
[INFO] [stdout]    --> src/compiler/ast/ast.rs:688:9
[INFO] [stdout]     |
[INFO] [stdout] 688 |     use expect_test::expect;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Parse`, `event::Event`, `lexer::Token`, and `symbol_table::*`
[INFO] [stdout]  --> src/compiler/parse/grammar/statement.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     event::Event,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 3 |     lexer::Token,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 4 |     marker::CompletedMarker,
[INFO] [stdout] 5 |     parser::{Parse, Parser},
[INFO] [stdout]   |              ^^^^^
[INFO] [stdout] 6 |     symbol_table::*,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConstantInfo`
[INFO] [stdout]  --> src/codegen/common.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 |     BuiltInVariable, ConstantInfo, StorageClass, VariableInfo,
[INFO] [stdout]   |                      ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WrapErr`
[INFO] [stdout]  --> src/codegen/common.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | use eyre::{eyre, Result, WrapErr};
[INFO] [stdout]   |                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rowan::TokenAtOffset`
[INFO] [stdout]  --> src/compiler/ast/ast.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rowan::TokenAtOffset;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `smallvec::smallvec`
[INFO] [stdout]  --> src/compiler/ast/ast.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use smallvec::smallvec;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SyntaxElement`
[INFO] [stdout]  --> src/compiler/ast/ast.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     SyntaxElement, SyntaxNode, SyntaxToken, TokenKind, BUILT_IN_VARIABLE_SET,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lazy_static::lazy_static`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use lazy_static::lazy_static;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Parse`, `event::Event`, `lexer::Token`, and `symbol_table::*`
[INFO] [stdout]  --> src/compiler/parse/grammar/statement.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     event::Event,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 3 |     lexer::Token,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 4 |     marker::CompletedMarker,
[INFO] [stdout] 5 |     parser::{Parse, Parser},
[INFO] [stdout]   |              ^^^^^
[INFO] [stdout] 6 |     symbol_table::*,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lazy_static::lazy_static`
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use lazy_static::lazy_static;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]  --> src/codegen/back/write.rs:3:29
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) fn write_to_file(path: &Utf8Path, content: &str) -> Result<(), std::io::Error> {
[INFO] [stdout]   |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]  --> src/codegen/back/write.rs:3:46
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) fn write_to_file(path: &Utf8Path, content: &str) -> Result<(), std::io::Error> {
[INFO] [stdout]   |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/codegen/common.rs:206:39
[INFO] [stdout]     |
[INFO] [stdout] 206 |             InstructionValue::Pointer(name, _) => write!(f, ""),
[INFO] [stdout]     |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/codegen/context.rs:436:13
[INFO] [stdout]     |
[INFO] [stdout] 428 |             Stmt::AtomicStoreStatement(atomic_store_stmt) => {
[INFO] [stdout]     |             --------------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 436 |             Stmt::AtomicStoreStatement(atomic_store_stmt) => {
[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: `atomic_cmp_exch_expr`
[INFO] [stdout]     --> src/codegen/context.rs:1373:45
[INFO] [stdout]      |
[INFO] [stdout] 1373 |             Expr::AtomicCompareExchangeExpr(atomic_cmp_exch_expr) => {
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_atomic_cmp_exch_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]  --> src/codegen/back/write.rs:3:29
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) fn write_to_file(path: &Utf8Path, content: &str) -> Result<(), std::io::Error> {
[INFO] [stdout]   |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]  --> src/codegen/back/write.rs:3:46
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) fn write_to_file(path: &Utf8Path, content: &str) -> Result<(), std::io::Error> {
[INFO] [stdout]   |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:640:24
[INFO] [stdout]     |
[INFO] [stdout] 640 | fn op_switch_statement(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |                        ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/codegen/common.rs:206:39
[INFO] [stdout]     |
[INFO] [stdout] 206 |             InstructionValue::Pointer(name, _) => write!(f, ""),
[INFO] [stdout]     |                                       ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/compiler/parse/sink.rs:93:25
[INFO] [stdout]    |
[INFO] [stdout] 93 |     fn error(&mut self, err: ParseError) {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/codegen/context.rs:436:13
[INFO] [stdout]     |
[INFO] [stdout] 428 |             Stmt::AtomicStoreStatement(atomic_store_stmt) => {
[INFO] [stdout]     |             --------------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 436 |             Stmt::AtomicStoreStatement(atomic_store_stmt) => {
[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: `atomic_cmp_exch_expr`
[INFO] [stdout]     --> src/codegen/context.rs:1373:45
[INFO] [stdout]      |
[INFO] [stdout] 1373 |             Expr::AtomicCompareExchangeExpr(atomic_cmp_exch_expr) => {
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_atomic_cmp_exch_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `atomic_exchange`
[INFO] [stdout]     --> src/codegen/context.rs:2589:13
[INFO] [stdout]      |
[INFO] [stdout] 2589 |         let atomic_exchange = program.instructions.get(1).unwrap();
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_atomic_exchange`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_PROGRAM_FILE` is never used
[INFO] [stdout]   --> src/main.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | static DEFAULT_PROGRAM_FILE: &str = "MCProgram.tla";
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compile` is never used
[INFO] [stdout]   --> src/main.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn compile(glsl_code: &str) {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_to_file` is never used
[INFO] [stdout]  --> src/codegen/back/write.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) fn write_to_file(path: &Utf8Path, content: &str) -> Result<(), std::io::Error> {
[INFO] [stdout]   |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConstantBuilder` is never constructed
[INFO] [stdout]  --> src/codegen/builder.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct ConstantBuilder {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name`, `value`, and `build` are never used
[INFO] [stdout]   --> src/codegen/builder.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl ConstantBuilder {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] 15 |     pub fn name(mut self, name: String) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn value(mut self, value: ConstantType) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn build(self) -> Result<Constant> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `builder` is never used
[INFO] [stdout]   --> src/codegen/builder.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl InstructionArgument {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 34 |     pub fn builder() -> InstructionArgumentBuilder {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InstructionArgumentBuilder` is never constructed
[INFO] [stdout]   --> src/codegen/builder.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct InstructionArgumentBuilder {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name`, `scope`, `value`, `index`, and `build` are never used
[INFO] [stdout]   --> src/codegen/builder.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl InstructionArgumentBuilder {
[INFO] [stdout]    | ------------------------------- methods in this implementation
[INFO] [stdout] 48 |     pub fn name(mut self, name: String) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn scope(mut self, scope: VariableScope) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn value(mut self, value: InstructionValue) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn index(mut self, index: IndexKind) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn build(self) -> Result<InstructionArgument> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `builder` is never used
[INFO] [stdout]   --> src/codegen/builder.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl InstructionArguments {
[INFO] [stdout]    | ------------------------- associated function in this implementation
[INFO] [stdout] 79 |     pub fn builder() -> InstructionArgumentsBuilder {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InstructionArgumentsBuilder` is never constructed
[INFO] [stdout]   --> src/codegen/builder.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct InstructionArgumentsBuilder {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name`, `num_args`, `get_name`, `get_num_args`, `push_argument`, and `build` are never used
[INFO] [stdout]    --> src/codegen/builder.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout] 91  | impl InstructionArgumentsBuilder {
[INFO] [stdout]     | -------------------------------- methods in this implementation
[INFO] [stdout] 92  |     pub fn name(mut self, name: InstructionName) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96  |     pub fn num_args(mut self, num_args: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_name(&self) -> Option<InstructionName> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn get_num_args(&self) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn push_argument(mut self, argument: InstructionArgument) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn build(self) -> Result<InstructionArguments> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `builder` is never used
[INFO] [stdout]    --> src/codegen/builder.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl Instruction {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 128 |     pub fn builder() -> InstructionBuilder {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InstructionBuilder` is never constructed
[INFO] [stdout]    --> src/codegen/builder.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub struct InstructionBuilder {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `position`, `name`, `arguments`, `scope`, and `build` are never used
[INFO] [stdout]    --> src/codegen/builder.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | impl InstructionBuilder {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] 142 |     pub fn position(mut self, position: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn name(mut self, name: InstructionName) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn arguments(mut self, arguments: InstructionArguments) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn scope(mut self, scope: InstructionScope) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn build(self) -> Result<Instruction> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `builder` is never used
[INFO] [stdout]    --> src/codegen/builder.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl Thread {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 177 |     pub fn builder() -> ThreadBuilder {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThreadBuilder` is never constructed
[INFO] [stdout]    --> src/codegen/builder.rs:183:12
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub struct ThreadBuilder {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `instruction` and `build` are never used
[INFO] [stdout]    --> src/codegen/builder.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 187 | impl ThreadBuilder {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 188 |     pub fn instruction(mut self, instruction: Instruction) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn build(self) -> Thread {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `builder` is never used
[INFO] [stdout]    --> src/codegen/builder.rs:201:12
[INFO] [stdout]     |
[INFO] [stdout] 200 | impl Program {
[INFO] [stdout]     | ------------ associated function in this implementation
[INFO] [stdout] 201 |     pub fn builder() -> ProgramBuilder {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgramBuilder` is never constructed
[INFO] [stdout]    --> src/codegen/builder.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub struct ProgramBuilder {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/codegen/builder.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 219 | impl ProgramBuilder {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] 220 |     pub fn global_var(mut self, global_vars: Vec<VariableInfo>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn subgroup_size(mut self, subgroup_size: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn work_group_size(mut self, work_group_size: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn num_work_groups(mut self, num_work_groups: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn num_threads(mut self, num_threads: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn scheduler(mut self, scheduler: Scheduler) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn push_instruction(mut self, instruction: Instruction) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub(crate) fn push_vec_instructions(mut self, instructions: Vec<Instruction>) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub fn build(self) -> Result<Program> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `LAYOUT_CONFIG_HINT` is never used
[INFO] [stdout]   --> src/codegen/common.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | static LAYOUT_CONFIG_HINT: &str = "(* Layout Configuration *)";
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PROGRAM_HINT` is never used
[INFO] [stdout]   --> src/codegen/common.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | static PROGRAM_HINT: &str = "(* Program *)";
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `GLOBAL_VARIABLES_HINT` is never used
[INFO] [stdout]   --> src/codegen/common.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | static GLOBAL_VARIABLES_HINT: &str = "(* Global Variables *)";
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BinaryExpr` is never used
[INFO] [stdout]   --> src/codegen/common.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum BinaryExpr {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InstructionName` is never used
[INFO] [stdout]   --> src/codegen/common.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub enum InstructionName {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `VariableScope` is never used
[INFO] [stdout]   --> src/codegen/common.rs:86:10
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub enum VariableScope {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `cast` is never used
[INFO] [stdout]    --> src/codegen/common.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl VariableScope {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 107 |     pub fn cast(storage_class: &StorageClass) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InstructionScope` is never used
[INFO] [stdout]    --> src/codegen/common.rs:119:10
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub enum InstructionScope {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InstructionBuiltInVariable` is never used
[INFO] [stdout]    --> src/codegen/common.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub enum InstructionBuiltInVariable {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `cast` is never used
[INFO] [stdout]    --> src/codegen/common.rs:160:19
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl InstructionBuiltInVariable {
[INFO] [stdout]     | ------------------------------- associated function in this implementation
[INFO] [stdout] 160 |     pub(crate) fn cast(var: BuiltInVariable) -> Self {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `IndexKind` is never used
[INFO] [stdout]    --> src/codegen/common.rs:178:10
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub enum IndexKind {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InstructionValue` is never used
[INFO] [stdout]    --> src/codegen/common.rs:192:10
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub enum InstructionValue {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Scheduler` is never used
[INFO] [stdout]    --> src/codegen/common.rs:222:10
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub enum Scheduler {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InstructionArgument` is never constructed
[INFO] [stdout]    --> src/codegen/common.rs:235:12
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub struct InstructionArgument {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InstructionArguments` is never constructed
[INFO] [stdout]    --> src/codegen/common.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub struct InstructionArguments {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Instruction` is never constructed
[INFO] [stdout]    --> src/codegen/common.rs:268:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub struct Instruction {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Thread` is never constructed
[INFO] [stdout]    --> src/codegen/common.rs:276:12
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub struct Thread {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Program` is never constructed
[INFO] [stdout]    --> src/codegen/common.rs:289:12
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub struct Program {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write_layout`, `write_global_variables`, `write_program`, and `write_to_file` are never used
[INFO] [stdout]    --> src/codegen/common.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout] 300 | impl Program {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     fn write_layout(&self, lines: &mut Vec<String>, index: usize) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     fn write_global_variables(&self, lines: &mut Vec<String>, index: usize) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     fn write_program(&self, lines: &mut Vec<String>, index: usize) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub fn write_to_file(&self, path: &Utf8Path) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConstantType` is never used
[INFO] [stdout]  --> src/codegen/constant.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum ConstantType {
[INFO] [stdout]   |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Constant` is never constructed
[INFO] [stdout]   --> src/codegen/constant.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Constant {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CodegenCx` is never constructed
[INFO] [stdout]   --> src/codegen/context.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct CodegenCx {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/codegen/context.rs:22:12
[INFO] [stdout]      |
[INFO] [stdout] 21   | impl CodegenCx {
[INFO] [stdout]      | -------------- associated items in this implementation
[INFO] [stdout] 22   |     pub fn new() -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30   |     pub(crate) fn increment_inst_position(&mut self) -> u32 {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34   |     pub(crate) fn reset_position(&mut self) {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37   |     pub fn insert_type(&mut self, id: String, ty: SpirvType) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41   |     pub fn lookup_type(&self, id: &str) -> Option<&SpirvType> {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45   |     pub fn insert_variable(&mut self, name: String, var_info: VariableInfo) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49   |     pub fn lookup_variable(&self, id: &str) -> Option<VariableInfo> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53   |     pub fn built_in_variable(&self, id: &str) -> Option<BuiltInVariable> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60   |     pub fn insert_label(&mut self, label: String, position: u32) {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64   |     pub fn lookup_label(&self, label: &str) -> Option<&u32> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69   |     pub fn get_from_spirv_type(&self, spirv_type: &SpirvType) -> (InstructionValue, IndexKind) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117  |     fn symbol_table_construction_pass_expr(&mut self, var_name: String, expr: &Expr) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398  |     fn symbol_table_construction_pass_stmt(&mut self, stmt: &Stmt) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 461  |     fn symbol_table_construction_pass(&mut self, root: &Root) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 469  |     fn generate_code_for_expr(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1381 |     fn generate_code_for_stmt(&mut self, stmt: &Stmt) -> Option<Instruction> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1744 |     pub(crate) fn generate_code(&mut self, root: SyntaxNode) -> Program {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1771 |     pub(crate) fn get_global_variables(&self) -> Vec<VariableInfo> {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ResultType` is never used
[INFO] [stdout]   --> src/compiler/ast/ast.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait ResultType {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BinaryExpr` is never used
[INFO] [stdout]   --> src/compiler/ast/ast.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub trait BinaryExpr {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Root` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct Root(SyntaxNode);
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecutionMode` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct ExecutionMode(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DecorateStatement` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct DecorateStatement(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VariableRef` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct VariableRef(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VariableDef` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct VariableDef(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FuncStatement` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct FuncStatement(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VariableExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct VariableExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TypeExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct TypeExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LabelExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct LabelExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoadExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct LoadExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AtomicLoadExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct AtomicLoadExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StoreStatement` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct StoreStatement(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AtomicStoreStatement` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct AtomicStoreStatement(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConstExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct ConstExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConstTrueExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct ConstTrueExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConstFalseExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct ConstFalseExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AddExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct AddExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SubExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct SubExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MulExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub struct MulExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EqualExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct EqualExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NotEqualExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct NotEqualExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LessThanExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct LessThanExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GreaterThanExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct GreaterThanExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LessThanEqualExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct LessThanEqualExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GreaterThanEqualExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct GreaterThanEqualExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AtomicExchangeExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct AtomicExchangeExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AtomicCompareExchangeExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub struct AtomicCompareExchangeExpr(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReturnStatement` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub struct ReturnStatement(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BranchConditionalStatement` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct BranchConditionalStatement(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BranchStatement` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct BranchStatement(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SwitchStatement` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub struct SwitchStatement(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoopMergeStatement` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub struct LoopMergeStatement(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelectionMergeStatement` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct SelectionMergeStatement(SyntaxNode);
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expr` is never used
[INFO] [stdout]   --> src/compiler/ast/ast.rs:91:10
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub enum Expr {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Stmt` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:116:10
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub enum Stmt {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `cast` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:144:19
[INFO] [stdout]     |
[INFO] [stdout] 143 | impl Expr {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 144 |     pub(crate) fn cast(node: SyntaxNode) -> Option<Self> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `cast` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:185:19
[INFO] [stdout]     |
[INFO] [stdout] 184 | impl Stmt {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 185 |     pub(crate) fn cast(node: SyntaxNode) -> Option<Self> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `stmts` and `cast` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:211:19
[INFO] [stdout]     |
[INFO] [stdout] 210 | impl Root {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 211 |     pub(crate) fn stmts(&self) -> impl Iterator<Item = Stmt> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub(crate) fn cast(node: SyntaxNode) -> Option<Self> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ty` and `name` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl TypeExpr {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 224 |     pub fn ty(&self) -> SpirvType {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn name(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ty_name` and `storage_class` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:311:19
[INFO] [stdout]     |
[INFO] [stdout] 310 | impl VariableExpr {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 311 |     pub(crate) fn ty_name(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub(crate) fn storage_class(&self) -> Option<StorageClass> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ty`, `base_var_name`, and `index_name` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:340:19
[INFO] [stdout]     |
[INFO] [stdout] 339 | impl VariableRef {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 340 |     pub(crate) fn ty(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub(crate) fn base_var_name(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     pub(crate) fn index_name(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name` and `value` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:366:19
[INFO] [stdout]     |
[INFO] [stdout] 364 | impl VariableDef {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 365 |     // we want
[INFO] [stdout] 366 |     pub(crate) fn name(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |     pub(crate) fn value(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `expr`, `ty`, and `pointer` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:379:19
[INFO] [stdout]     |
[INFO] [stdout] 378 | impl LoadExpr {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 379 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     pub(crate) fn ty(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^
[INFO] [stdout] ...
[INFO] [stdout] 390 |     pub(crate) fn pointer(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `expr`, `ty`, and `pointer` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:400:19
[INFO] [stdout]     |
[INFO] [stdout] 399 | impl AtomicLoadExpr {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] 400 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 404 |     pub(crate) fn ty(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub(crate) fn pointer(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `expr`, `pointer`, and `object` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:421:19
[INFO] [stdout]     |
[INFO] [stdout] 420 | impl StoreStatement {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] 421 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     pub(crate) fn pointer(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |     pub(crate) fn object(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `expr`, `pointer`, and `value` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:441:19
[INFO] [stdout]     |
[INFO] [stdout] 440 | impl AtomicStoreStatement{
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] 441 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub(crate) fn pointer(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 452 |     pub(crate) fn value(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `expr`, `ty`, and `value` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:462:19
[INFO] [stdout]     |
[INFO] [stdout] 461 | impl ConstExpr {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 462 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 466 |     pub(crate) fn ty(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^
[INFO] [stdout] ...
[INFO] [stdout] 473 |     pub(crate) fn value(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:482:19
[INFO] [stdout]     |
[INFO] [stdout] 481 | impl AddExpr {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 482 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:488:19
[INFO] [stdout]     |
[INFO] [stdout] 487 | impl SubExpr {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 488 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:494:19
[INFO] [stdout]     |
[INFO] [stdout] 493 | impl MulExpr {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 494 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:500:19
[INFO] [stdout]     |
[INFO] [stdout] 499 | impl EqualExpr {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 500 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `expr` and `ty` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:506:19
[INFO] [stdout]     |
[INFO] [stdout] 505 | impl NotEqualExpr {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 506 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 |     pub(crate) fn ty(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:519:19
[INFO] [stdout]     |
[INFO] [stdout] 518 | impl LessThanExpr {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] 519 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:525:19
[INFO] [stdout]     |
[INFO] [stdout] 524 | impl GreaterThanExpr {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 525 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `pointer`, `memory`, `memory_semantics`, and `value` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:535:19
[INFO] [stdout]     |
[INFO] [stdout] 534 | impl AtomicExchangeExpr {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] 535 |     pub(crate) fn pointer(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 543 |     pub(crate) fn memory(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 551 |     pub(crate) fn memory_semantics(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 559 |     pub(crate) fn value(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `local_size_x`, `local_size_y`, and `local_size_z` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:573:19
[INFO] [stdout]     |
[INFO] [stdout] 572 | impl ExecutionMode {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 573 |     pub(crate) fn local_size_x(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 579 |     pub(crate) fn local_size_y(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 586 |     pub(crate) fn local_size_z(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name` and `built_in_var` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:595:19
[INFO] [stdout]     |
[INFO] [stdout] 594 | impl DecorateStatement {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 595 |     pub(crate) fn name(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 602 |     pub(crate) fn built_in_var(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `condition`, `true_label`, and `false_label` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:615:19
[INFO] [stdout]     |
[INFO] [stdout] 614 | impl BranchConditionalStatement {
[INFO] [stdout]     | ------------------------------- methods in this implementation
[INFO] [stdout] 615 |     pub(crate) fn condition(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 622 |     pub(crate) fn true_label(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 630 |     pub(crate) fn false_label(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `label` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:640:19
[INFO] [stdout]     |
[INFO] [stdout] 639 | impl BranchStatement {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 640 |     pub(crate) fn label(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `merge_label` and `continue_label` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:653:19
[INFO] [stdout]     |
[INFO] [stdout] 652 | impl LoopMergeStatement {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] 653 |     pub(crate) fn merge_label(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 660 |     pub(crate) fn continue_label(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `merge_label` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:670:19
[INFO] [stdout]     |
[INFO] [stdout] 669 | impl SelectionMergeStatement {
[INFO] [stdout]     | ---------------------------- method in this implementation
[INFO] [stdout] 670 |     pub(crate) fn merge_label(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Event` is never used
[INFO] [stdout]  --> src/compiler/parse/event.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum Event {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `root` is never used
[INFO] [stdout]  --> src/compiler/parse/grammar/grammar.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) fn root(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stmt` is never used
[INFO] [stdout]   --> src/compiler/parse/grammar/statement.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(super) fn stmt(p: &mut Parser) -> Option<CompletedMarker> {
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skip_ignored_op` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn skip_ignored_op(p: &mut Parser) -> Option<CompletedMarker> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_execution_mode_stmt` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn op_execution_mode_stmt(p: &mut Parser) -> Option<CompletedMarker> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_decorate_stmt` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:149:4
[INFO] [stdout]     |
[INFO] [stdout] 149 | fn op_decorate_stmt(p: &mut Parser) -> Option<CompletedMarker> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_function_end_statement` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:197:4
[INFO] [stdout]     |
[INFO] [stdout] 197 | fn op_function_end_statement(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_type_int_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:205:4
[INFO] [stdout]     |
[INFO] [stdout] 205 | fn op_type_int_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_type_bool_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:216:4
[INFO] [stdout]     |
[INFO] [stdout] 216 | fn op_type_bool_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_type_void_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:225:4
[INFO] [stdout]     |
[INFO] [stdout] 225 | fn op_type_void_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_type_function_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn op_type_function_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_type_vector_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:246:4
[INFO] [stdout]     |
[INFO] [stdout] 246 | fn op_type_vector_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_type_array_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:258:4
[INFO] [stdout]     |
[INFO] [stdout] 258 | fn op_type_array_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_type_runtime_array_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:272:4
[INFO] [stdout]     |
[INFO] [stdout] 272 | fn op_type_runtime_array_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_type_struct_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:286:4
[INFO] [stdout]     |
[INFO] [stdout] 286 | fn op_type_struct_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_type_pointer_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:297:4
[INFO] [stdout]     |
[INFO] [stdout] 297 | fn op_type_pointer_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_variable_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:313:4
[INFO] [stdout]     |
[INFO] [stdout] 313 | fn op_variable_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_access_chain_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:330:4
[INFO] [stdout]     |
[INFO] [stdout] 330 | fn op_access_chain_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_label_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:344:4
[INFO] [stdout]     |
[INFO] [stdout] 344 | fn op_label_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_constant_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:353:4
[INFO] [stdout]     |
[INFO] [stdout] 353 | fn op_constant_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_constant_true_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:383:4
[INFO] [stdout]     |
[INFO] [stdout] 383 | fn op_constant_true_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_constant_false_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:394:4
[INFO] [stdout]     |
[INFO] [stdout] 394 | fn op_constant_false_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_return_statement` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:405:4
[INFO] [stdout]     |
[INFO] [stdout] 405 | fn op_return_statement(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_load_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:414:4
[INFO] [stdout]     |
[INFO] [stdout] 414 | fn op_load_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_store_statement` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:434:4
[INFO] [stdout]     |
[INFO] [stdout] 434 | fn op_store_statement(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_atomic_load_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:453:4
[INFO] [stdout]     |
[INFO] [stdout] 453 | fn op_atomic_load_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_atomic_store_statement` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:466:4
[INFO] [stdout]     |
[INFO] [stdout] 466 | fn op_atomic_store_statement(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_equal_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:479:4
[INFO] [stdout]     |
[INFO] [stdout] 479 | fn op_equal_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_not_equal_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:494:4
[INFO] [stdout]     |
[INFO] [stdout] 494 | fn op_not_equal_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_greater_than_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:509:4
[INFO] [stdout]     |
[INFO] [stdout] 509 | fn op_greater_than_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_greater_than_equal_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:524:4
[INFO] [stdout]     |
[INFO] [stdout] 524 | fn op_greater_than_equal_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_less_than_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:539:4
[INFO] [stdout]     |
[INFO] [stdout] 539 | fn op_less_than_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_less_than_equal_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:554:4
[INFO] [stdout]     |
[INFO] [stdout] 554 | fn op_less_than_equal_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_add_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:569:4
[INFO] [stdout]     |
[INFO] [stdout] 569 | fn op_add_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_sub_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:584:4
[INFO] [stdout]     |
[INFO] [stdout] 584 | fn op_sub_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_mul_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:599:4
[INFO] [stdout]     |
[INFO] [stdout] 599 | fn op_mul_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_branch_conditional_statement` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:614:4
[INFO] [stdout]     |
[INFO] [stdout] 614 | fn op_branch_conditional_statement(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_branch_statement` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:629:4
[INFO] [stdout]     |
[INFO] [stdout] 629 | fn op_branch_statement(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_switch_statement` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:640:4
[INFO] [stdout]     |
[INFO] [stdout] 640 | fn op_switch_statement(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_loop_merge_statement` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:645:4
[INFO] [stdout]     |
[INFO] [stdout] 645 | fn op_loop_merge_statement(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_selection_merge_statement` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:659:4
[INFO] [stdout]     |
[INFO] [stdout] 659 | fn op_selection_merge_statement(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_atomic_exchange_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:671:4
[INFO] [stdout]     |
[INFO] [stdout] 671 | fn op_atomic_exchange_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_atomic_compare_exchange_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:696:4
[INFO] [stdout]     |
[INFO] [stdout] 696 | fn op_atomic_compare_exchange_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `variable_def` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:721:4
[INFO] [stdout]     |
[INFO] [stdout] 721 | fn variable_def(p: &mut Parser) -> Option<CompletedMarker> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lexer` is never constructed
[INFO] [stdout]  --> src/compiler/parse/lexer.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Lexer<'t> {
[INFO] [stdout]   |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/compiler/parse/lexer.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl<'t> Lexer<'t> {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 20 |     pub(crate) fn new(input: &'t str) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Marker` is never constructed
[INFO] [stdout]  --> src/compiler/parse/marker.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Marker {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `complete` are never used
[INFO] [stdout]   --> src/compiler/parse/marker.rs:9:19
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl Marker {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 9  |     pub(super) fn new(pos: usize) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub(super) fn complete(mut self, p: &mut Parser, kind: TokenKind) -> CompletedMarker {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompletedMarker` is never constructed
[INFO] [stdout]   --> src/compiler/parse/marker.rs:40:19
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub(crate) struct CompletedMarker {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `precede` is never used
[INFO] [stdout]   --> src/compiler/parse/marker.rs:45:19
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl CompletedMarker {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 45 |     pub(super) fn precede(&self, p: &mut Parser) -> Marker {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AsukaResult` is never used
[INFO] [stdout]   --> src/compiler/parse/parser.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type AsukaResult<T> = Result<T, AsukaError>;
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RECOVERY_SET` is never used
[INFO] [stdout]   --> src/compiler/parse/parser.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const RECOVERY_SET: [TokenKind; 1] = [TokenKind::Newline];
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/compiler/parse/parser.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) struct Parser<'l, 't> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/compiler/parse/parser.rs:23:19
[INFO] [stdout]     |
[INFO] [stdout] 22  | impl<'l, 't> Parser<'l, 't> {
[INFO] [stdout]     | --------------------------- associated items in this implementation
[INFO] [stdout] 23  |     pub(crate) fn new(source: Source<'l, 't>) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31  |     pub(crate) fn parse(mut self) -> Vec<Event> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37  |     pub(crate) fn start_node(&mut self, kind: TokenKind) {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43  |     pub(crate) fn start_node_at(&mut self, checkpoint: usize, kind: TokenKind) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47  |     pub(crate) fn finish_node(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51  |     pub(crate) fn checkpoint(&mut self) -> usize {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55  |     pub(crate) fn bump(&mut self) {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62  |     pub(crate) fn peek(&mut self) -> Option<TokenKind> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66  |     pub(crate) fn start(&mut self) -> Marker {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76  |     pub(crate) fn expect(&mut self, kind: TokenKind) {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84  |     pub(crate) fn at(&mut self, kind: TokenKind) -> bool {
[INFO] [stdout]     |                   ^^
[INFO] [stdout] ...
[INFO] [stdout] 98  |     pub(crate) fn error(&mut self) {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub(crate) fn at_set(&mut self, set: &[TokenKind]) -> bool {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub(crate) fn at_end(&mut self) -> bool {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parse` is never constructed
[INFO] [stdout]    --> src/compiler/parse/parser.rs:132:12
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub struct Parse {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `debug_tree` and `syntax` are never used
[INFO] [stdout]    --> src/compiler/parse/parser.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl Parse {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 137 |     pub fn debug_tree(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn syntax(&self) -> SyntaxNode {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]    --> src/compiler/parse/parser.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub fn parse(input: &str) -> Parse {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AsukaError` is never used
[INFO] [stdout]  --> src/compiler/parse/parser_error.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum AsukaError {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParseError` is never constructed
[INFO] [stdout]  --> src/compiler/parse/parser_error.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct ParseError {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sink` is never constructed
[INFO] [stdout]  --> src/compiler/parse/sink.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(super) struct Sink<'l, 't> {
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `finish`, `eat_trivial`, `token`, and `error` are never used
[INFO] [stdout]   --> src/compiler/parse/sink.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl<'l, 't> Sink<'l, 't> {
[INFO] [stdout]    | ------------------------- associated items in this implementation
[INFO] [stdout] 15 |     pub(super) fn new(tokens: &'l [Token<'t>], events: Vec<Event>) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub(super) fn finish(mut self) -> Parse {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn eat_trivial(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     fn token(&mut self) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     fn error(&mut self, err: ParseError) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Source` is never constructed
[INFO] [stdout]  --> src/compiler/parse/source.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) struct Source<'l, 't> {
[INFO] [stdout]   |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/compiler/parse/source.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl<'l, 't> Source<'l, 't> {
[INFO] [stdout]    | --------------------------- associated items in this implementation
[INFO] [stdout] 10 |     pub(super) fn new(tokens: &'l [Token<'t>]) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub(super) fn next_token(&mut self) -> Option<&'l Token<'t>> {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub(super) fn peek_kind(&mut self) -> Option<TokenKind> {
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub(crate) fn peek_token(&mut self) -> Option<&Token> {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     fn eat_trivial(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     fn peek_kind_raw(&self) -> Option<TokenKind> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     fn peek_token_raw(&self) -> Option<&Token> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub(crate) fn last_token_range(&self) -> Option<TextRange> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VariableSymbol` is never used
[INFO] [stdout]  --> src/compiler/parse/symbol_table.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type VariableSymbol = String;
[INFO] [stdout]   |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TypeSymbol` is never used
[INFO] [stdout]   --> src/compiler/parse/symbol_table.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type TypeSymbol = String;
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ConstantSymbol` is never used
[INFO] [stdout]   --> src/compiler/parse/symbol_table.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type ConstantSymbol = String;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SSAID` is never used
[INFO] [stdout]   --> src/compiler/parse/symbol_table.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type SSAID = String;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Label` is never used
[INFO] [stdout]   --> src/compiler/parse/symbol_table.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | type Label = String;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Position` is never used
[INFO] [stdout]   --> src/compiler/parse/symbol_table.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | type Position = u32;
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StorageClass` is never used
[INFO] [stdout]   --> src/compiler/parse/symbol_table.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) enum StorageClass {
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BuiltInVariable` is never used
[INFO] [stdout]   --> src/compiler/parse/symbol_table.rs:43:17
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub(crate) enum BuiltInVariable {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `cast` is never used
[INFO] [stdout]   --> src/compiler/parse/symbol_table.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl BuiltInVariable {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 56 |     pub fn cast(token: TokenKind) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SpirvType` is never used
[INFO] [stdout]   --> src/compiler/parse/symbol_table.rs:76:17
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub(crate) enum SpirvType {
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `default_value` is never used
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl SpirvType {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 112 |     pub fn default_value(&self) -> ConstantInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConstantInfo` is never used
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:123:17
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub(crate) enum ConstantInfo {
[INFO] [stdout]     |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `to_text`, `new_int`, `new_bool`, `get_int_value`, `get_bool_value`, and `is_signed` are never used
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:139:19
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl ConstantInfo {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 139 |     pub(crate) fn to_text(&self) -> String {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn new_int(value: i32, signed: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn new_bool(value: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn get_int_value(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn get_bool_value(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn is_signed(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SpirvTypeTable` is never constructed
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub struct SpirvTypeTable {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert`, and `lookup` are never used
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl SpirvTypeTable {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 181 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn insert(&mut self, id: String, ty: SpirvType) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn lookup(&self, id: &str) -> Option<&SpirvType> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AccessStep` is never used
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:197:10
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub enum AccessStep {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VariableInfo` is never constructed
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub struct VariableInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:213:12
[INFO] [stdout]     |
[INFO] [stdout] 212 | impl VariableInfo {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 213 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub(crate) fn new_const_int(id: String, value: i32, signed: bool) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub(crate) fn new_const_bool(id: String, value: bool) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub(crate) fn get_var_name(&self) -> String {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub(crate) fn is_builtin(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     pub(crate) fn get_builtin(&self) -> Option<BuiltInVariable> {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pub(crate) fn get_ty(&self) -> SpirvType {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     pub(crate) fn get_storage_class(&self) -> StorageClass {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub(crate) fn initial_value(&self) -> ConstantInfo {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub(crate) fn get_index(&self) -> i32 {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub(crate) fn is_intermediate(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub(crate) fn is_global(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     pub(crate) fn is_shared(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub(crate) fn is_local(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     pub(crate) fn is_constant(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     pub(crate) fn get_constant_int(&self) -> i32 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     pub(crate) fn get_constant_bool(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VariableInfoBuilder` is never constructed
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub struct VariableInfoBuilder {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Scope` is never used
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:355:6
[INFO] [stdout]     |
[INFO] [stdout] 355 | type Scope = HashMap<SSAID, VariableInfo>;
[INFO] [stdout]     |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VariableSymbolTable` is never constructed
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:358:12
[INFO] [stdout]     |
[INFO] [stdout] 358 | pub struct VariableSymbolTable {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert`, `lookup`, and `get_global_variables` are never used
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:367:12
[INFO] [stdout]     |
[INFO] [stdout] 365 | impl VariableSymbolTable {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] 366 |     // Create a new, empty symbol table
[INFO] [stdout] 367 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 377 |     pub fn insert(&mut self, var_name: String, var_info: VariableInfo) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub fn lookup(&self, name: &str) -> Option<VariableInfo> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 414 |     pub fn get_global_variables(&self) -> Vec<VariableInfo> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConstantSymbolTable` is never constructed
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:419:12
[INFO] [stdout]     |
[INFO] [stdout] 419 | pub struct ConstantSymbolTable {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert`, and `lookup` are never used
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:424:12
[INFO] [stdout]     |
[INFO] [stdout] 423 | impl ConstantSymbolTable {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] 424 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 430 |     pub fn insert(&mut self, id: String, constant: ConstantInfo) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn lookup(&self, id: &str) -> Option<&ConstantInfo> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LabelTable` is never constructed
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:439:12
[INFO] [stdout]     |
[INFO] [stdout] 439 | pub struct LabelTable {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert`, and `lookup` are never used
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:444:12
[INFO] [stdout]     |
[INFO] [stdout] 443 | impl LabelTable {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 444 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub fn insert(&mut self, label: Label, position: Position) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 454 |     pub fn lookup(&self, label: &str) -> Option<&Position> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AsukaLanguage` is never used
[INFO] [stdout]  --> src/compiler/parse/syntax.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) enum AsukaLanguage {}
[INFO] [stdout]   |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SyntaxNode` is never used
[INFO] [stdout]   --> src/compiler/parse/syntax.rs:19:17
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) type SyntaxNode = rowan::SyntaxNode<AsukaLanguage>;
[INFO] [stdout]    |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SyntaxToken` is never used
[INFO] [stdout]   --> src/compiler/parse/syntax.rs:20:17
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub(crate) type SyntaxToken = rowan::SyntaxToken<AsukaLanguage>;
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SyntaxElement` is never used
[INFO] [stdout]   --> src/compiler/parse/syntax.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) type SyntaxElement = rowan::SyntaxElement<AsukaLanguage>;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OpUnsupported` is never constructed
[INFO] [stdout]   --> src/compiler/parse/syntax.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum LexingError {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] 25 |     OpUnsupported(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LexingError` 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: static `IGNORED_INSTRUCTION_SET` is never used
[INFO] [stdout]   --> src/compiler/parse/syntax.rs:37:19
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub(crate) static IGNORED_INSTRUCTION_SET: [TokenKind; 14] = [
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BUILT_IN_VARIABLE_SET` is never used
[INFO] [stdout]   --> src/compiler/parse/syntax.rs:56:19
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub(crate) static BUILT_IN_VARIABLE_SET: [TokenKind; 9] = [
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_trivial` is never used
[INFO] [stdout]    --> src/compiler/parse/syntax.rs:433:19
[INFO] [stdout]     |
[INFO] [stdout] 432 | impl TokenKind {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 433 |     pub(crate) fn is_trivial(self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     program.write_to_file(&file);
[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] 28 |     let _ = program.write_to_file(&file);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:640:24
[INFO] [stdout]     |
[INFO] [stdout] 640 | fn op_switch_statement(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |                        ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/compiler/parse/source.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub(crate) fn peek_token(&mut self) -> Option<&Token> {
[INFO] [stdout]    |                              ^^^^^^^^^            ------
[INFO] [stdout]    |                              |                    ||
[INFO] [stdout]    |                              |                    |the lifetimes get resolved as `'_`
[INFO] [stdout]    |                              |                    the lifetimes get resolved as `'_`
[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] 27 |     pub(crate) fn peek_token(&mut self) -> Option<&Token<'_>> {
[INFO] [stdout]    |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/compiler/parse/source.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn peek_token_raw(&self) -> Option<&Token> {
[INFO] [stdout]    |                       ^^^^^            ------
[INFO] [stdout]    |                       |                ||
[INFO] [stdout]    |                       |                |the lifetimes get resolved as `'_`
[INFO] [stdout]    |                       |                the lifetimes get resolved as `'_`
[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] 43 |     fn peek_token_raw(&self) -> Option<&Token<'_>> {
[INFO] [stdout]    |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/compiler/parse/sink.rs:93:25
[INFO] [stdout]    |
[INFO] [stdout] 93 |     fn error(&mut self, err: ParseError) {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEFAULT_PROGRAM_FILE` is never used
[INFO] [stdout]   --> src/main.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | static DEFAULT_PROGRAM_FILE: &str = "MCProgram.tla";
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compile` is never used
[INFO] [stdout]   --> src/main.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn compile(glsl_code: &str) {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_to_file` is never used
[INFO] [stdout]  --> src/codegen/back/write.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) fn write_to_file(path: &Utf8Path, content: &str) -> Result<(), std::io::Error> {
[INFO] [stdout]   |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConstantBuilder` is never constructed
[INFO] [stdout]  --> src/codegen/builder.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct ConstantBuilder {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name`, `value`, and `build` are never used
[INFO] [stdout]   --> src/codegen/builder.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl ConstantBuilder {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] 15 |     pub fn name(mut self, name: String) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn value(mut self, value: ConstantType) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn build(self) -> Result<Constant> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_name` and `get_num_args` are never used
[INFO] [stdout]    --> src/codegen/builder.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 91  | impl InstructionArgumentsBuilder {
[INFO] [stdout]     | -------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_name(&self) -> Option<InstructionName> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn get_num_args(&self) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `builder` is never used
[INFO] [stdout]    --> src/codegen/builder.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl Thread {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 177 |     pub fn builder() -> ThreadBuilder {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThreadBuilder` is never constructed
[INFO] [stdout]    --> src/codegen/builder.rs:183:12
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub struct ThreadBuilder {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `instruction` and `build` are never used
[INFO] [stdout]    --> src/codegen/builder.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 187 | impl ThreadBuilder {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 188 |     pub fn instruction(mut self, instruction: Instruction) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn build(self) -> Thread {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `num_threads` and `push_vec_instructions` are never used
[INFO] [stdout]    --> src/codegen/builder.rs:240:12
[INFO] [stdout]     |
[INFO] [stdout] 219 | impl ProgramBuilder {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn num_threads(mut self, num_threads: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub(crate) fn push_vec_instructions(mut self, instructions: Vec<Instruction>) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `LAYOUT_CONFIG_HINT` is never used
[INFO] [stdout]   --> src/codegen/common.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | static LAYOUT_CONFIG_HINT: &str = "(* Layout Configuration *)";
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PROGRAM_HINT` is never used
[INFO] [stdout]   --> src/codegen/common.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | static PROGRAM_HINT: &str = "(* Program *)";
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `GLOBAL_VARIABLES_HINT` is never used
[INFO] [stdout]   --> src/codegen/common.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | static GLOBAL_VARIABLES_HINT: &str = "(* Global Variables *)";
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BinaryExpr` is never used
[INFO] [stdout]   --> src/codegen/common.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum BinaryExpr {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `WorkGroup`, `SubGroup`, and `Invocation` are never constructed
[INFO] [stdout]    --> src/codegen/common.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub enum InstructionScope {
[INFO] [stdout]     |          ---------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 122 |     WorkGroup = 2,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 123 |     SubGroup = 3,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 124 |     Invocation = 4,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InstructionScope` 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 `Variable` is never constructed
[INFO] [stdout]    --> src/codegen/common.rs:180:5
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub enum IndexKind {
[INFO] [stdout]     |          --------- variant in this enum
[INFO] [stdout] 179 |     Literal(i32),
[INFO] [stdout] 180 |     Variable(String),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IndexKind` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `UInt` is never constructed
[INFO] [stdout]    --> src/codegen/common.rs:199:5
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub enum InstructionValue {
[INFO] [stdout]     |          ---------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 199 |     UInt(u32),
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InstructionValue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `HSA` is never constructed
[INFO] [stdout]    --> src/codegen/common.rs:224:5
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub enum Scheduler {
[INFO] [stdout]     |          --------- variant in this enum
[INFO] [stdout] 223 |     OBE,
[INFO] [stdout] 224 |     HSA,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Scheduler` 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 `position` is never read
[INFO] [stdout]    --> src/codegen/common.rs:269:9
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub struct Instruction {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 269 |     pub position: u32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Instruction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Thread` is never constructed
[INFO] [stdout]    --> src/codegen/common.rs:276:12
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub struct Thread {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/codegen/common.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub struct Program {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 290 |     pub global_vars: Vec<VariableInfo>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 291 |     pub subgroup_size: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 292 |     pub work_group_size: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 293 |     pub num_work_groups: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 294 |     pub num_threads: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 295 |     pub scheduler: Scheduler,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 296 |     pub instructions: SmallVec<[Instruction; 10]>,
[INFO] [stdout] 297 |     pub constants: SmallVec<[Constant; 10]>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Program` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write_layout`, `write_global_variables`, `write_program`, and `write_to_file` are never used
[INFO] [stdout]    --> src/codegen/common.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout] 300 | impl Program {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     fn write_layout(&self, lines: &mut Vec<String>, index: usize) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     fn write_global_variables(&self, lines: &mut Vec<String>, index: usize) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     fn write_program(&self, lines: &mut Vec<String>, index: usize) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub fn write_to_file(&self, path: &Utf8Path) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Bool`, `String`, `Int`, and `Uint` are never constructed
[INFO] [stdout]  --> src/codegen/constant.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum ConstantType {
[INFO] [stdout]   |          ------------ variants in this enum
[INFO] [stdout] 5 |     Bool(bool),
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 6 |     String(String),
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 7 |     Int(i32),
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 8 |     Uint(u32),
[INFO] [stdout]   |     ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ConstantType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `value` are never read
[INFO] [stdout]   --> src/codegen/constant.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Constant {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 13 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 14 |     pub value: ConstantType,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Constant` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]     --> src/codegen/context.rs:1791:8
[INFO] [stdout]      |
[INFO] [stdout] 1791 |     fn check(input: &str, expected_tree: expect_test::Expect) {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/compiler/ast/ast.rs:30:26
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct FuncStatement(SyntaxNode);
[INFO] [stdout]    |            ------------- ^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `FuncStatement` 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/compiler/ast/ast.rs:36:22
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct LabelExpr(SyntaxNode);
[INFO] [stdout]    |            --------- ^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `LabelExpr` 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/compiler/ast/ast.rs:84:28
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub struct SwitchStatement(SyntaxNode);
[INFO] [stdout]    |            --------------- ^^^^^^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `SwitchStatement` 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/compiler/ast/ast.rs:96:15
[INFO] [stdout]    |
[INFO] [stdout] 96 |     LabelExpr(LabelExpr),
[INFO] [stdout]    |     --------- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` 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] 96 -     LabelExpr(LabelExpr),
[INFO] [stdout] 96 +     LabelExpr(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/compiler/ast/ast.rs:100:19
[INFO] [stdout]     |
[INFO] [stdout] 100 |     ConstTrueExpr(ConstTrueExpr),
[INFO] [stdout]     |     ------------- ^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` 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] 100 -     ConstTrueExpr(ConstTrueExpr),
[INFO] [stdout] 100 +     ConstTrueExpr(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/compiler/ast/ast.rs:101:20
[INFO] [stdout]     |
[INFO] [stdout] 101 |     ConstFalseExpr(ConstFalseExpr),
[INFO] [stdout]     |     -------------- ^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Expr` 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] 101 -     ConstFalseExpr(ConstFalseExpr),
[INFO] [stdout] 101 +     ConstFalseExpr(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ExecutionModeExpr` is never constructed
[INFO] [stdout]   --> src/compiler/ast/ast.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub enum Expr {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 94 |     ExecutionModeExpr(ExecutionMode),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` 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/compiler/ast/ast.rs:123:21
[INFO] [stdout]     |
[INFO] [stdout] 123 |     ReturnStatement(ReturnStatement),
[INFO] [stdout]     |     --------------- ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Stmt` 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] 123 -     ReturnStatement(ReturnStatement),
[INFO] [stdout] 123 +     ReturnStatement(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `FuncStatement` and `SwitchStatement` are never constructed
[INFO] [stdout]    --> src/compiler/ast/ast.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub enum Stmt {
[INFO] [stdout]     |          ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 122 |     FuncStatement(FuncStatement),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     SwitchStatement(SwitchStatement),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Stmt` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `expr` and `ty` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:379:19
[INFO] [stdout]     |
[INFO] [stdout] 378 | impl LoadExpr {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 379 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     pub(crate) fn ty(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `expr` and `ty` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:400:19
[INFO] [stdout]     |
[INFO] [stdout] 399 | impl AtomicLoadExpr {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] 400 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 404 |     pub(crate) fn ty(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:421:19
[INFO] [stdout]     |
[INFO] [stdout] 420 | impl StoreStatement {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 421 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:441:19
[INFO] [stdout]     |
[INFO] [stdout] 440 | impl AtomicStoreStatement{
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] 441 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:462:19
[INFO] [stdout]     |
[INFO] [stdout] 461 | impl ConstExpr {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 462 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:482:19
[INFO] [stdout]     |
[INFO] [stdout] 481 | impl AddExpr {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 482 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:488:19
[INFO] [stdout]     |
[INFO] [stdout] 487 | impl SubExpr {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 488 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:494:19
[INFO] [stdout]     |
[INFO] [stdout] 493 | impl MulExpr {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] 494 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:500:19
[INFO] [stdout]     |
[INFO] [stdout] 499 | impl EqualExpr {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 500 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `expr` and `ty` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:506:19
[INFO] [stdout]     |
[INFO] [stdout] 505 | impl NotEqualExpr {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 506 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 |     pub(crate) fn ty(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:519:19
[INFO] [stdout]     |
[INFO] [stdout] 518 | impl LessThanExpr {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] 519 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expr` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:525:19
[INFO] [stdout]     |
[INFO] [stdout] 524 | impl GreaterThanExpr {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 525 |     pub(crate) fn expr(&self) -> Option<Expr> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `memory` and `memory_semantics` are never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:543:19
[INFO] [stdout]     |
[INFO] [stdout] 534 | impl AtomicExchangeExpr {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 543 |     pub(crate) fn memory(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 551 |     pub(crate) fn memory_semantics(&self) -> Option<SyntaxToken> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]    --> src/compiler/ast/ast.rs:689:8
[INFO] [stdout]     |
[INFO] [stdout] 689 |     fn check(input: &str, expected_tree: expect_test::Expect) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `StartNodeAt` is never constructed
[INFO] [stdout]   --> src/compiler/parse/event.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 8  | pub enum Event {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     StartNodeAt {
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Event` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_function_end_statement` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:197:4
[INFO] [stdout]     |
[INFO] [stdout] 197 | fn op_function_end_statement(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_type_function_expr` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn op_type_function_expr(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op_switch_statement` is never used
[INFO] [stdout]    --> src/compiler/parse/grammar/statement.rs:640:4
[INFO] [stdout]     |
[INFO] [stdout] 640 | fn op_switch_statement(p: &mut Parser) -> CompletedMarker {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tokens_to_capture` and `inside_function` are never read
[INFO] [stdout]  --> src/compiler/parse/lexer.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) struct Lexer<'t> {
[INFO] [stdout]   |                   ----- fields in this struct
[INFO] [stdout] 7 |     inner: logos::Lexer<'t, TokenKind>,
[INFO] [stdout] 8 |     tokens_to_capture: Vec<Token<'t>>, // Store captured tokens
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 9 |     inside_function: bool,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pos` is never read
[INFO] [stdout]   --> src/compiler/parse/marker.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub(crate) struct CompletedMarker {
[INFO] [stdout]    |                   --------------- field in this struct
[INFO] [stdout] 41 |     pos: usize,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `precede` is never used
[INFO] [stdout]   --> src/compiler/parse/marker.rs:45:19
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl CompletedMarker {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 45 |     pub(super) fn precede(&self, p: &mut Parser) -> Marker {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AsukaResult` is never used
[INFO] [stdout]   --> src/compiler/parse/parser.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type AsukaResult<T> = Result<T, AsukaError>;
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RECOVERY_SET` is never used
[INFO] [stdout]   --> src/compiler/parse/parser.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const RECOVERY_SET: [TokenKind; 1] = [TokenKind::Newline];
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `start_node`, `start_node_at`, `finish_node`, and `checkpoint` are never used
[INFO] [stdout]   --> src/compiler/parse/parser.rs:37:19
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl<'l, 't> Parser<'l, 't> {
[INFO] [stdout]    | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub(crate) fn start_node(&mut self, kind: TokenKind) {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub(crate) fn start_node_at(&mut self, checkpoint: usize, kind: TokenKind) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub(crate) fn finish_node(&mut self) {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub(crate) fn checkpoint(&mut self) -> usize {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AsukaError` is never used
[INFO] [stdout]  --> src/compiler/parse/parser_error.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum AsukaError {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/compiler/parse/parser_error.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn check(
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `error` is never used
[INFO] [stdout]   --> src/compiler/parse/sink.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl<'l, 't> Sink<'l, 't> {
[INFO] [stdout]    | ------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 93 |     fn error(&mut self, err: ParseError) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ConstantSymbol` is never used
[INFO] [stdout]   --> src/compiler/parse/symbol_table.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type ConstantSymbol = String;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Intermediate` is never constructed
[INFO] [stdout]   --> src/compiler/parse/symbol_table.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) enum StorageClass {
[INFO] [stdout]    |                 ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 25 |     Intermediate,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StorageClass` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Function`, `Array`, `RuntimeArray`, and `Struct` are never constructed
[INFO] [stdout]   --> src/compiler/parse/symbol_table.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub(crate) enum SpirvType {
[INFO] [stdout]    |                 --------- variants in this enum
[INFO] [stdout] 77 |     Void,
[INFO] [stdout] 78 |     Function {
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     Array {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     RuntimeArray {
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     Struct {
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpirvType` 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: method `default_value` is never used
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl SpirvType {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 112 |     pub fn default_value(&self) -> ConstantInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `to_text`, `get_int_value`, `get_bool_value`, and `is_signed` are never used
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:139:19
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl ConstantInfo {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 139 |     pub(crate) fn to_text(&self) -> String {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn get_int_value(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn get_bool_value(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn is_signed(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:266:19
[INFO] [stdout]     |
[INFO] [stdout] 212 | impl VariableInfo {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pub(crate) fn get_ty(&self) -> SpirvType {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub(crate) fn initial_value(&self) -> ConstantInfo {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub(crate) fn get_index(&self) -> i32 {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub(crate) fn is_intermediate(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub(crate) fn is_global(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     pub(crate) fn is_shared(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub(crate) fn is_local(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VariableInfoBuilder` is never constructed
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:347:12
[INFO] [stdout]     |
[INFO] [stdout] 347 | pub struct VariableInfoBuilder {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConstantSymbolTable` is never constructed
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:419:12
[INFO] [stdout]     |
[INFO] [stdout] 419 | pub struct ConstantSymbolTable {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert`, and `lookup` are never used
[INFO] [stdout]    --> src/compiler/parse/symbol_table.rs:424:12
[INFO] [stdout]     |
[INFO] [stdout] 423 | impl ConstantSymbolTable {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] 424 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 430 |     pub fn insert(&mut self, id: String, constant: ConstantInfo) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn lookup(&self, id: &str) -> Option<&ConstantInfo> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SyntaxElement` is never used
[INFO] [stdout]   --> src/compiler/parse/syntax.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) type SyntaxElement = rowan::SyntaxElement<AsukaLanguage>;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `OpUnsupported` is never constructed
[INFO] [stdout]   --> src/compiler/parse/syntax.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum LexingError {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] 25 |     OpUnsupported(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LexingError` 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: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     program.write_to_file(&file);
[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] 28 |     let _ = program.write_to_file(&file);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/compiler/parse/source.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub(crate) fn peek_token(&mut self) -> Option<&Token> {
[INFO] [stdout]    |                              ^^^^^^^^^            ------
[INFO] [stdout]    |                              |                    ||
[INFO] [stdout]    |                              |                    |the lifetimes get resolved as `'_`
[INFO] [stdout]    |                              |                    the lifetimes get resolved as `'_`
[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] 27 |     pub(crate) fn peek_token(&mut self) -> Option<&Token<'_>> {
[INFO] [stdout]    |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/compiler/parse/source.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn peek_token_raw(&self) -> Option<&Token> {
[INFO] [stdout]    |                       ^^^^^            ------
[INFO] [stdout]    |                       |                ||
[INFO] [stdout]    |                       |                |the lifetimes get resolved as `'_`
[INFO] [stdout]    |                       |                the lifetimes get resolved as `'_`
[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] 43 |     fn peek_token_raw(&self) -> Option<&Token<'_>> {
[INFO] [stdout]    |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.32s
[INFO] running `Command { std: "docker" "inspect" "c078795fbdb6ed3ee0fa55dea55631c138563d2027a762dc815521b54187e86e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c078795fbdb6ed3ee0fa55dea55631c138563d2027a762dc815521b54187e86e", kill_on_drop: false }`
[INFO] [stdout] c078795fbdb6ed3ee0fa55dea55631c138563d2027a762dc815521b54187e86e
