[INFO] cloning repository https://github.com/jjszaniszlo/jace
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jjszaniszlo/jace" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjjszaniszlo%2Fjace", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjjszaniszlo%2Fjace'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 317514c15a3d0e92db586f88f7734db9573c65ba
[INFO] checking jjszaniszlo/jace against try#6757d700f93f6d16c8b39cf79e96b019bd570e7d for pr-155299
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjjszaniszlo%2Fjace" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jjszaniszlo/jace
[INFO] finished tweaking git repo https://github.com/jjszaniszlo/jace
[INFO] tweaked toml for git repo https://github.com/jjszaniszlo/jace written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jjszaniszlo/jace on toolchain 6757d700f93f6d16c8b39cf79e96b019bd570e7d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+6757d700f93f6d16c8b39cf79e96b019bd570e7d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jjszaniszlo/jace 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" "+6757d700f93f6d16c8b39cf79e96b019bd570e7d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded which v7.0.2
[INFO] [stderr]   Downloaded mlua-sys v0.6.7
[INFO] [stderr]   Downloaded miette-derive v7.5.0
[INFO] [stderr]   Downloaded owo-colors v4.1.0
[INFO] [stderr]   Downloaded miette v7.5.0
[INFO] [stderr]   Downloaded mlua v0.10.3
[INFO] [stderr]   Downloaded bstr v1.11.3
[INFO] [stderr]   Downloaded lua-src v547.0.0
[INFO] [stderr]   Downloaded luajit-src v210.5.12+a4f56a4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+6757d700f93f6d16c8b39cf79e96b019bd570e7d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4a998088244cda2e21e2d13c5742540f6472a5c255f43588640ac750aaf9f5c8
[INFO] running `Command { std: "docker" "start" "-a" "4a998088244cda2e21e2d13c5742540f6472a5c255f43588640ac750aaf9f5c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4a998088244cda2e21e2d13c5742540f6472a5c255f43588640ac750aaf9f5c8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a998088244cda2e21e2d13c5742540f6472a5c255f43588640ac750aaf9f5c8", kill_on_drop: false }`
[INFO] [stdout] 4a998088244cda2e21e2d13c5742540f6472a5c255f43588640ac750aaf9f5c8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+6757d700f93f6d16c8b39cf79e96b019bd570e7d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 27107a834d3a4851a389ad2e3d52e945e0eed399eb85c9cfe70c71eeaf20f7fd
[INFO] running `Command { std: "docker" "start" "-a" "27107a834d3a4851a389ad2e3d52e945e0eed399eb85c9cfe70c71eeaf20f7fd", kill_on_drop: false }`
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling bitflags v2.8.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling cc v1.2.12
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling env_home v0.1.0
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]     Checking miniz_oxide v0.8.3
[INFO] [stderr]     Checking object v0.36.7
[INFO] [stderr]    Compiling owo-colors v4.1.0
[INFO] [stderr]     Checking rustc-demangle v0.1.24
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling thiserror v2.0.11
[INFO] [stderr]     Checking textwrap v0.16.1
[INFO] [stderr]     Checking clap_builder v4.5.27
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]    Compiling lua-src v547.0.0
[INFO] [stderr]     Checking terminal_size v0.4.1
[INFO] [stderr]     Checking bstr v1.11.3
[INFO] [stderr]    Compiling which v7.0.2
[INFO] [stderr]    Compiling luajit-src v210.5.12+a4f56a4
[INFO] [stderr]    Compiling mlua-sys v0.6.7
[INFO] [stderr]     Checking backtrace v0.3.74
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling miette-derive v7.5.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.11
[INFO] [stderr]    Compiling clap_derive v4.5.28
[INFO] [stderr]     Checking backtrace-ext v0.2.1
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking miette v7.5.0
[INFO] [stderr]     Checking clap v4.5.28
[INFO] [stderr]     Checking mlua v0.10.3
[INFO] [stderr]     Checking jace v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::def::parse_fn_body`
[INFO] [stdout]   --> src/parser/expr.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::def::parse_fn_body;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/parser/expr.rs:226:33
[INFO] [stdout]     |
[INFO] [stdout] 226 |         parse_identifier().map(|(i), span| Expr::IdentExpr(i, span)),
[INFO] [stdout]     |                                 ^ ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 226 -         parse_identifier().map(|(i), span| Expr::IdentExpr(i, span)),
[INFO] [stdout] 226 +         parse_identifier().map(|i , span| Expr::IdentExpr(i, span)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> src/parser/def.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 |         .map(|(defs), span| Module(defs, span))
[INFO] [stdout]    |               ^    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 16 -         .map(|(defs), span| Module(defs, span))
[INFO] [stdout] 16 +         .map(|defs, span| Module(defs, span))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `left` and `not`
[INFO] [stdout]   --> src/parser/typeparam.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 11 | use super::combinator::{left, not, zero_or_more};
[INFO] [stdout]    |                         ^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `codegen::emitter`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use codegen::emitter;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `miette::Report`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use miette::Report;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Range`
[INFO] [stdout]    --> src/parser/combinator.rs:246:5
[INFO] [stdout]     |
[INFO] [stdout] 246 | use std::ops::Range;
[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: `super::def::parse_fn_body`
[INFO] [stdout]   --> src/parser/expr.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::def::parse_fn_body;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/parser/expr.rs:226:33
[INFO] [stdout]     |
[INFO] [stdout] 226 |         parse_identifier().map(|(i), span| Expr::IdentExpr(i, span)),
[INFO] [stdout]     |                                 ^ ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 226 -         parse_identifier().map(|(i), span| Expr::IdentExpr(i, span)),
[INFO] [stdout] 226 +         parse_identifier().map(|i , span| Expr::IdentExpr(i, span)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> src/parser/def.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 |         .map(|(defs), span| Module(defs, span))
[INFO] [stdout]    |               ^    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 16 -         .map(|(defs), span| Module(defs, span))
[INFO] [stdout] 16 +         .map(|defs, span| Module(defs, span))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `left` and `not`
[INFO] [stdout]   --> src/parser/typeparam.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 11 | use super::combinator::{left, not, zero_or_more};
[INFO] [stdout]    |                         ^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::ast::*`
[INFO] [stdout]    --> src/codegen/emitter.rs:463:9
[INFO] [stdout]     |
[INFO] [stdout] 463 |     use crate::parser::ast::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::prelude::*`
[INFO] [stdout]    --> src/codegen/emitter.rs:464:9
[INFO] [stdout]     |
[INFO] [stdout] 464 |     use crate::parser::prelude::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TokenKind` and `Token`
[INFO] [stdout]    --> src/codegen/emitter.rs:465:31
[INFO] [stdout]     |
[INFO] [stdout] 465 |     use crate::lexer::token::{Token, TokenKind};
[INFO] [stdout]     |                               ^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::parser::tokenstream::TokenStream`
[INFO] [stdout]    --> src/codegen/emitter.rs:467:9
[INFO] [stdout]     |
[INFO] [stdout] 467 |     use crate::parser::tokenstream::TokenStream;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `codegen::emitter`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use codegen::emitter;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `miette::Report`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use miette::Report;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytes`
[INFO] [stdout]    --> src/lexer/lexer.rs:263:13
[INFO] [stdout]     |
[INFO] [stdout] 263 |         let bytes = operator.len();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/lexer/lexer.rs:265:18
[INFO] [stdout]     |
[INFO] [stdout] 265 |             Some(c @ ('=' | '!' | '<' | '>' | '+' | '-' | '/' | '*')) => {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/parser/combinator.rs:67:34
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pair(p1, p2).map(|(left, _), s| left)
[INFO] [stdout]    |                                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/parser/combinator.rs:77:31
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pair(p1, p2).map(|(_, r), s| r)
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err1`
[INFO] [stdout]   --> src/parser/combinator.rs:89:17
[INFO] [stdout]    |
[INFO] [stdout] 89 |             Err(err1) => match p2.parse_next(input) {
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_err1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `next`
[INFO] [stdout]    --> src/parser/combinator.rs:213:17
[INFO] [stdout]     |
[INFO] [stdout] 213 |             Ok((next, a, s)) =>
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_next`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/parser/def.rs:241:18
[INFO] [stdout]     |
[INFO] [stdout] 241 |         .map(|t, s |
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literal`
[INFO] [stdout]    --> src/codegen/emitter.rs:149:48
[INFO] [stdout]     |
[INFO] [stdout] 149 |             FnPatternParam::BindToLiteralParam(literal, _) => todo!(),
[INFO] [stdout]     |                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifiers`
[INFO] [stdout]    --> src/codegen/emitter.rs:151:55
[INFO] [stdout]     |
[INFO] [stdout] 151 |             FnPatternParam::BindToSetDeconstructParam(identifiers, _) => todo!(),
[INFO] [stdout]     |                                                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifier`
[INFO] [stdout]    --> src/codegen/emitter.rs:152:52
[INFO] [stdout]     |
[INFO] [stdout] 152 |             FnPatternParam::BindToSetSelectorParam(identifier, identifier1, _) => todo!(),
[INFO] [stdout]     |                                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifier1`
[INFO] [stdout]    --> src/codegen/emitter.rs:152:64
[INFO] [stdout]     |
[INFO] [stdout] 152 |             FnPatternParam::BindToSetSelectorParam(identifier, identifier1, _) => todo!(),
[INFO] [stdout]     |                                                                ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifier`
[INFO] [stdout]    --> src/codegen/emitter.rs:153:56
[INFO] [stdout]     |
[INFO] [stdout] 153 |             FnPatternParam::BindToTypeConstructorParam(identifier, fn_pattern_params, _) => todo!(),
[INFO] [stdout]     |                                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fn_pattern_params`
[INFO] [stdout]    --> src/codegen/emitter.rs:153:68
[INFO] [stdout]     |
[INFO] [stdout] 153 |             FnPatternParam::BindToTypeConstructorParam(identifier, fn_pattern_params, _) => todo!(),
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_pattern_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/codegen/emitter.rs:170:34
[INFO] [stdout]     |
[INFO] [stdout] 170 |             Expr::SetExpr(items, range) => {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exprs`
[INFO] [stdout]    --> src/codegen/emitter.rs:190:29
[INFO] [stdout]     |
[INFO] [stdout] 190 |             Expr::TupleExpr(exprs, _) => todo!(),
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_exprs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifier`
[INFO] [stdout]    --> src/codegen/emitter.rs:232:28
[INFO] [stdout]     |
[INFO] [stdout] 232 |             Expr::CaseExpr(identifier, items, _) => todo!(),
[INFO] [stdout]     |                            ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/codegen/emitter.rs:232:40
[INFO] [stdout]     |
[INFO] [stdout] 232 |             Expr::CaseExpr(identifier, items, _) => todo!(),
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `member_expr`
[INFO] [stdout]    --> src/codegen/emitter.rs:259:30
[INFO] [stdout]     |
[INFO] [stdout] 259 |             Expr::MemberExpr(member_expr, _) => todo!(),
[INFO] [stdout]     |                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_member_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/codegen/emitter.rs:446:25
[INFO] [stdout]     |
[INFO] [stdout] 446 |             Stmt::Empty(range) => todo!(),
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifier1`
[INFO] [stdout]    --> src/codegen/emitter.rs:447:42
[INFO] [stdout]     |
[INFO] [stdout] 447 |             Stmt::AssignStmt(identifier, identifier1, expr, range) => {
[INFO] [stdout]     |                                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/codegen/emitter.rs:447:61
[INFO] [stdout]     |
[INFO] [stdout] 447 |             Stmt::AssignStmt(identifier, identifier1, expr, range) => {
[INFO] [stdout]     |                                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/codegen/emitter.rs:450:44
[INFO] [stdout]     |
[INFO] [stdout] 450 |             Stmt::ProcCallStmt(identifier, range) => {
[INFO] [stdout]     |                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/codegen/emitter.rs:453:28
[INFO] [stdout]     |
[INFO] [stdout] 453 |             Stmt::CaseStmt(expr, items, range) => todo!(),
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/codegen/emitter.rs:453:34
[INFO] [stdout]     |
[INFO] [stdout] 453 |             Stmt::CaseStmt(expr, items, range) => todo!(),
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/codegen/emitter.rs:453:41
[INFO] [stdout]     |
[INFO] [stdout] 453 |             Stmt::CaseStmt(expr, items, range) => todo!(),
[INFO] [stdout]     |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifiers`
[INFO] [stdout]    --> src/codegen/emitter.rs:454:35
[INFO] [stdout]     |
[INFO] [stdout] 454 |             Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(),
[INFO] [stdout]     |                                   ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifiers1`
[INFO] [stdout]    --> src/codegen/emitter.rs:454:48
[INFO] [stdout]     |
[INFO] [stdout] 454 |             Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(),
[INFO] [stdout]     |                                                ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/codegen/emitter.rs:454:62
[INFO] [stdout]     |
[INFO] [stdout] 454 |             Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(),
[INFO] [stdout]     |                                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/codegen/emitter.rs:454:68
[INFO] [stdout]     |
[INFO] [stdout] 454 |             Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(),
[INFO] [stdout]     |                                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifiers`
[INFO] [stdout]    --> src/codegen/emitter.rs:455:44
[INFO] [stdout]     |
[INFO] [stdout] 455 |             Stmt::SetDeconstructAssignStmt(identifiers, expr, range) => todo!(),
[INFO] [stdout]     |                                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/codegen/emitter.rs:455:57
[INFO] [stdout]     |
[INFO] [stdout] 455 |             Stmt::SetDeconstructAssignStmt(identifiers, expr, range) => todo!(),
[INFO] [stdout]     |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/codegen/emitter.rs:455:63
[INFO] [stdout]     |
[INFO] [stdout] 455 |             Stmt::SetDeconstructAssignStmt(identifiers, expr, range) => todo!(),
[INFO] [stdout]     |                                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytes`
[INFO] [stdout]    --> src/lexer/lexer.rs:263:13
[INFO] [stdout]     |
[INFO] [stdout] 263 |         let bytes = operator.len();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/lexer/lexer.rs:265:18
[INFO] [stdout]     |
[INFO] [stdout] 265 |             Some(c @ ('=' | '!' | '<' | '>' | '+' | '-' | '/' | '*')) => {
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let mut lexer = Lexer::new(jcf).into_iter();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/main.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |             Err(e) => todo!(),
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let mut lexer = Lexer::new(jcf).into_iter();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/main.rs:104:17
[INFO] [stdout]     |
[INFO] [stdout] 104 |             Err(e) => todo!(),
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CombineSourceSpan` is never used
[INFO] [stdout]  --> src/err.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub trait CombineSourceSpan {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JaceFileMap` is never constructed
[INFO] [stdout]   --> src/jace_file.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct JaceFileMap<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, and `get` are never used
[INFO] [stdout]   --> src/jace_file.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl<'a> JaceFileMap<'a> {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 55 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn add(&mut self, jace_file: JaceFile<'a>) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn get(&self, id: usize) -> Option<&JaceFile> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `kind` and `span` are never used
[INFO] [stdout]   --> src/lexer/token.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Token {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub fn kind(&self) -> TokenKind {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn span(&self) -> Range<usize> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `bool`, `integer`, `float`, and `identifier` are never used
[INFO] [stdout]    --> src/lexer/token.rs:99:12
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl TokenKind {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout]  99 |     pub fn bool(self) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn integer(self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn float(self) -> f64 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn identifier(self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `RecordType` is never constructed
[INFO] [stdout]   --> src/parser/ast.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum TypeParam {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 57 |     RecordType(Identifier, Vec<(Identifier, TypeParam)>, Range<usize>),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TypeParam` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MethodDef` is never used
[INFO] [stdout]   --> src/parser/ast.rs:79:10
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum MethodDef {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MethodOperator` is never used
[INFO] [stdout]   --> src/parser/ast.rs:89:10
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub enum MethodOperator {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `terminated` is never used
[INFO] [stdout]    --> src/parser/combinator.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub fn terminated<'a, P, A>(parser_take: P, parser_terminator: P) -> impl Parser<'a, A>
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `unrecoverable`, `recoverable`, and `inner` are never used
[INFO] [stdout]   --> src/parser/error.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl ErrorType {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn unrecoverable(self) -> Option<ErrorType> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn recoverable(self) -> Option<ErrorType> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn inner(err: ErrorType) -> Option<ParserError> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `label`, `help`, and `severity` are never used
[INFO] [stdout]   --> src/parser/error.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl ParserError {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn label(&mut self, label: String) -> &mut Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn help(&mut self, help: String) -> &mut Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn severity(&mut self, severity: Severity) -> &mut Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `peek` is never used
[INFO] [stdout]   --> src/parser/tokenstream.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<'a> TokenStream<'a> {
[INFO] [stdout]    | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn peek(&self) -> Option<(TokenKind, Range<usize>)> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TypeCheckerError` is never used
[INFO] [stdout]  --> src/typecheck/mod.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub enum TypeCheckerError {}
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/jace_file.rs:67:16
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub fn get(&self, id: usize) -> Option<&JaceFile> {
[INFO] [stdout]    |                ^^^^^                       ^^^^^^^^^
[INFO] [stdout]    |                |                           ||
[INFO] [stdout]    |                |                           |the same lifetime is hidden here
[INFO] [stdout]    |                |                           the same lifetime is elided here
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub fn get(&self, id: usize) -> Option<&JaceFile<'_>> {
[INFO] [stdout]    |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/parser/tokenstream.rs:26:38
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn new(toks: &'a [Token]) -> TokenStream {
[INFO] [stdout]    |                       --             ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn new(toks: &'a [Token]) -> TokenStream<'a> {
[INFO] [stdout]    |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/parser/combinator.rs:67:34
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pair(p1, p2).map(|(left, _), s| left)
[INFO] [stdout]    |                                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/parser/combinator.rs:77:31
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pair(p1, p2).map(|(_, r), s| r)
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err1`
[INFO] [stdout]   --> src/parser/combinator.rs:89:17
[INFO] [stdout]    |
[INFO] [stdout] 89 |             Err(err1) => match p2.parse_next(input) {
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_err1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `next`
[INFO] [stdout]    --> src/parser/combinator.rs:213:17
[INFO] [stdout]     |
[INFO] [stdout] 213 |             Ok((next, a, s)) =>
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_next`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/parser/def.rs:241:18
[INFO] [stdout]     |
[INFO] [stdout] 241 |         .map(|t, s |
[INFO] [stdout]     |                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `literal`
[INFO] [stdout]    --> src/codegen/emitter.rs:149:48
[INFO] [stdout]     |
[INFO] [stdout] 149 |             FnPatternParam::BindToLiteralParam(literal, _) => todo!(),
[INFO] [stdout]     |                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_literal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifiers`
[INFO] [stdout]    --> src/codegen/emitter.rs:151:55
[INFO] [stdout]     |
[INFO] [stdout] 151 |             FnPatternParam::BindToSetDeconstructParam(identifiers, _) => todo!(),
[INFO] [stdout]     |                                                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifier`
[INFO] [stdout]    --> src/codegen/emitter.rs:152:52
[INFO] [stdout]     |
[INFO] [stdout] 152 |             FnPatternParam::BindToSetSelectorParam(identifier, identifier1, _) => todo!(),
[INFO] [stdout]     |                                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifier1`
[INFO] [stdout]    --> src/codegen/emitter.rs:152:64
[INFO] [stdout]     |
[INFO] [stdout] 152 |             FnPatternParam::BindToSetSelectorParam(identifier, identifier1, _) => todo!(),
[INFO] [stdout]     |                                                                ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifier`
[INFO] [stdout]    --> src/codegen/emitter.rs:153:56
[INFO] [stdout]     |
[INFO] [stdout] 153 |             FnPatternParam::BindToTypeConstructorParam(identifier, fn_pattern_params, _) => todo!(),
[INFO] [stdout]     |                                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fn_pattern_params`
[INFO] [stdout]    --> src/codegen/emitter.rs:153:68
[INFO] [stdout]     |
[INFO] [stdout] 153 |             FnPatternParam::BindToTypeConstructorParam(identifier, fn_pattern_params, _) => todo!(),
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fn_pattern_params`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/codegen/emitter.rs:170:34
[INFO] [stdout]     |
[INFO] [stdout] 170 |             Expr::SetExpr(items, range) => {
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `exprs`
[INFO] [stdout]    --> src/codegen/emitter.rs:190:29
[INFO] [stdout]     |
[INFO] [stdout] 190 |             Expr::TupleExpr(exprs, _) => todo!(),
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_exprs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifier`
[INFO] [stdout]    --> src/codegen/emitter.rs:232:28
[INFO] [stdout]     |
[INFO] [stdout] 232 |             Expr::CaseExpr(identifier, items, _) => todo!(),
[INFO] [stdout]     |                            ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/codegen/emitter.rs:232:40
[INFO] [stdout]     |
[INFO] [stdout] 232 |             Expr::CaseExpr(identifier, items, _) => todo!(),
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `member_expr`
[INFO] [stdout]    --> src/codegen/emitter.rs:259:30
[INFO] [stdout]     |
[INFO] [stdout] 259 |             Expr::MemberExpr(member_expr, _) => todo!(),
[INFO] [stdout]     |                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_member_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/codegen/emitter.rs:446:25
[INFO] [stdout]     |
[INFO] [stdout] 446 |             Stmt::Empty(range) => todo!(),
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifier1`
[INFO] [stdout]    --> src/codegen/emitter.rs:447:42
[INFO] [stdout]     |
[INFO] [stdout] 447 |             Stmt::AssignStmt(identifier, identifier1, expr, range) => {
[INFO] [stdout]     |                                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifier1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/codegen/emitter.rs:447:61
[INFO] [stdout]     |
[INFO] [stdout] 447 |             Stmt::AssignStmt(identifier, identifier1, expr, range) => {
[INFO] [stdout]     |                                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/codegen/emitter.rs:450:44
[INFO] [stdout]     |
[INFO] [stdout] 450 |             Stmt::ProcCallStmt(identifier, range) => {
[INFO] [stdout]     |                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/codegen/emitter.rs:453:28
[INFO] [stdout]     |
[INFO] [stdout] 453 |             Stmt::CaseStmt(expr, items, range) => todo!(),
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/codegen/emitter.rs:453:34
[INFO] [stdout]     |
[INFO] [stdout] 453 |             Stmt::CaseStmt(expr, items, range) => todo!(),
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/codegen/emitter.rs:453:41
[INFO] [stdout]     |
[INFO] [stdout] 453 |             Stmt::CaseStmt(expr, items, range) => todo!(),
[INFO] [stdout]     |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifiers`
[INFO] [stdout]    --> src/codegen/emitter.rs:454:35
[INFO] [stdout]     |
[INFO] [stdout] 454 |             Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(),
[INFO] [stdout]     |                                   ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifiers1`
[INFO] [stdout]    --> src/codegen/emitter.rs:454:48
[INFO] [stdout]     |
[INFO] [stdout] 454 |             Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(),
[INFO] [stdout]     |                                                ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/codegen/emitter.rs:454:62
[INFO] [stdout]     |
[INFO] [stdout] 454 |             Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(),
[INFO] [stdout]     |                                                              ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/codegen/emitter.rs:454:68
[INFO] [stdout]     |
[INFO] [stdout] 454 |             Stmt::MultiAssignStmt(identifiers, identifiers1, expr, range) => todo!(),
[INFO] [stdout]     |                                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `identifiers`
[INFO] [stdout]    --> src/codegen/emitter.rs:455:44
[INFO] [stdout]     |
[INFO] [stdout] 455 |             Stmt::SetDeconstructAssignStmt(identifiers, expr, range) => todo!(),
[INFO] [stdout]     |                                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_identifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expr`
[INFO] [stdout]    --> src/codegen/emitter.rs:455:57
[INFO] [stdout]     |
[INFO] [stdout] 455 |             Stmt::SetDeconstructAssignStmt(identifiers, expr, range) => todo!(),
[INFO] [stdout]     |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_expr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> src/codegen/emitter.rs:455:63
[INFO] [stdout]     |
[INFO] [stdout] 455 |             Stmt::SetDeconstructAssignStmt(identifiers, expr, range) => todo!(),
[INFO] [stdout]     |                                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let mut lexer = Lexer::new(jcf).into_iter();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/main.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |             Err(e) => todo!(),
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let mut lexer = Lexer::new(jcf).into_iter();
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/main.rs:104:17
[INFO] [stdout]     |
[INFO] [stdout] 104 |             Err(e) => todo!(),
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CombineSourceSpan` is never used
[INFO] [stdout]  --> src/err.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub trait CombineSourceSpan {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JaceFileMap` is never constructed
[INFO] [stdout]   --> src/jace_file.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct JaceFileMap<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, and `get` are never used
[INFO] [stdout]   --> src/jace_file.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl<'a> JaceFileMap<'a> {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 55 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn add(&mut self, jace_file: JaceFile<'a>) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn get(&self, id: usize) -> Option<&JaceFile> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `kind` and `span` are never used
[INFO] [stdout]   --> src/lexer/token.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Token {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub fn kind(&self) -> TokenKind {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn span(&self) -> Range<usize> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `bool`, `integer`, `float`, and `identifier` are never used
[INFO] [stdout]    --> src/lexer/token.rs:99:12
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl TokenKind {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout]  99 |     pub fn bool(self) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn integer(self) -> usize {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn float(self) -> f64 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn identifier(self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `RecordType` is never constructed
[INFO] [stdout]   --> src/parser/ast.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum TypeParam {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 57 |     RecordType(Identifier, Vec<(Identifier, TypeParam)>, Range<usize>),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TypeParam` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MethodDef` is never used
[INFO] [stdout]   --> src/parser/ast.rs:79:10
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum MethodDef {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MethodOperator` is never used
[INFO] [stdout]   --> src/parser/ast.rs:89:10
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub enum MethodOperator {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `terminated` is never used
[INFO] [stdout]    --> src/parser/combinator.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub fn terminated<'a, P, A>(parser_take: P, parser_terminator: P) -> impl Parser<'a, A>
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `unrecoverable`, `recoverable`, and `inner` are never used
[INFO] [stdout]   --> src/parser/error.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl ErrorType {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn unrecoverable(self) -> Option<ErrorType> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn recoverable(self) -> Option<ErrorType> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn inner(err: ErrorType) -> Option<ParserError> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `label`, `help`, and `severity` are never used
[INFO] [stdout]   --> src/parser/error.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl ParserError {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn label(&mut self, label: String) -> &mut Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn help(&mut self, help: String) -> &mut Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn severity(&mut self, severity: Severity) -> &mut Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `peek` is never used
[INFO] [stdout]   --> src/parser/tokenstream.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<'a> TokenStream<'a> {
[INFO] [stdout]    | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn peek(&self) -> Option<(TokenKind, Range<usize>)> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TypeCheckerError` is never used
[INFO] [stdout]  --> src/typecheck/mod.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub enum TypeCheckerError {}
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/jace_file.rs:67:16
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub fn get(&self, id: usize) -> Option<&JaceFile> {
[INFO] [stdout]    |                ^^^^^                       ^^^^^^^^^
[INFO] [stdout]    |                |                           ||
[INFO] [stdout]    |                |                           |the same lifetime is hidden here
[INFO] [stdout]    |                |                           the same lifetime is elided here
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub fn get(&self, id: usize) -> Option<&JaceFile<'_>> {
[INFO] [stdout]    |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parser/expr.rs:411:34
[INFO] [stdout]     |
[INFO] [stdout] 411 |     fn mock_token_stream(tokens: &[Token]) -> TokenStream {
[INFO] [stdout]     |                                  ^^^^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 411 |     fn mock_token_stream(tokens: &[Token]) -> TokenStream<'_> {
[INFO] [stdout]     |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parser/def.rs:266:34
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn mock_token_stream(tokens: &[Token]) -> TokenStream {
[INFO] [stdout]     |                                  ^^^^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 266 |     fn mock_token_stream(tokens: &[Token]) -> TokenStream<'_> {
[INFO] [stdout]     |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parser/stmt.rs:160:34
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn mock_token_stream(tokens: &[Token]) -> TokenStream {
[INFO] [stdout]     |                                  ^^^^^^^^     ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 160 |     fn mock_token_stream(tokens: &[Token]) -> TokenStream<'_> {
[INFO] [stdout]     |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/parser/tokenstream.rs:26:38
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn new(toks: &'a [Token]) -> TokenStream {
[INFO] [stdout]    |                       --             ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn new(toks: &'a [Token]) -> TokenStream<'a> {
[INFO] [stdout]    |                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 29.02s
[INFO] running `Command { std: "docker" "inspect" "27107a834d3a4851a389ad2e3d52e945e0eed399eb85c9cfe70c71eeaf20f7fd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "27107a834d3a4851a389ad2e3d52e945e0eed399eb85c9cfe70c71eeaf20f7fd", kill_on_drop: false }`
[INFO] [stdout] 27107a834d3a4851a389ad2e3d52e945e0eed399eb85c9cfe70c71eeaf20f7fd
