[INFO] cloning repository https://github.com/kavishsathia/star
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kavishsathia/star" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkavishsathia%2Fstar", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkavishsathia%2Fstar'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0df164150879ca55fe124d726e5f4a0bf03ff97b
[INFO] checking kavishsathia/star/0df164150879ca55fe124d726e5f4a0bf03ff97b against master#8c52f735abd1af9a73941b78fe7ed2ab08b9c0dd for pr-150557
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkavishsathia%2Fstar" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kavishsathia/star
[INFO] finished tweaking git repo https://github.com/kavishsathia/star
[INFO] tweaked toml for git repo https://github.com/kavishsathia/star written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kavishsathia/star on toolchain 8c52f735abd1af9a73941b78fe7ed2ab08b9c0dd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8c52f735abd1af9a73941b78fe7ed2ab08b9c0dd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kavishsathia/star 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" "+8c52f735abd1af9a73941b78fe7ed2ab08b9c0dd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasmtime-winch v29.0.1
[INFO] [stderr]   Downloaded wat v1.243.0
[INFO] [stderr]   Downloaded leb128fmt v0.1.0
[INFO] [stderr]   Downloaded wasmtime-jit-icache-coherence v29.0.1
[INFO] [stderr]   Downloaded ittapi v0.4.0
[INFO] [stderr]   Downloaded wasmtime-jit-debug v29.0.1
[INFO] [stderr]   Downloaded cranelift-codegen-shared v0.116.1
[INFO] [stderr]   Downloaded logos-derive v0.16.0
[INFO] [stderr]   Downloaded wasmtime-asm-macros v29.0.1
[INFO] [stderr]   Downloaded wasmtime-math v29.0.1
[INFO] [stderr]   Downloaded trait-variant v0.1.2
[INFO] [stderr]   Downloaded wasmtime-versioned-export-macros v29.0.1
[INFO] [stderr]   Downloaded cranelift-bitset v0.116.1
[INFO] [stderr]   Downloaded wasmtime-slab v29.0.1
[INFO] [stderr]   Downloaded wasmtime-component-util v29.0.1
[INFO] [stderr]   Downloaded cranelift-native v0.116.1
[INFO] [stderr]   Downloaded cranelift-control v0.116.1
[INFO] [stderr]   Downloaded logos v0.16.0
[INFO] [stderr]   Downloaded psm v0.1.28
[INFO] [stderr]   Downloaded zmij v1.0.10
[INFO] [stderr]   Downloaded cranelift-bforest v0.116.1
[INFO] [stderr]   Downloaded fxprof-processed-profile v0.6.0
[INFO] [stderr]   Downloaded ar_archive_writer v0.2.0
[INFO] [stderr]   Downloaded wasmtime-wit-bindgen v29.0.1
[INFO] [stderr]   Downloaded wasmtime-fiber v29.0.1
[INFO] [stderr]   Downloaded cranelift-entity v0.116.1
[INFO] [stderr]   Downloaded wasmtime-cache v29.0.1
[INFO] [stderr]   Downloaded wasmprinter v0.221.3
[INFO] [stderr]   Downloaded target-lexicon v0.13.4
[INFO] [stderr]   Downloaded pulley-interpreter v29.0.1
[INFO] [stderr]   Downloaded logos-codegen v0.16.0
[INFO] [stderr]   Downloaded cranelift-frontend v0.116.1
[INFO] [stderr]   Downloaded winch-codegen v29.0.1
[INFO] [stderr]   Downloaded wasm-encoder v0.243.0
[INFO] [stderr]   Downloaded wasm-encoder v0.221.3
[INFO] [stderr]   Downloaded cpp_demangle v0.4.5
[INFO] [stderr]   Downloaded cranelift-codegen-meta v0.116.1
[INFO] [stderr]   Downloaded cranelift-isle v0.116.1
[INFO] [stderr]   Downloaded wast v243.0.0
[INFO] [stderr]   Downloaded ittapi-sys v0.4.0
[INFO] [stderr]   Downloaded wit-parser v0.221.3
[INFO] [stderr]   Downloaded wasmtime-environ v29.0.1
[INFO] [stderr]   Downloaded wasmtime-cranelift v29.0.1
[INFO] [stderr]   Downloaded wasmtime-component-macro v29.0.1
[INFO] [stderr]   Downloaded regalloc2 v0.11.2
[INFO] [stderr]   Downloaded wasmparser v0.243.0
[INFO] [stderr]   Downloaded wasmparser v0.221.3
[INFO] [stderr]   Downloaded wasmtime v29.0.1
[INFO] [stderr]   Downloaded libc v0.2.179
[INFO] [stderr]   Downloaded cranelift-codegen v0.116.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+8c52f735abd1af9a73941b78fe7ed2ab08b9c0dd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c68bb5528643463ed189f892f6b5130e7bb0d452b1b445380bd967d5bf4b6f39
[INFO] running `Command { std: "docker" "start" "-a" "c68bb5528643463ed189f892f6b5130e7bb0d452b1b445380bd967d5bf4b6f39", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c68bb5528643463ed189f892f6b5130e7bb0d452b1b445380bd967d5bf4b6f39", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c68bb5528643463ed189f892f6b5130e7bb0d452b1b445380bd967d5bf4b6f39", kill_on_drop: false }`
[INFO] [stdout] c68bb5528643463ed189f892f6b5130e7bb0d452b1b445380bd967d5bf4b6f39
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+8c52f735abd1af9a73941b78fe7ed2ab08b9c0dd" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4d53568dd044ff1f696fcf41f8148b3babee6b9c9bd2e23fd94eacdd90c0f2e5
[INFO] running `Command { std: "docker" "start" "-a" "4d53568dd044ff1f696fcf41f8148b3babee6b9c9bd2e23fd94eacdd90c0f2e5", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.104
[INFO] [stderr]    Compiling libc v0.2.179
[INFO] [stderr]    Compiling zmij v1.0.10
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]    Compiling cranelift-isle v0.116.1
[INFO] [stderr]     Checking bumpalo v3.19.1
[INFO] [stderr]    Compiling cranelift-codegen-shared v0.116.1
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling serde_json v1.0.148
[INFO] [stderr]    Compiling target-lexicon v0.13.4
[INFO] [stderr]    Compiling cranelift-codegen-meta v0.116.1
[INFO] [stderr]     Checking gimli v0.31.1
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking arbitrary v1.4.2
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling wasmparser v0.221.3
[INFO] [stderr]    Compiling syn v2.0.112
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking cranelift-control v0.116.1
[INFO] [stderr]    Compiling cc v1.2.51
[INFO] [stderr]     Checking semver v1.0.27
[INFO] [stderr]    Compiling wasm-encoder v0.243.0
[INFO] [stderr]    Compiling cpp_demangle v0.4.5
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling indexmap v2.12.1
[INFO] [stderr]    Compiling cranelift-codegen v0.116.1
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling ittapi-sys v0.4.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]    Compiling id-arena v2.2.1
[INFO] [stderr]     Checking winnow v0.7.14
[INFO] [stderr]     Checking leb128 v0.2.5
[INFO] [stderr]    Compiling libm v0.2.15
[INFO] [stderr]     Checking leb128fmt v0.1.0
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]     Checking wasm-encoder v0.221.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling wasmtime-versioned-export-macros v29.0.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling wasmtime-fiber v29.0.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking cobs v0.3.0
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]     Checking dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling wasmtime-cache v29.0.1
[INFO] [stderr]    Compiling wasmtime-component-macro v29.0.1
[INFO] [stderr]    Compiling beef v0.5.2
[INFO] [stderr]     Checking wasmtime-component-util v29.0.1
[INFO] [stderr]     Checking unicode-width v0.2.2
[INFO] [stderr]     Checking uuid v1.19.0
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking wast v243.0.0
[INFO] [stderr]     Checking debugid v0.8.0
[INFO] [stderr]     Checking directories-next v2.0.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling wasmtime v29.0.1
[INFO] [stderr]     Checking wasmtime-asm-macros v29.0.1
[INFO] [stderr]    Compiling wit-parser v0.221.3
[INFO] [stderr]     Checking memfd v0.6.5
[INFO] [stderr]     Checking cranelift-bitset v0.116.1
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking cranelift-entity v0.116.1
[INFO] [stderr]     Checking regalloc2 v0.11.2
[INFO] [stderr]     Checking cranelift-bforest v0.116.1
[INFO] [stderr]     Checking postcard v1.1.3
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]    Compiling logos-codegen v0.16.0
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]    Compiling wasmtime-wit-bindgen v29.0.1
[INFO] [stderr]     Checking wat v1.243.0
[INFO] [stderr]     Checking wasmtime-math v29.0.1
[INFO] [stderr]     Checking fxprof-processed-profile v0.6.0
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking ittapi v0.4.0
[INFO] [stderr]     Checking wasmtime-jit-debug v29.0.1
[INFO] [stderr]    Compiling logos-derive v0.16.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling trait-variant v0.1.2
[INFO] [stderr]     Checking addr2line v0.24.2
[INFO] [stderr]     Checking wasmtime-jit-icache-coherence v29.0.1
[INFO] [stderr]     Checking sptr v0.3.2
[INFO] [stderr]     Checking wasmtime-slab v29.0.1
[INFO] [stderr]     Checking logos v0.16.0
[INFO] [stderr]     Checking wasmprinter v0.221.3
[INFO] [stderr]     Checking wasmtime-environ v29.0.1
[INFO] [stderr]     Checking cranelift-frontend v0.116.1
[INFO] [stderr]     Checking cranelift-native v0.116.1
[INFO] [stderr]     Checking wasmtime-cranelift v29.0.1
[INFO] [stderr]     Checking star v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::f32::INFINITY`
[INFO] [stdout]  --> src/codegen.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::f32::INFINITY;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IRStruct`
[INFO] [stdout]  --> src/codegen.rs:4:68
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::ir::{IRExpr, IRExprKind, IRFunction, IRProgram, IRStmt, IRStruct};
[INFO] [stdout]   |                                                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Type`
[INFO] [stdout]  --> src/irgen.rs:2:37
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::ast::{BinaryOp, Pattern, Type};
[INFO] [stdout]   |                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Expr`, `Statement`, `TypeKind`, `Type`, and `UnaryOp`
[INFO] [stdout]  --> src/parser/mod.rs:5:28
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::ast::{BinaryOp, Expr, Program, Statement, Type, TypeKind, UnaryOp};
[INFO] [stdout]   |                            ^^^^           ^^^^^^^^^  ^^^^  ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/types/stmt.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::tast::{self, TypedProgram, TypedStatement};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::INFINITY`
[INFO] [stdout]  --> src/codegen.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::f32::INFINITY;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IRStruct`
[INFO] [stdout]  --> src/codegen.rs:4:68
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::ir::{IRExpr, IRExprKind, IRFunction, IRProgram, IRStmt, IRStruct};
[INFO] [stdout]   |                                                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Type`
[INFO] [stdout]  --> src/irgen.rs:2:37
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::ast::{BinaryOp, Pattern, Type};
[INFO] [stdout]   |                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Expr`, `Statement`, `TypeKind`, `Type`, and `UnaryOp`
[INFO] [stdout]  --> src/parser/mod.rs:5:28
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::ast::{BinaryOp, Expr, Program, Statement, Type, TypeKind, UnaryOp};
[INFO] [stdout]   |                            ^^^^           ^^^^^^^^^  ^^^^  ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/types/stmt.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::tast::{self, TypedProgram, TypedStatement};
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `object`
[INFO] [stdout]    --> src/codegen.rs:316:60
[INFO] [stdout]     |
[INFO] [stdout] 316 |                 } else if let IRExprKind::FieldReference { object, offset } = &left.node {
[INFO] [stdout]     |                                                            ^^^^^^ help: try ignoring the field: `object: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/codegen.rs:316:68
[INFO] [stdout]     |
[INFO] [stdout] 316 |                 } else if let IRExprKind::FieldReference { object, offset } = &left.node {
[INFO] [stdout]     |                                                                    ^^^^^^ help: try ignoring the field: `offset: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> src/flatten.rs:59:21
[INFO] [stdout]    |
[INFO] [stdout] 59 |                     condition,
[INFO] [stdout]    |                     ^^^^^^^^^ help: try ignoring the field: `condition: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> src/flatten.rs:68:44
[INFO] [stdout]    |
[INFO] [stdout] 68 |                 AnalyzedStatement::While { condition, body } => {
[INFO] [stdout]    |                                            ^^^^^^^^^ help: try ignoring the field: `condition: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> src/flatten.rs:73:21
[INFO] [stdout]    |
[INFO] [stdout] 73 |                     condition,
[INFO] [stdout]    |                     ^^^^^^^^^ help: try ignoring the field: `condition: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/flatten.rs:146:14
[INFO] [stdout]     |
[INFO] [stdout] 146 |         for (name, ty, index, captured) in params.iter() {
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/flatten.rs:176:28
[INFO] [stdout]     |
[INFO] [stdout] 176 |                 for (n, t, k) in captures.iter() {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fn_type`
[INFO] [stdout]    --> src/flatten.rs:274:21
[INFO] [stdout]     |
[INFO] [stdout] 274 |                 let fn_type = Type {
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `captured`
[INFO] [stdout]   --> src/irgen.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 |                 captured,
[INFO] [stdout]    |                 ^^^^^^^^ help: try ignoring the field: `captured: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/irgen.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 index,
[INFO] [stdout]    |                 ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/irgen.rs:91:17
[INFO] [stdout]    |
[INFO] [stdout] 91 |                 name,
[INFO] [stdout]    |                 ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `captured`
[INFO] [stdout]   --> src/irgen.rs:94:17
[INFO] [stdout]    |
[INFO] [stdout] 94 |                 captured,
[INFO] [stdout]    |                 ^^^^^^^^ help: try ignoring the field: `captured: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/irgen.rs:107:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 name,
[INFO] [stdout]     |                 ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/irgen.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 ty,
[INFO] [stdout]     |                 ^^ help: try ignoring the field: `ty: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `captured`
[INFO] [stdout]    --> src/irgen.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 captured,
[INFO] [stdout]     |                 ^^^^^^^^ help: try ignoring the field: `captured: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/irgen.rs:217:32
[INFO] [stdout]     |
[INFO] [stdout] 217 |             Expr::Identifier { name, index } => IRExpr {
[INFO] [stdout]     |                                ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/irgen.rs:285:45
[INFO] [stdout]     |
[INFO] [stdout] 285 |                 Expr::Identifier { name: _, index } => {
[INFO] [stdout]     |                                             ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/irgen.rs:398:32
[INFO] [stdout]     |
[INFO] [stdout] 398 |             Pattern::MatchType(ty) => todo!(),
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/irgen.rs:418:20
[INFO] [stdout]     |
[INFO] [stdout] 418 |         for (name, ty) in &structure.fields {
[INFO] [stdout]     |                    ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/types/expr.rs:325:17
[INFO] [stdout]     |
[INFO] [stdout] 325 |                 expr,
[INFO] [stdout]     |                 ^^^^ help: try ignoring the field: `expr: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `binding`
[INFO] [stdout]    --> src/types/expr.rs:326:17
[INFO] [stdout]     |
[INFO] [stdout] 326 |                 binding,
[INFO] [stdout]     |                 ^^^^^^^ help: try ignoring the field: `binding: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arms`
[INFO] [stdout]    --> src/types/expr.rs:327:17
[INFO] [stdout]     |
[INFO] [stdout] 327 |                 arms,
[INFO] [stdout]     |                 ^^^^ help: try ignoring the field: `arms: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CaptureKind` is more private than the item `Flattener::gather_captures`
[INFO] [stdout]   --> src/flatten.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | /     pub fn gather_captures(
[INFO] [stdout] 52 | |         &mut self,
[INFO] [stdout] 53 | |         body: &Vec<AnalyzedStatement>,
[INFO] [stdout] 54 | |     ) -> Vec<(String, Type, CaptureKind)> {
[INFO] [stdout]    | |_________________________________________^ method `Flattener::gather_captures` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `CaptureKind` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/flatten.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | enum CaptureKind {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CaptureKind` is more private than the item `Flattener::scan_params`
[INFO] [stdout]    --> src/flatten.rs:136:5
[INFO] [stdout]     |
[INFO] [stdout] 136 | /     pub fn scan_params(
[INFO] [stdout] 137 | |         &mut self,
[INFO] [stdout] 138 | |         params: &Vec<(
[INFO] [stdout] 139 | |             String,
[INFO] [stdout] ...   |
[INFO] [stdout] 143 | |         )>,
[INFO] [stdout] 144 | |     ) -> Vec<(String, Type, CaptureKind)> {
[INFO] [stdout]     | |_________________________________________^ method `Flattener::scan_params` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `CaptureKind` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/flatten.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout]  35 | enum CaptureKind {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CaptureKind` is more private than the item `Flattener::flatten_stmt`
[INFO] [stdout]    --> src/flatten.rs:155:5
[INFO] [stdout]     |
[INFO] [stdout] 155 | /     pub fn flatten_stmt(
[INFO] [stdout] 156 | |         &mut self,
[INFO] [stdout] 157 | |         stmt: &AnalyzedStatement,
[INFO] [stdout] 158 | |         captures: Vec<(String, Type, CaptureKind)>,
[INFO] [stdout] 159 | |         prev: String,
[INFO] [stdout] 160 | |     ) -> AnalyzedStatement {
[INFO] [stdout]     | |__________________________^ method `Flattener::flatten_stmt` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `CaptureKind` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/flatten.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout]  35 | enum CaptureKind {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `VariableKind` is more private than the item `LocalsIndexer::lookup`
[INFO] [stdout]    --> src/locals.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     pub fn lookup(&mut self, name: &str) -> VariableKind {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `LocalsIndexer::lookup` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `VariableKind` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/locals.rs:15:1
[INFO] [stdout]     |
[INFO] [stdout]  15 | enum VariableKind {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/aast.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |     Error {
[INFO] [stdout]     |     ----- field in this variant
[INFO] [stdout] 117 |         name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AnalyzedStatement` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Error` is never constructed
[INFO] [stdout]   --> src/ast.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub enum TypeKind {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 56 |     Error {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TypeKind` 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 `MatchAll` is never constructed
[INFO] [stdout]    --> src/ast.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub enum Pattern {
[INFO] [stdout]     |          ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 122 |     MatchAll,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Pattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ir.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |     UnwrapError(Box<IRExpr>),
[INFO] [stdout]    |     ----------- ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IRExprKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 74 -     UnwrapError(Box<IRExpr>),
[INFO] [stdout] 74 +     UnwrapError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Match` is never constructed
[INFO] [stdout]   --> src/ir.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum IRExprKind {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 68 |     Match {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IRExprKind` 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 `Null`, `Error`, `Type`, and `All` are never constructed
[INFO] [stdout]   --> src/ir.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum IRPattern {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 80 |     Null,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 81 |     Error,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 82 |     Type(u32),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 83 |     All,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IRPattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ir.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |     Produce(IRExpr),
[INFO] [stdout]     |     ------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IRStmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 112 -     Produce(IRExpr),
[INFO] [stdout] 112 +     Produce(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `captures_struct` and `func_index` are never read
[INFO] [stdout]    --> src/ir.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub struct IRFunction {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub captures_struct: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 127 |     pub body: Vec<IRStmt>,
[INFO] [stdout] 128 |     pub func_index: u32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IRFunction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `offsets` and `kind` are never read
[INFO] [stdout]    --> src/ir.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub struct IRStruct {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub offsets: Vec<u32>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 137 |     pub kind: IRStructKind,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IRStruct` 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 `User` and `Error` are never constructed
[INFO] [stdout]    --> src/ir.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub enum IRStructKind {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] 144 |     User,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 145 |     Captures,
[INFO] [stdout] 146 |     Error,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IRStructKind` 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 `lower_pattern` is never used
[INFO] [stdout]    --> src/irgen.rs:394:8
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl IRGenerator {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 394 |     fn lower_pattern(&mut self, pattern: &Pattern) -> IRPattern {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Match` is never constructed
[INFO] [stdout]   --> src/tast.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum Expr {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 48 |     Match {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` 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 `types_equal` is never used
[INFO] [stdout]   --> src/types/mod.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl TypeChecker {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn types_equal(&self, a: &Type, b: &Type) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `object`
[INFO] [stdout]    --> src/codegen.rs:316:60
[INFO] [stdout]     |
[INFO] [stdout] 316 |                 } else if let IRExprKind::FieldReference { object, offset } = &left.node {
[INFO] [stdout]     |                                                            ^^^^^^ help: try ignoring the field: `object: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/codegen.rs:316:68
[INFO] [stdout]     |
[INFO] [stdout] 316 |                 } else if let IRExprKind::FieldReference { object, offset } = &left.node {
[INFO] [stdout]     |                                                                    ^^^^^^ help: try ignoring the field: `offset: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> src/flatten.rs:59:21
[INFO] [stdout]    |
[INFO] [stdout] 59 |                     condition,
[INFO] [stdout]    |                     ^^^^^^^^^ help: try ignoring the field: `condition: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> src/flatten.rs:68:44
[INFO] [stdout]    |
[INFO] [stdout] 68 |                 AnalyzedStatement::While { condition, body } => {
[INFO] [stdout]    |                                            ^^^^^^^^^ help: try ignoring the field: `condition: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `condition`
[INFO] [stdout]   --> src/flatten.rs:73:21
[INFO] [stdout]    |
[INFO] [stdout] 73 |                     condition,
[INFO] [stdout]    |                     ^^^^^^^^^ help: try ignoring the field: `condition: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/flatten.rs:146:14
[INFO] [stdout]     |
[INFO] [stdout] 146 |         for (name, ty, index, captured) in params.iter() {
[INFO] [stdout]     |              ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/flatten.rs:176:28
[INFO] [stdout]     |
[INFO] [stdout] 176 |                 for (n, t, k) in captures.iter() {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fn_type`
[INFO] [stdout]    --> src/flatten.rs:274:21
[INFO] [stdout]     |
[INFO] [stdout] 274 |                 let fn_type = Type {
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `captured`
[INFO] [stdout]   --> src/irgen.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 |                 captured,
[INFO] [stdout]    |                 ^^^^^^^^ help: try ignoring the field: `captured: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/irgen.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 index,
[INFO] [stdout]    |                 ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/irgen.rs:91:17
[INFO] [stdout]    |
[INFO] [stdout] 91 |                 name,
[INFO] [stdout]    |                 ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `captured`
[INFO] [stdout]   --> src/irgen.rs:94:17
[INFO] [stdout]    |
[INFO] [stdout] 94 |                 captured,
[INFO] [stdout]    |                 ^^^^^^^^ help: try ignoring the field: `captured: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/irgen.rs:107:17
[INFO] [stdout]     |
[INFO] [stdout] 107 |                 name,
[INFO] [stdout]     |                 ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/irgen.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 ty,
[INFO] [stdout]     |                 ^^ help: try ignoring the field: `ty: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `captured`
[INFO] [stdout]    --> src/irgen.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 captured,
[INFO] [stdout]     |                 ^^^^^^^^ help: try ignoring the field: `captured: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/irgen.rs:217:32
[INFO] [stdout]     |
[INFO] [stdout] 217 |             Expr::Identifier { name, index } => IRExpr {
[INFO] [stdout]     |                                ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]    --> src/irgen.rs:285:45
[INFO] [stdout]     |
[INFO] [stdout] 285 |                 Expr::Identifier { name: _, index } => {
[INFO] [stdout]     |                                             ^^^^^ help: try ignoring the field: `index: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/irgen.rs:398:32
[INFO] [stdout]     |
[INFO] [stdout] 398 |             Pattern::MatchType(ty) => todo!(),
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/irgen.rs:418:20
[INFO] [stdout]     |
[INFO] [stdout] 418 |         for (name, ty) in &structure.fields {
[INFO] [stdout]     |                    ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/types/expr.rs:325:17
[INFO] [stdout]     |
[INFO] [stdout] 325 |                 expr,
[INFO] [stdout]     |                 ^^^^ help: try ignoring the field: `expr: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `binding`
[INFO] [stdout]    --> src/types/expr.rs:326:17
[INFO] [stdout]     |
[INFO] [stdout] 326 |                 binding,
[INFO] [stdout]     |                 ^^^^^^^ help: try ignoring the field: `binding: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arms`
[INFO] [stdout]    --> src/types/expr.rs:327:17
[INFO] [stdout]     |
[INFO] [stdout] 327 |                 arms,
[INFO] [stdout]     |                 ^^^^ help: try ignoring the field: `arms: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CaptureKind` is more private than the item `Flattener::gather_captures`
[INFO] [stdout]   --> src/flatten.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | /     pub fn gather_captures(
[INFO] [stdout] 52 | |         &mut self,
[INFO] [stdout] 53 | |         body: &Vec<AnalyzedStatement>,
[INFO] [stdout] 54 | |     ) -> Vec<(String, Type, CaptureKind)> {
[INFO] [stdout]    | |_________________________________________^ method `Flattener::gather_captures` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `CaptureKind` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/flatten.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | enum CaptureKind {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CaptureKind` is more private than the item `Flattener::scan_params`
[INFO] [stdout]    --> src/flatten.rs:136:5
[INFO] [stdout]     |
[INFO] [stdout] 136 | /     pub fn scan_params(
[INFO] [stdout] 137 | |         &mut self,
[INFO] [stdout] 138 | |         params: &Vec<(
[INFO] [stdout] 139 | |             String,
[INFO] [stdout] ...   |
[INFO] [stdout] 143 | |         )>,
[INFO] [stdout] 144 | |     ) -> Vec<(String, Type, CaptureKind)> {
[INFO] [stdout]     | |_________________________________________^ method `Flattener::scan_params` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `CaptureKind` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/flatten.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout]  35 | enum CaptureKind {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CaptureKind` is more private than the item `Flattener::flatten_stmt`
[INFO] [stdout]    --> src/flatten.rs:155:5
[INFO] [stdout]     |
[INFO] [stdout] 155 | /     pub fn flatten_stmt(
[INFO] [stdout] 156 | |         &mut self,
[INFO] [stdout] 157 | |         stmt: &AnalyzedStatement,
[INFO] [stdout] 158 | |         captures: Vec<(String, Type, CaptureKind)>,
[INFO] [stdout] 159 | |         prev: String,
[INFO] [stdout] 160 | |     ) -> AnalyzedStatement {
[INFO] [stdout]     | |__________________________^ method `Flattener::flatten_stmt` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `CaptureKind` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/flatten.rs:35:1
[INFO] [stdout]     |
[INFO] [stdout]  35 | enum CaptureKind {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `VariableKind` is more private than the item `LocalsIndexer::lookup`
[INFO] [stdout]    --> src/locals.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     pub fn lookup(&mut self, name: &str) -> VariableKind {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `LocalsIndexer::lookup` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `VariableKind` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/locals.rs:15:1
[INFO] [stdout]     |
[INFO] [stdout]  15 | enum VariableKind {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/aast.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |     Error {
[INFO] [stdout]     |     ----- field in this variant
[INFO] [stdout] 117 |         name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AnalyzedStatement` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Error` is never constructed
[INFO] [stdout]   --> src/ast.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub enum TypeKind {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 56 |     Error {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TypeKind` 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 `MatchAll` is never constructed
[INFO] [stdout]    --> src/ast.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub enum Pattern {
[INFO] [stdout]     |          ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 122 |     MatchAll,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Pattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/ir.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |     UnwrapError(Box<IRExpr>),
[INFO] [stdout]    |     ----------- ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IRExprKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 74 -     UnwrapError(Box<IRExpr>),
[INFO] [stdout] 74 +     UnwrapError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Match` is never constructed
[INFO] [stdout]   --> src/ir.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum IRExprKind {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 68 |     Match {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IRExprKind` 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 `Null`, `Error`, `Type`, and `All` are never constructed
[INFO] [stdout]   --> src/ir.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum IRPattern {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 80 |     Null,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 81 |     Error,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 82 |     Type(u32),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 83 |     All,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IRPattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/ir.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |     Produce(IRExpr),
[INFO] [stdout]     |     ------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IRStmt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 112 -     Produce(IRExpr),
[INFO] [stdout] 112 +     Produce(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `captures_struct` and `func_index` are never read
[INFO] [stdout]    --> src/ir.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub struct IRFunction {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub captures_struct: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 127 |     pub body: Vec<IRStmt>,
[INFO] [stdout] 128 |     pub func_index: u32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IRFunction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `offsets` and `kind` are never read
[INFO] [stdout]    --> src/ir.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub struct IRStruct {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub offsets: Vec<u32>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 137 |     pub kind: IRStructKind,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IRStruct` 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 `User` and `Error` are never constructed
[INFO] [stdout]    --> src/ir.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub enum IRStructKind {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] 144 |     User,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 145 |     Captures,
[INFO] [stdout] 146 |     Error,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IRStructKind` 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 `lower_pattern` is never used
[INFO] [stdout]    --> src/irgen.rs:394:8
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl IRGenerator {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 394 |     fn lower_pattern(&mut self, pattern: &Pattern) -> IRPattern {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Match` is never constructed
[INFO] [stdout]   --> src/tast.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum Expr {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 48 |     Match {
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Expr` 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 `types_equal` is never used
[INFO] [stdout]   --> src/types/mod.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl TypeChecker {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn types_equal(&self, a: &Type, b: &Type) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 32s
[INFO] running `Command { std: "docker" "inspect" "4d53568dd044ff1f696fcf41f8148b3babee6b9c9bd2e23fd94eacdd90c0f2e5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4d53568dd044ff1f696fcf41f8148b3babee6b9c9bd2e23fd94eacdd90c0f2e5", kill_on_drop: false }`
[INFO] [stdout] 4d53568dd044ff1f696fcf41f8148b3babee6b9c9bd2e23fd94eacdd90c0f2e5
