[INFO] fetching crate tishlang_compile 4.2.5...
[INFO] testing tishlang_compile-4.2.5 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate tishlang_compile 4.2.5 into /workspace/builds/worker-7-tc1/source
[INFO] started tweaking crates.io crate tishlang_compile 4.2.5
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate tishlang_compile 4.2.5
[INFO] tweaked toml for crates.io crate tishlang_compile 4.2.5 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate tishlang_compile 4.2.5 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate tishlang_compile 4.2.5 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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tishlang_ui v4.2.5
[INFO] [stderr]   Downloaded tishlang_parser v4.2.5
[INFO] [stderr]   Downloaded tishlang_lexer v4.2.5
[INFO] [stderr]   Downloaded tishlang_opt v4.2.5
[INFO] [stderr]   Downloaded tishlang_ast v4.2.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 214be38ef260aaea685067c68bd3cc2b4cc07d5ce935416f6a99a43473ca3464
[INFO] running `Command { std: "docker" "start" "214be38ef260aaea685067c68bd3cc2b4cc07d5ce935416f6a99a43473ca3464", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "214be38ef260aaea685067c68bd3cc2b4cc07d5ce935416f6a99a43473ca3464", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "214be38ef260aaea685067c68bd3cc2b4cc07d5ce935416f6a99a43473ca3464" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "214be38ef260aaea685067c68bd3cc2b4cc07d5ce935416f6a99a43473ca3464", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "214be38ef260aaea685067c68bd3cc2b4cc07d5ce935416f6a99a43473ca3464" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling stacker v0.1.24
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling tishlang_ast v4.2.5
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling tishlang_lexer v4.2.5
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling tishlang_ui v4.2.5
[INFO] [stderr]    Compiling tishlang_opt v4.2.5
[INFO] [stderr]    Compiling ar_archive_writer v0.5.1
[INFO] [stderr]    Compiling psm v0.1.31
[INFO] [stderr]    Compiling tishlang_parser v4.2.5
[INFO] [stderr]    Compiling tishlang_compile v4.2.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `ImportSpecifier`
[INFO] [stdout]   --> src/codegen.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |     FunParam, ImportSpecifier, Literal, LogicalAssignOp, MemberProp, ObjectProp, Program, Span,
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/check.rs:934:21
[INFO] [stdout]     |
[INFO] [stdout] 932 | /                     tishlang_ast::ArrayElement::Expr(x)
[INFO] [stdout] 933 | |                     | tishlang_ast::ArrayElement::Spread(x) => go(x),
[INFO] [stdout]     | |___________________________________________________________- matches all the relevant values
[INFO] [stdout] 934 |                       _ => {}
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/codegen.rs:510:9
[INFO] [stdout]     |
[INFO] [stdout] 510 |     let mut native_build =
[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: `bound`
[INFO] [stdout]     --> src/codegen.rs:5409:20
[INFO] [stdout]      |
[INFO] [stdout] 5409 |             right: bound,
[INFO] [stdout]      |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_bound`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]     --> src/codegen.rs:6533:65
[INFO] [stdout]      |
[INFO] [stdout] 6533 |                         && matches!(init_e, Expr::Ident { name: src, .. })
[INFO] [stdout]      |                                                                 ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:12146:13
[INFO] [stdout]       |
[INFO] [stdout] 12146 |         let mut ce = |x: &Expr, out: &mut HashSet<String>| Self::collect_arrow_params_expr(x, out);
[INFO] [stdout]       |             ----^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:12238:24
[INFO] [stdout]       |
[INFO] [stdout] 12238 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout]       = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:12413:24
[INFO] [stdout]       |
[INFO] [stdout] 12413 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `add_l`
[INFO] [stdout]      --> src/codegen.rs:18256:19
[INFO] [stdout]       |
[INFO] [stdout] 18256 |             left: add_l,
[INFO] [stdout]       |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_add_l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:19023:24
[INFO] [stdout]       |
[INFO] [stdout] 19023 |                     if let CallArg::Expr(arg) | CallArg::Spread(arg) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:19107:24
[INFO] [stdout]       |
[INFO] [stdout] 19107 |                     if let CallArg::Expr(e) | CallArg::Spread(e) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:19214:13
[INFO] [stdout]       |
[INFO] [stdout] 19214 |         let mut scan = |e: &Expr| {
[INFO] [stdout]       |             ----^^^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:19784:24
[INFO] [stdout]       |
[INFO] [stdout] 19784 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:19806:24
[INFO] [stdout]       |
[INFO] [stdout] 19806 |                     if let ArrayElement::Expr(x) | ArrayElement::Spread(x) = el {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:20055:24
[INFO] [stdout]       |
[INFO] [stdout] 20055 |                     if let CallArg::Expr(e) | CallArg::Spread(e) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:20063:24
[INFO] [stdout]       |
[INFO] [stdout] 20063 |                     if let CallArg::Expr(e) | CallArg::Spread(e) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]      --> src/codegen.rs:20379:13
[INFO] [stdout]       |
[INFO] [stdout] 20349 | /             Statement::Switch {
[INFO] [stdout] 20350 | |                 cases,
[INFO] [stdout] 20351 | |                 default_body,
[INFO] [stdout] 20352 | |                 ..
[INFO] [stdout] 20353 | |             } => {
[INFO] [stdout]       | |_____________- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 20379 |               Statement::Switch { expr, .. } => f(expr),
[INFO] [stdout]       |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:20732:24
[INFO] [stdout]       |
[INFO] [stdout] 20732 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:22187:13
[INFO] [stdout]       |
[INFO] [stdout] 22187 |         let mut e = |x: &Expr, ok: &mut bool| {
[INFO] [stdout]       |             ----^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:22190:13
[INFO] [stdout]       |
[INFO] [stdout] 22190 |         let mut st = |x: &Statement, ok: &mut bool| {
[INFO] [stdout]       |             ----^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:22285:20
[INFO] [stdout]       |
[INFO] [stdout] 22285 |                 if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:22280:13
[INFO] [stdout]       |
[INFO] [stdout] 22280 |         let mut rec = |x: &Expr, ok: &mut bool| {
[INFO] [stdout]       |             ----^^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:22283:13
[INFO] [stdout]       |
[INFO] [stdout] 22283 |         let mut rec_args = |args: &[CallArg], ok: &mut bool| {
[INFO] [stdout]       |             ----^^^^^^^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:22586:24
[INFO] [stdout]       |
[INFO] [stdout] 22586 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:22612:24
[INFO] [stdout]       |
[INFO] [stdout] 22612 |                     if let ArrayElement::Expr(x) | ArrayElement::Spread(x) = el {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:22676:13
[INFO] [stdout]       |
[INFO] [stdout] 22676 |         let mut record = |caller: &Option<String>, e: &Expr, out: &mut Vec<_>| {
[INFO] [stdout]       |             ----^^^^^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]      --> src/codegen.rs:11290:8
[INFO] [stdout]       |
[INFO] [stdout]  1335 | impl Codegen {
[INFO] [stdout]       | ------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 11290 |     fn expr_has_length_changer(e: &Expr) -> bool {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11337 |     fn stmt_has_length_changer(stmt: &Statement) -> bool {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14334 |     fn flag_vec_escapes(e: &Expr, escaped: &mut HashSet<String>) {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20126 |     fn global_only_numeric_expr_roots(
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20295 |     fn for_each_expr_root(stmts: &[Statement], f: &mut dyn FnMut(&Expr)) {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20301 |     fn for_each_expr_root_stmt(s: &Statement, f: &mut dyn FnMut(&Expr)) {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20384 |     fn expr_mentions_global(e: &Expr, g: &str) -> bool {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20864 |     fn ann_is_all_numeric_struct(
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 52.29s
[INFO] running `Command { std: "docker" "inspect" "214be38ef260aaea685067c68bd3cc2b4cc07d5ce935416f6a99a43473ca3464", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "214be38ef260aaea685067c68bd3cc2b4cc07d5ce935416f6a99a43473ca3464" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `ImportSpecifier`
[INFO] [stdout]   --> src/codegen.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |     FunParam, ImportSpecifier, Literal, LogicalAssignOp, MemberProp, ObjectProp, Program, Span,
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/check.rs:934:21
[INFO] [stdout]     |
[INFO] [stdout] 932 | /                     tishlang_ast::ArrayElement::Expr(x)
[INFO] [stdout] 933 | |                     | tishlang_ast::ArrayElement::Spread(x) => go(x),
[INFO] [stdout]     | |___________________________________________________________- matches all the relevant values
[INFO] [stdout] 934 |                       _ => {}
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/codegen.rs:510:9
[INFO] [stdout]     |
[INFO] [stdout] 510 |     let mut native_build =
[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: `bound`
[INFO] [stdout]     --> src/codegen.rs:5409:20
[INFO] [stdout]      |
[INFO] [stdout] 5409 |             right: bound,
[INFO] [stdout]      |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_bound`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]     --> src/codegen.rs:6533:65
[INFO] [stdout]      |
[INFO] [stdout] 6533 |                         && matches!(init_e, Expr::Ident { name: src, .. })
[INFO] [stdout]      |                                                                 ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:12146:13
[INFO] [stdout]       |
[INFO] [stdout] 12146 |         let mut ce = |x: &Expr, out: &mut HashSet<String>| Self::collect_arrow_params_expr(x, out);
[INFO] [stdout]       |             ----^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:12238:24
[INFO] [stdout]       |
[INFO] [stdout] 12238 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout]       = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:12413:24
[INFO] [stdout]       |
[INFO] [stdout] 12413 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `add_l`
[INFO] [stdout]      --> src/codegen.rs:18256:19
[INFO] [stdout]       |
[INFO] [stdout] 18256 |             left: add_l,
[INFO] [stdout]       |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_add_l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:19023:24
[INFO] [stdout]       |
[INFO] [stdout] 19023 |                     if let CallArg::Expr(arg) | CallArg::Spread(arg) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:19107:24
[INFO] [stdout]       |
[INFO] [stdout] 19107 |                     if let CallArg::Expr(e) | CallArg::Spread(e) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:19214:13
[INFO] [stdout]       |
[INFO] [stdout] 19214 |         let mut scan = |e: &Expr| {
[INFO] [stdout]       |             ----^^^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:19784:24
[INFO] [stdout]       |
[INFO] [stdout] 19784 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:19806:24
[INFO] [stdout]       |
[INFO] [stdout] 19806 |                     if let ArrayElement::Expr(x) | ArrayElement::Spread(x) = el {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:20055:24
[INFO] [stdout]       |
[INFO] [stdout] 20055 |                     if let CallArg::Expr(e) | CallArg::Spread(e) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:20063:24
[INFO] [stdout]       |
[INFO] [stdout] 20063 |                     if let CallArg::Expr(e) | CallArg::Spread(e) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]      --> src/codegen.rs:20379:13
[INFO] [stdout]       |
[INFO] [stdout] 20349 | /             Statement::Switch {
[INFO] [stdout] 20350 | |                 cases,
[INFO] [stdout] 20351 | |                 default_body,
[INFO] [stdout] 20352 | |                 ..
[INFO] [stdout] 20353 | |             } => {
[INFO] [stdout]       | |_____________- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 20379 |               Statement::Switch { expr, .. } => f(expr),
[INFO] [stdout]       |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:20732:24
[INFO] [stdout]       |
[INFO] [stdout] 20732 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:22187:13
[INFO] [stdout]       |
[INFO] [stdout] 22187 |         let mut e = |x: &Expr, ok: &mut bool| {
[INFO] [stdout]       |             ----^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:22190:13
[INFO] [stdout]       |
[INFO] [stdout] 22190 |         let mut st = |x: &Statement, ok: &mut bool| {
[INFO] [stdout]       |             ----^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:22285:20
[INFO] [stdout]       |
[INFO] [stdout] 22285 |                 if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:22280:13
[INFO] [stdout]       |
[INFO] [stdout] 22280 |         let mut rec = |x: &Expr, ok: &mut bool| {
[INFO] [stdout]       |             ----^^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:22283:13
[INFO] [stdout]       |
[INFO] [stdout] 22283 |         let mut rec_args = |args: &[CallArg], ok: &mut bool| {
[INFO] [stdout]       |             ----^^^^^^^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:22586:24
[INFO] [stdout]       |
[INFO] [stdout] 22586 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:22612:24
[INFO] [stdout]       |
[INFO] [stdout] 22612 |                     if let ArrayElement::Expr(x) | ArrayElement::Spread(x) = el {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:22676:13
[INFO] [stdout]       |
[INFO] [stdout] 22676 |         let mut record = |caller: &Option<String>, e: &Expr, out: &mut Vec<_>| {
[INFO] [stdout]       |             ----^^^^^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]      --> src/codegen.rs:11290:8
[INFO] [stdout]       |
[INFO] [stdout]  1335 | impl Codegen {
[INFO] [stdout]       | ------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 11290 |     fn expr_has_length_changer(e: &Expr) -> bool {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11337 |     fn stmt_has_length_changer(stmt: &Statement) -> bool {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14334 |     fn flag_vec_escapes(e: &Expr, escaped: &mut HashSet<String>) {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20126 |     fn global_only_numeric_expr_roots(
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20295 |     fn for_each_expr_root(stmts: &[Statement], f: &mut dyn FnMut(&Expr)) {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20301 |     fn for_each_expr_root_stmt(s: &Statement, f: &mut dyn FnMut(&Expr)) {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20384 |     fn expr_mentions_global(e: &Expr, g: &str) -> bool {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20864 |     fn ann_is_all_numeric_struct(
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling tishlang_compile v4.2.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `ImportSpecifier`
[INFO] [stdout]   --> src/codegen.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |     FunParam, ImportSpecifier, Literal, LogicalAssignOp, MemberProp, ObjectProp, Program, Span,
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/check.rs:934:21
[INFO] [stdout]     |
[INFO] [stdout] 932 | /                     tishlang_ast::ArrayElement::Expr(x)
[INFO] [stdout] 933 | |                     | tishlang_ast::ArrayElement::Spread(x) => go(x),
[INFO] [stdout]     | |___________________________________________________________- matches all the relevant values
[INFO] [stdout] 934 |                       _ => {}
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/codegen.rs:510:9
[INFO] [stdout]     |
[INFO] [stdout] 510 |     let mut native_build =
[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: `bound`
[INFO] [stdout]     --> src/codegen.rs:5409:20
[INFO] [stdout]      |
[INFO] [stdout] 5409 |             right: bound,
[INFO] [stdout]      |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_bound`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]     --> src/codegen.rs:6533:65
[INFO] [stdout]      |
[INFO] [stdout] 6533 |                         && matches!(init_e, Expr::Ident { name: src, .. })
[INFO] [stdout]      |                                                                 ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:12146:13
[INFO] [stdout]       |
[INFO] [stdout] 12146 |         let mut ce = |x: &Expr, out: &mut HashSet<String>| Self::collect_arrow_params_expr(x, out);
[INFO] [stdout]       |             ----^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:12238:24
[INFO] [stdout]       |
[INFO] [stdout] 12238 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout]       = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:12413:24
[INFO] [stdout]       |
[INFO] [stdout] 12413 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `add_l`
[INFO] [stdout]      --> src/codegen.rs:18256:19
[INFO] [stdout]       |
[INFO] [stdout] 18256 |             left: add_l,
[INFO] [stdout]       |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_add_l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:19023:24
[INFO] [stdout]       |
[INFO] [stdout] 19023 |                     if let CallArg::Expr(arg) | CallArg::Spread(arg) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:19107:24
[INFO] [stdout]       |
[INFO] [stdout] 19107 |                     if let CallArg::Expr(e) | CallArg::Spread(e) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:19214:13
[INFO] [stdout]       |
[INFO] [stdout] 19214 |         let mut scan = |e: &Expr| {
[INFO] [stdout]       |             ----^^^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:19784:24
[INFO] [stdout]       |
[INFO] [stdout] 19784 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:19806:24
[INFO] [stdout]       |
[INFO] [stdout] 19806 |                     if let ArrayElement::Expr(x) | ArrayElement::Spread(x) = el {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:20055:24
[INFO] [stdout]       |
[INFO] [stdout] 20055 |                     if let CallArg::Expr(e) | CallArg::Spread(e) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:20063:24
[INFO] [stdout]       |
[INFO] [stdout] 20063 |                     if let CallArg::Expr(e) | CallArg::Spread(e) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]      --> src/codegen.rs:20379:13
[INFO] [stdout]       |
[INFO] [stdout] 20349 | /             Statement::Switch {
[INFO] [stdout] 20350 | |                 cases,
[INFO] [stdout] 20351 | |                 default_body,
[INFO] [stdout] 20352 | |                 ..
[INFO] [stdout] 20353 | |             } => {
[INFO] [stdout]       | |_____________- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 20379 |               Statement::Switch { expr, .. } => f(expr),
[INFO] [stdout]       |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:20732:24
[INFO] [stdout]       |
[INFO] [stdout] 20732 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:22187:13
[INFO] [stdout]       |
[INFO] [stdout] 22187 |         let mut e = |x: &Expr, ok: &mut bool| {
[INFO] [stdout]       |             ----^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:22190:13
[INFO] [stdout]       |
[INFO] [stdout] 22190 |         let mut st = |x: &Statement, ok: &mut bool| {
[INFO] [stdout]       |             ----^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:22285:20
[INFO] [stdout]       |
[INFO] [stdout] 22285 |                 if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:22280:13
[INFO] [stdout]       |
[INFO] [stdout] 22280 |         let mut rec = |x: &Expr, ok: &mut bool| {
[INFO] [stdout]       |             ----^^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:22283:13
[INFO] [stdout]       |
[INFO] [stdout] 22283 |         let mut rec_args = |args: &[CallArg], ok: &mut bool| {
[INFO] [stdout]       |             ----^^^^^^^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:22586:24
[INFO] [stdout]       |
[INFO] [stdout] 22586 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]      --> src/codegen.rs:22612:24
[INFO] [stdout]       |
[INFO] [stdout] 22612 |                     if let ArrayElement::Expr(x) | ArrayElement::Spread(x) = el {
[INFO] [stdout]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]       = help: consider replacing the `if let` with a `let`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]      --> src/codegen.rs:22676:13
[INFO] [stdout]       |
[INFO] [stdout] 22676 |         let mut record = |caller: &Option<String>, e: &Expr, out: &mut Vec<_>| {
[INFO] [stdout]       |             ----^^^^^^
[INFO] [stdout]       |             |
[INFO] [stdout]       |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]      --> src/codegen.rs:11290:8
[INFO] [stdout]       |
[INFO] [stdout]  1335 | impl Codegen {
[INFO] [stdout]       | ------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 11290 |     fn expr_has_length_changer(e: &Expr) -> bool {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11337 |     fn stmt_has_length_changer(stmt: &Statement) -> bool {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14334 |     fn flag_vec_escapes(e: &Expr, escaped: &mut HashSet<String>) {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20126 |     fn global_only_numeric_expr_roots(
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20295 |     fn for_each_expr_root(stmts: &[Statement], f: &mut dyn FnMut(&Expr)) {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20301 |     fn for_each_expr_root_stmt(s: &Statement, f: &mut dyn FnMut(&Expr)) {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20384 |     fn expr_mentions_global(e: &Expr, g: &str) -> bool {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20864 |     fn ann_is_all_numeric_struct(
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 47.13s
[INFO] running `Command { std: "docker" "inspect" "214be38ef260aaea685067c68bd3cc2b4cc07d5ce935416f6a99a43473ca3464", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "214be38ef260aaea685067c68bd3cc2b4cc07d5ce935416f6a99a43473ca3464" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `ImportSpecifier`
[INFO] [stderr]   --> src/codegen.rs:11:15
[INFO] [stderr]    |
[INFO] [stderr] 11 |     FunParam, ImportSpecifier, Literal, LogicalAssignOp, MemberProp, ObjectProp, Program, Span,
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/check.rs:934:21
[INFO] [stderr]     |
[INFO] [stderr] 932 | /                     tishlang_ast::ArrayElement::Expr(x)
[INFO] [stderr] 933 | |                     | tishlang_ast::ArrayElement::Spread(x) => go(x),
[INFO] [stderr]     | |___________________________________________________________- matches all the relevant values
[INFO] [stderr] 934 |                       _ => {}
[INFO] [stderr]     |                       ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/codegen.rs:510:9
[INFO] [stderr]     |
[INFO] [stderr] 510 |     let mut native_build =
[INFO] [stderr]     |         ----^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `bound`
[INFO] [stderr]     --> src/codegen.rs:5409:20
[INFO] [stderr]      |
[INFO] [stderr] 5409 |             right: bound,
[INFO] [stderr]      |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_bound`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `src`
[INFO] [stderr]     --> src/codegen.rs:6533:65
[INFO] [stderr]      |
[INFO] [stderr] 6533 |                         && matches!(init_e, Expr::Ident { name: src, .. })
[INFO] [stderr]      |                                                                 ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]      --> src/codegen.rs:12146:13
[INFO] [stderr]       |
[INFO] [stderr] 12146 |         let mut ce = |x: &Expr, out: &mut HashSet<String>| Self::collect_arrow_params_expr(x, out);
[INFO] [stderr]       |             ----^^
[INFO] [stderr]       |             |
[INFO] [stderr]       |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]      --> src/codegen.rs:12238:24
[INFO] [stderr]       |
[INFO] [stderr] 12238 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stderr]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]       |
[INFO] [stderr]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]       = help: consider replacing the `if let` with a `let`
[INFO] [stderr]       = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]      --> src/codegen.rs:12413:24
[INFO] [stderr]       |
[INFO] [stderr] 12413 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stderr]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]       |
[INFO] [stderr]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]       = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `add_l`
[INFO] [stderr]      --> src/codegen.rs:18256:19
[INFO] [stderr]       |
[INFO] [stderr] 18256 |             left: add_l,
[INFO] [stderr]       |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_add_l`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]      --> src/codegen.rs:19023:24
[INFO] [stderr]       |
[INFO] [stderr] 19023 |                     if let CallArg::Expr(arg) | CallArg::Spread(arg) = a {
[INFO] [stderr]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]       |
[INFO] [stderr]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]       = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]      --> src/codegen.rs:19107:24
[INFO] [stderr]       |
[INFO] [stderr] 19107 |                     if let CallArg::Expr(e) | CallArg::Spread(e) = a {
[INFO] [stderr]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]       |
[INFO] [stderr]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]       = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]      --> src/codegen.rs:19214:13
[INFO] [stderr]       |
[INFO] [stderr] 19214 |         let mut scan = |e: &Expr| {
[INFO] [stderr]       |             ----^^^^
[INFO] [stderr]       |             |
[INFO] [stderr]       |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]      --> src/codegen.rs:19784:24
[INFO] [stderr]       |
[INFO] [stderr] 19784 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stderr]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]       |
[INFO] [stderr]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]       = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]      --> src/codegen.rs:19806:24
[INFO] [stderr]       |
[INFO] [stderr] 19806 |                     if let ArrayElement::Expr(x) | ArrayElement::Spread(x) = el {
[INFO] [stderr]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]       |
[INFO] [stderr]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]       = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]      --> src/codegen.rs:20055:24
[INFO] [stderr]       |
[INFO] [stderr] 20055 |                     if let CallArg::Expr(e) | CallArg::Spread(e) = a {
[INFO] [stderr]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]       |
[INFO] [stderr]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]       = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]      --> src/codegen.rs:20063:24
[INFO] [stderr]       |
[INFO] [stderr] 20063 |                     if let CallArg::Expr(e) | CallArg::Spread(e) = a {
[INFO] [stderr]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]       |
[INFO] [stderr]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]       = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]      --> src/codegen.rs:20379:13
[INFO] [stderr]       |
[INFO] [stderr] 20349 | /             Statement::Switch {
[INFO] [stderr] 20350 | |                 cases,
[INFO] [stderr] 20351 | |                 default_body,
[INFO] [stderr] 20352 | |                 ..
[INFO] [stderr] 20353 | |             } => {
[INFO] [stderr]       | |_____________- matches all the relevant values
[INFO] [stderr] ...
[INFO] [stderr] 20379 |               Statement::Switch { expr, .. } => f(expr),
[INFO] [stderr]       |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]      --> src/codegen.rs:20732:24
[INFO] [stderr]       |
[INFO] [stderr] 20732 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stderr]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]       |
[INFO] [stderr]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]       = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]      --> src/codegen.rs:22187:13
[INFO] [stderr]       |
[INFO] [stderr] 22187 |         let mut e = |x: &Expr, ok: &mut bool| {
[INFO] [stderr]       |             ----^
[INFO] [stderr]       |             |
[INFO] [stderr]       |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]      --> src/codegen.rs:22190:13
[INFO] [stderr]       |
[INFO] [stderr] 22190 |         let mut st = |x: &Statement, ok: &mut bool| {
[INFO] [stderr]       |             ----^^
[INFO] [stderr]       |             |
[INFO] [stderr]       |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]      --> src/codegen.rs:22285:20
[INFO] [stderr]       |
[INFO] [stderr] 22285 |                 if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stderr]       |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]       |
[INFO] [stderr]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]       = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]      --> src/codegen.rs:22280:13
[INFO] [stderr]       |
[INFO] [stderr] 22280 |         let mut rec = |x: &Expr, ok: &mut bool| {
[INFO] [stderr]       |             ----^^^
[INFO] [stderr]       |             |
[INFO] [stderr]       |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]      --> src/codegen.rs:22283:13
[INFO] [stderr]       |
[INFO] [stderr] 22283 |         let mut rec_args = |args: &[CallArg], ok: &mut bool| {
[INFO] [stderr]       |             ----^^^^^^^^
[INFO] [stderr]       |             |
[INFO] [stderr]       |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]      --> src/codegen.rs:22586:24
[INFO] [stderr]       |
[INFO] [stderr] 22586 |                     if let CallArg::Expr(x) | CallArg::Spread(x) = a {
[INFO] [stderr]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]       |
[INFO] [stderr]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]       = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: irrefutable `if let` pattern
[INFO] [stderr]      --> src/codegen.rs:22612:24
[INFO] [stderr]       |
[INFO] [stderr] 22612 |                     if let ArrayElement::Expr(x) | ArrayElement::Spread(x) = el {
[INFO] [stderr]       |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]       |
[INFO] [stderr]       = note: this pattern will always match, so the `if let` is useless
[INFO] [stderr]       = help: consider replacing the `if let` with a `let`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]      --> src/codegen.rs:22676:13
[INFO] [stderr]       |
[INFO] [stderr] 22676 |         let mut record = |caller: &Option<String>, e: &Expr, out: &mut Vec<_>| {
[INFO] [stderr]       |             ----^^^^^^
[INFO] [stderr]       |             |
[INFO] [stderr]       |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated functions are never used
[INFO] [stderr]      --> src/codegen.rs:11290:8
[INFO] [stderr]       |
[INFO] [stderr]  1335 | impl Codegen {
[INFO] [stderr]       | ------------ associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 11290 |     fn expr_has_length_changer(e: &Expr) -> bool {
[INFO] [stderr]       |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 11337 |     fn stmt_has_length_changer(stmt: &Statement) -> bool {
[INFO] [stderr]       |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 14334 |     fn flag_vec_escapes(e: &Expr, escaped: &mut HashSet<String>) {
[INFO] [stderr]       |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 20126 |     fn global_only_numeric_expr_roots(
[INFO] [stderr]       |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 20295 |     fn for_each_expr_root(stmts: &[Statement], f: &mut dyn FnMut(&Expr)) {
[INFO] [stderr]       |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 20301 |     fn for_each_expr_root_stmt(s: &Statement, f: &mut dyn FnMut(&Expr)) {
[INFO] [stderr]       |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 20384 |     fn expr_mentions_global(e: &Expr, g: &str) -> bool {
[INFO] [stderr]       |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 20864 |     fn ann_is_all_numeric_struct(
[INFO] [stderr]       |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]       |
[INFO] [stderr]       = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `tishlang_compile` (lib) generated 27 warnings (run `cargo fix --lib -p tishlang_compile` to apply 12 suggestions)
[INFO] [stderr] warning: `tishlang_compile` (lib test) generated 27 warnings (27 duplicates)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.12s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/tishlang_compile-13d3aff8b5f84f44)
[INFO] [stdout] 
[INFO] [stdout] running 88 tests
[INFO] [stdout] test check::tests::gradual_no_false_positive_on_unknown_arg ... ok
[INFO] [stdout] test check::tests::flags_return_mismatch ... ok
[INFO] [stdout] test check::tests::flags_decl_mismatch ... ok
[INFO] [stdout] test check::tests::flags_struct_field_mismatch ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::nbody_factory_chain_resolves ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::s0_bails_on_escaping_param ... ok
[INFO] [stdout] test check::tests::flags_call_arg_mismatch ... ok
[INFO] [stdout] test check::tests::flags_reassignment_mismatch ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::s0_mixed_field_value_and_arithmetic_param ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::sa_bails_on_string_field_return_shape ... ok
[INFO] [stdout] test codegen::tests_176::fasta_collects_seed_global ... FAILED
[INFO] [stdout] test infer::aggregate_infer_tests::s0_optimistic_fixpoint_drops_string_sibling ... ok
[INFO] [stdout] test codegen::tests_176::non_recursive_native_fn_has_no_guard ... ok
[INFO] [stdout] test codegen::tests_176::recursive_native_fn_gets_guard_rotation ... FAILED
[INFO] [stdout] test codegen::tests_176::boxed_closure_opens_with_depth_guard ... ok
[INFO] [stdout] test codegen::tests_176::fib_native_body_uses_param_not_call_site_literal ... FAILED
[INFO] [stdout] test infer::aggregate_infer_tests::sa_bails_on_divergent_return_shapes ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::sa_registers_return_struct_shape ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::sb_array_return_is_array_of_struct ... ok
[INFO] [stdout] test codegen::tests_176::fasta_optimized_still_collects_seed_global ... FAILED
[INFO] [stdout] test check::tests::ok_programs_have_no_diagnostics ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::sc_array_of_struct_idents ... ok
[INFO] [stdout] test codegen::tests_176::mutually_recursive_native_fns_get_guard_rotation ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::s0_bails_on_string_concat_field_value ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::s0_infers_field_value_only_params_numeric ... ok
[INFO] [stdout] test codegen::tests_176::toint32_of_unbounded_int_valued_local_is_not_ub ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::sb_propagates_call_return_to_local ... ok
[INFO] [stdout] test infer::param_infer_tests::does_not_treat_other_param_as_numeric_local ... ok
[INFO] [stdout] test infer::param_infer_tests::does_not_infer_string_concat_param ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::sd_bails_on_array_push_reshape ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::sd_stamps_struct_and_array_annotations ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::writeback_does_not_stamp_call_local_with_struct ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::writeback_stamps_only_s0_numeric_params ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::sc_bails_on_heterogeneous_array ... ok
[INFO] [stdout] test infer::param_infer_tests::does_not_infer_param_copied_then_string_concatenated ... ok
[INFO] [stdout] test infer::param_infer_tests::escaping_value_fn_param_stays_boxed_477 ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::sd_bails_on_array_escape_to_console ... ok
[INFO] [stdout] test infer::param_infer_tests::infers_loop_bound_param_via_numeric_local ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::sd_bails_on_string_field_struct ... ok
[INFO] [stdout] test infer::param_infer_tests::infers_param_copied_to_local_then_compared ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::sd_bails_on_strict_eq_on_body ... ok
[INFO] [stdout] test infer::param_infer_tests::non_escaping_numeric_fn_keeps_native_fast_path_477 ... ok
[INFO] [stdout] test monomorphization_tests::module_demotion_does_not_box_a_same_named_local ... ok
[INFO] [stdout] test infer::struct_infer_writeback_tests::writes_native_scalar_back_from_typed_array_index ... ok
[INFO] [stdout] test infer::struct_infer_writeback_tests::does_not_annotate_non_native_local ... ok
[INFO] [stdout] test monomorphization_tests::generic_struct_is_native ... ok
[INFO] [stdout] test infer::aggregate_infer_tests::sd_nbody_shape_is_unbox_candidate ... ok
[INFO] [stdout] test platform_resolve::tests::android_native_prefers_android_then_mobile ... ok
[INFO] [stdout] test platform_resolve::tests::webview_reuses_web_not_macos ... ok
[INFO] [stdout] test resolve::cargo_spec_tests::cargo_export_fn_name_sanitizes ... ok
[INFO] [stdout] test platform_resolve::tests::macos_native_prefers_macos_then_desktop ... ok
[INFO] [stdout] test platform_resolve::tests::web_surface_only_web_and_base ... ok
[INFO] [stdout] test platform_resolve::tests::ios_native_falls_back_to_mobile ... ok
[INFO] [stdout] test platform_resolve::tests::virtual_keys_cascade_with_and_without_parent ... ok
[INFO] [stdout] test resolve::cargo_spec_tests::is_native_import_accepts_arc_str_ref ... ok
[INFO] [stdout] test resolve::cargo_spec_tests::merge_modules_skips_cargo_import ... ok
[INFO] [stdout] test resolve::cargo_spec_tests::detect_cycles_skips_cargo_import ... ok
[INFO] [stdout] test resolve::find_package_dir_tests::accepts_scoped_name_at_unscoped_node_modules_dir ... ok
[INFO] [stdout] test resolve::find_package_dir_tests::prefers_scoped_node_modules_over_tish_apple_crates ... ok
[INFO] [stdout] test schemes::tests::parse_scheme_def_skips_invalid_name ... ok
[INFO] [stdout] test schemes::tests::render_template_defaults_size_when_missing ... ok
[INFO] [stdout] test resolve::package_exports_tests::scoped_subpath_resolves_through_tish_condition ... ok
[INFO] [stdout] test resolve::find_package_dir_tests::prefers_tish_apple_crates_over_sibling ... ok
[INFO] [stdout] test schemes::tests::render_template_substitutes_size_and_strips_at_from_path ... ok
[INFO] [stdout] test schemes::tests::scheme_name_must_be_a_rust_identifier ... ok
[INFO] [stdout] test schemes::tests::split_path_size_parses_trailing_at_digits ... ok
[INFO] [stdout] test tests::loop_var_decl_clone_outer_var ... ok
[INFO] [stdout] test resolve::package_exports_tests::condition_order_is_the_package_authors ... ok
[INFO] [stdout] test resolve::package_exports_tests::root_js_exports_fall_back_to_tish_module_and_plain_subpaths_without_exports ... ok
[INFO] [stdout] test tests::fnv_accumulator_lowers_to_i32_register ... ok
[INFO] [stdout] test tests::native_emit_value_call_materializes_callee ... FAILED
[INFO] [stdout] test tests::new_expression_lowers_to_construct_on_native ... ok
[INFO] [stdout] test tests::new_class_name_compiles_native_via_tish_construct ... ok
[INFO] [stdout] test types::tests::annotation_object_with_unsafe_key_stays_boxed ... ok
[INFO] [stdout] test types::tests::field_ident_never_emits_non_identifier_for_unsafe_key ... ok
[INFO] [stdout] test tests::loop_var_decl_clone_via_project_full ... FAILED
[INFO] [stdout] test tests::typed_assign_conversion ... ok
[INFO] [stdout] test types::tests::field_ident_preserves_legit_and_raws_keywords ... ok
[INFO] [stdout] test types::tests::is_struct_field_safe_accepts_plain_and_camel_and_keywords ... ok
[INFO] [stdout] test types::tests::is_struct_field_safe_rejects_injection_and_nonrawable ... ok
[INFO] [stdout] test types::tests::push_fun_param_scope_shadows_outer ... ok
[INFO] [stdout] test types::tests::test_simple_types ... ok
[INFO] [stdout] test types::tests::test_array_type ... ok
[INFO] [stdout] test types::tests::test_nullable_type ... ok
[INFO] [stdout] test resolve::package_exports_tests::exports_pattern_and_null_exclusion ... ok
[INFO] [stdout] test resolve::package_exports_tests::program_imports_scoped_subpath ... ok
[INFO] [stdout] test types::tests::test_type_context ... ok
[INFO] [stdout] test resolve::package_exports_tests::exports_encapsulate_js_only_and_unlisted_subpaths ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- codegen::tests_176::fasta_collects_seed_global stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'codegen::tests_176::fasta_collects_seed_global' (1609) panicked at src/codegen.rs:28828:45:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55b6980e0431 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x55b6980f738a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x55b6980e4b9c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x55b6980ba5b6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x55b6980d7b39 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x55b69802f9c0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x55b6980d7e62 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x55b6980ba662 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x55b6980b2fa9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x55b6980bb2fd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x55b6980f7aec - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x55b6980f78c2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x55b697fc1dc3 - tishlang_compile[a42ac82c1030f768]::codegen::tests_176::fasta_collects_seed_global
[INFO] [stdout]   13:     0x55b697fdc8e9 - <tishlang_compile[a42ac82c1030f768]::codegen::tests_176::fasta_collects_seed_global::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x55b698022cab - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   15:     0x55b698030315 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   16:     0x55b698029bd4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x55b698033472 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x55b6980df799 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x745662354dfa - <unknown>
[INFO] [stdout]   20:     0x7456623e83d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- codegen::tests_176::recursive_native_fn_gets_guard_rotation stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'codegen::tests_176::recursive_native_fn_gets_guard_rotation' (1614) panicked at src/codegen.rs:28892:74:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: CompileError { message: "Cannot canonicalize entry /opt/rustwide/workdir/../../tests/perf/recursion_fib.tish: No such file or directory (os error 2)", span: None }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55b6980e0431 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x55b6980f738a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x55b6980e4b9c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x55b6980ba5b6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x55b6980d7b39 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x55b69802f9c0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x55b6980d7e62 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x55b6980ba662 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x55b6980b2fa9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x55b6980bb2fd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x55b6980f7aec - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x55b6980f78c2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x55b697fc2e09 - tishlang_compile[a42ac82c1030f768]::codegen::tests_176::recursive_native_fn_gets_guard_rotation
[INFO] [stdout]   13:     0x55b697fdc949 - <tishlang_compile[a42ac82c1030f768]::codegen::tests_176::recursive_native_fn_gets_guard_rotation::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x55b698022cab - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   15:     0x55b698030315 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   16:     0x55b698029bd4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x55b698033472 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x55b6980df799 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x745662354dfa - <unknown>
[INFO] [stdout]   20:     0x7456623e83d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- codegen::tests_176::fib_native_body_uses_param_not_call_site_literal stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'codegen::tests_176::fib_native_body_uses_param_not_call_site_literal' (1611) panicked at src/codegen.rs:28870:74:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: CompileError { message: "Cannot canonicalize entry /opt/rustwide/workdir/../../tests/perf/recursion_fib.tish: No such file or directory (os error 2)", span: None }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55b6980e0431 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x55b6980f738a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x55b6980e4b9c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x55b6980ba5b6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x55b6980d7b39 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x55b69802f9c0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x55b6980d7e62 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x55b6980ba662 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x55b6980b2fa9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x55b6980bb2fd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x55b6980f7aec - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x55b6980f78c2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x55b697fc436d - tishlang_compile[a42ac82c1030f768]::codegen::tests_176::fib_native_body_uses_param_not_call_site_literal
[INFO] [stdout]   13:     0x55b697fdc9a9 - <tishlang_compile[a42ac82c1030f768]::codegen::tests_176::fib_native_body_uses_param_not_call_site_literal::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x55b698022cab - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   15:     0x55b698030315 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   16:     0x55b698029bd4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x55b698033472 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x55b6980df799 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x745662354dfa - <unknown>
[INFO] [stdout]   20:     0x7456623e83d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- codegen::tests_176::fasta_optimized_still_collects_seed_global stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'codegen::tests_176::fasta_optimized_still_collects_seed_global' (1610) panicked at src/codegen.rs:28843:45:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55b6980e0431 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x55b6980f738a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x55b6980e4b9c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x55b6980ba5b6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x55b6980d7b39 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x55b69802f9c0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x55b6980d7e62 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x55b6980ba662 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x55b6980b2fa9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x55b6980bb2fd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x55b6980f7aec - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x55b6980f78c2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x55b697fc36af - tishlang_compile[a42ac82c1030f768]::codegen::tests_176::fasta_optimized_still_collects_seed_global
[INFO] [stdout]   13:     0x55b697fdc969 - <tishlang_compile[a42ac82c1030f768]::codegen::tests_176::fasta_optimized_still_collects_seed_global::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x55b698022cab - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   15:     0x55b698030315 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   16:     0x55b698029bd4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x55b698033472 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x55b6980df799 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x745662354dfa - <unknown>
[INFO] [stdout]   20:     0x7456623e83d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tests::native_emit_value_call_materializes_callee stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tests::native_emit_value_call_materializes_callee' (1675) panicked at src/lib.rs:230:81:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55b6980e0431 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x55b6980f738a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x55b6980e4b9c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x55b6980ba5b6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x55b6980d7b39 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x55b69802f9c0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x55b6980d7e62 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x55b6980ba662 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x55b6980b2fa9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x55b6980bb2fd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x55b6980f7aec - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x55b6980f78c2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x55b697fc043c - tishlang_compile[a42ac82c1030f768]::tests::native_emit_value_call_materializes_callee
[INFO] [stdout]   13:     0x55b697fdbf09 - <tishlang_compile[a42ac82c1030f768]::tests::native_emit_value_call_materializes_callee::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x55b698022cab - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   15:     0x55b698030315 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   16:     0x55b698029bd4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x55b698033472 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x55b6980df799 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x745662354dfa - <unknown>
[INFO] [stdout]   20:     0x7456623e83d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tests::loop_var_decl_clone_via_project_full stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tests::loop_var_decl_clone_via_project_full' (1674) panicked at src/lib.rs:255:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55b6980e0431 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x55b6980f738a - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x55b6980e4b9c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x55b6980ba5b6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x55b6980d7b39 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x55b69802f9c0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x55b6980d7e62 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x55b6980ba662 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x55b6980b2fa9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x55b6980bb2fd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x55b6980f7aec - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x55b6980f78c2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x55b697fbfa1d - tishlang_compile[a42ac82c1030f768]::tests::loop_var_decl_clone_via_project_full
[INFO] [stdout]   13:     0x55b697fdbec9 - <tishlang_compile[a42ac82c1030f768]::tests::loop_var_decl_clone_via_project_full::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x55b698022cab - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   15:     0x55b698030315 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   16:     0x55b698029bd4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x55b698033472 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x55b6980df799 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x745662354dfa - <unknown>
[INFO] [stdout]   20:     0x7456623e83d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     codegen::tests_176::fasta_collects_seed_global
[INFO] [stdout]     codegen::tests_176::fasta_optimized_still_collects_seed_global
[INFO] [stdout]     codegen::tests_176::fib_native_body_uses_param_not_call_site_literal
[INFO] [stdout]     codegen::tests_176::recursive_native_fn_gets_guard_rotation
[INFO] [stdout]     tests::loop_var_decl_clone_via_project_full
[INFO] [stdout]     tests::native_emit_value_call_materializes_callee
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 82 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "214be38ef260aaea685067c68bd3cc2b4cc07d5ce935416f6a99a43473ca3464", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "214be38ef260aaea685067c68bd3cc2b4cc07d5ce935416f6a99a43473ca3464", kill_on_drop: false }`
[INFO] [stdout] 214be38ef260aaea685067c68bd3cc2b4cc07d5ce935416f6a99a43473ca3464
