[INFO] cloning repository https://github.com/zyla/banana
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zyla/banana" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzyla%2Fbanana", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzyla%2Fbanana'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a1f7b5cb43cc89e1fad880f06ea1fe233e11c0cc
[INFO] testing zyla/banana against beta-2025-09-21 for beta-1.91-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzyla%2Fbanana" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/zyla/banana
[INFO] finished tweaking git repo https://github.com/zyla/banana
[INFO] tweaked toml for git repo https://github.com/zyla/banana written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/zyla/banana on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/zyla/banana 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" "+beta-2025-09-21" "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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d159155dafb997b28fbcc722dd94514a86ccbb48ec15c2606a217811c6b513ad
[INFO] running `Command { std: "docker" "start" "-a" "d159155dafb997b28fbcc722dd94514a86ccbb48ec15c2606a217811c6b513ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d159155dafb997b28fbcc722dd94514a86ccbb48ec15c2606a217811c6b513ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d159155dafb997b28fbcc722dd94514a86ccbb48ec15c2606a217811c6b513ad", kill_on_drop: false }`
[INFO] [stdout] d159155dafb997b28fbcc722dd94514a86ccbb48ec15c2606a217811c6b513ad
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 500e9c8e9fcee4a8c1f23bc062f19c197d829e29498d95d9b1964a457cb5c6fd
[INFO] running `Command { std: "docker" "start" "-a" "500e9c8e9fcee4a8c1f23bc062f19c197d829e29498d95d9b1964a457cb5c6fd", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.141
[INFO] [stderr]    Compiling once_cell v1.17.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.7
[INFO] [stderr]    Compiling lock_api v0.4.9
[INFO] [stderr]    Compiling smallvec v1.10.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.15
[INFO] [stderr]    Compiling proc-macro2 v1.0.56
[INFO] [stderr]    Compiling io-lifetimes v1.0.9
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling memoffset v0.8.0
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling ahash v0.7.6
[INFO] [stderr]    Compiling crunchy v0.2.2
[INFO] [stderr]    Compiling rustix v0.37.7
[INFO] [stderr]    Compiling quote v1.0.26
[INFO] [stderr]    Compiling aho-corasick v0.7.20
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.14
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling siphasher v0.3.10
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling linux-raw-sys v0.3.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]    Compiling bit-vec v0.6.3
[INFO] [stderr]    Compiling eyre v0.6.8
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.4
[INFO] [stderr]    Compiling crossbeam-queue v0.3.8
[INFO] [stderr]    Compiling either v1.8.1
[INFO] [stderr]    Compiling bit-set v0.5.3
[INFO] [stderr]    Compiling phf_shared v0.10.0
[INFO] [stderr]    Compiling ena v0.14.2
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling indenter v0.3.3
[INFO] [stderr]    Compiling unicode-xid v0.2.4
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling pico-args v0.4.2
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling crossbeam-deque v0.8.3
[INFO] [stderr]    Compiling crossbeam-channel v0.5.7
[INFO] [stderr]    Compiling arc-swap v1.6.0
[INFO] [stderr]    Compiling crossbeam v0.8.2
[INFO] [stderr]    Compiling regex v1.7.3
[INFO] [stderr]    Compiling petgraph v0.6.3
[INFO] [stderr]    Compiling getrandom v0.2.8
[INFO] [stderr]    Compiling parking_lot v0.12.1
[INFO] [stderr]    Compiling ordered-float v3.6.0
[INFO] [stderr]    Compiling lalrpop-util v0.19.9
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling term v0.7.0
[INFO] [stderr]    Compiling hashlink v0.8.1
[INFO] [stderr]    Compiling dashmap v5.4.0
[INFO] [stderr]    Compiling string_cache v0.8.7
[INFO] [stderr]    Compiling ascii-canvas v3.0.0
[INFO] [stderr]    Compiling is-terminal v0.4.6
[INFO] [stderr]    Compiling lalrpop v0.19.9
[INFO] [stderr]    Compiling salsa-2022-macros v0.1.0 (https://github.com/salsa-rs/salsa.git#67d290dc)
[INFO] [stderr]    Compiling derive-new v0.5.9
[INFO] [stderr]    Compiling salsa-2022 v0.1.0 (https://github.com/salsa-rs/salsa.git#67d290dc)
[INFO] [stderr]    Compiling banana v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `salsa::debug::DebugWithDb`
[INFO] [stdout]  --> src/parser.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use salsa::debug::DebugWithDb;
[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 imports: `ExpressionData`, `Expression`, `FunctionId`, `Op`, `Statement`, and `VariableId`
[INFO] [stdout]  --> src/parser.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Diagnostic, Diagnostics, Expression, ExpressionData, Function, FunctionId, Op, Program,
[INFO] [stdout]   |                              ^^^^^^^^^^  ^^^^^^^^^^^^^^            ^^^^^^^^^^  ^^
[INFO] [stdout] 8 |     SourceProgram, Span, Statement, StatementData, VariableId,
[INFO] [stdout]   |                          ^^^^^^^^^                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::__parse__Expr::ExprParser`
[INFO] [stdout]     --> /opt/rustwide/target/debug/build/banana-4b304923ff30e9e8/out/grammar.rs:2006:9
[INFO] [stdout]      |
[INFO] [stdout] 2006 | pub use self::__parse__Expr::ExprParser;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StatementData`
[INFO] [stdout]  --> src/type_check.rs:2:79
[INFO] [stdout]   |
[INFO] [stdout] 2 |     Diagnostic, Diagnostics, Expression, Function, FunctionId, Program, Span, StatementData,
[INFO] [stdout]   |                                                                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `visit_statement` is never used
[INFO] [stdout]    --> src/ir.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub trait Visitor {
[INFO] [stdout]     |           ------- method in this trait
[INFO] [stdout] 189 |     fn visit_statement(&mut self, _: &mut Statement) {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.14s
[INFO] running `Command { std: "docker" "inspect" "500e9c8e9fcee4a8c1f23bc062f19c197d829e29498d95d9b1964a457cb5c6fd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "500e9c8e9fcee4a8c1f23bc062f19c197d829e29498d95d9b1964a457cb5c6fd", kill_on_drop: false }`
[INFO] [stdout] 500e9c8e9fcee4a8c1f23bc062f19c197d829e29498d95d9b1964a457cb5c6fd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2817c274966b2fc206d7fb96675f82672b23f15a096ab5d5f010b46b3d6071ec
[INFO] running `Command { std: "docker" "start" "-a" "2817c274966b2fc206d7fb96675f82672b23f15a096ab5d5f010b46b3d6071ec", kill_on_drop: false }`
[INFO] [stderr]    Compiling dissimilar v1.0.6
[INFO] [stderr]    Compiling expect-test v1.4.1
[INFO] [stderr]    Compiling banana v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `ExpressionData`, `Expression`, `FunctionId`, `Op`, `Statement`, and `VariableId`
[INFO] [stdout]  --> src/parser.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Diagnostic, Diagnostics, Expression, ExpressionData, Function, FunctionId, Op, Program,
[INFO] [stdout]   |                              ^^^^^^^^^^  ^^^^^^^^^^^^^^            ^^^^^^^^^^  ^^
[INFO] [stdout] 8 |     SourceProgram, Span, Statement, StatementData, VariableId,
[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: `self::__parse__Expr::ExprParser`
[INFO] [stdout]     --> /opt/rustwide/target/debug/build/banana-4b304923ff30e9e8/out/grammar.rs:2006:9
[INFO] [stdout]      |
[INFO] [stdout] 2006 | pub use self::__parse__Expr::ExprParser;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StatementData`
[INFO] [stdout]  --> src/type_check.rs:2:79
[INFO] [stdout]   |
[INFO] [stdout] 2 |     Diagnostic, Diagnostics, Expression, Function, FunctionId, Program, Span, StatementData,
[INFO] [stdout]   |                                                                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `visit_statement` is never used
[INFO] [stdout]    --> src/ir.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub trait Visitor {
[INFO] [stdout]     |           ------- method in this trait
[INFO] [stdout] 189 |     fn visit_statement(&mut self, _: &mut Statement) {}
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.56s
[INFO] running `Command { std: "docker" "inspect" "2817c274966b2fc206d7fb96675f82672b23f15a096ab5d5f010b46b3d6071ec", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2817c274966b2fc206d7fb96675f82672b23f15a096ab5d5f010b46b3d6071ec", kill_on_drop: false }`
[INFO] [stdout] 2817c274966b2fc206d7fb96675f82672b23f15a096ab5d5f010b46b3d6071ec
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 7bfe6a4019061da2cd8b70d4dec0a391818659bae94a0f0f10f01c1bfbc49e62
[INFO] running `Command { std: "docker" "start" "-a" "7bfe6a4019061da2cd8b70d4dec0a391818659bae94a0f0f10f01c1bfbc49e62", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `ExpressionData`, `Expression`, `FunctionId`, `Op`, `Statement`, and `VariableId`
[INFO] [stderr]  --> src/parser.rs:7:30
[INFO] [stderr]   |
[INFO] [stderr] 7 |     Diagnostic, Diagnostics, Expression, ExpressionData, Function, FunctionId, Op, Program,
[INFO] [stderr]   |                              ^^^^^^^^^^  ^^^^^^^^^^^^^^            ^^^^^^^^^^  ^^
[INFO] [stderr] 8 |     SourceProgram, Span, Statement, StatementData, VariableId,
[INFO] [stderr]   |                          ^^^^^^^^^                 ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `self::__parse__Expr::ExprParser`
[INFO] [stderr]     --> /opt/rustwide/target/debug/build/banana-4b304923ff30e9e8/out/grammar.rs:2006:9
[INFO] [stderr]      |
[INFO] [stderr] 2006 | pub use self::__parse__Expr::ExprParser;
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `StatementData`
[INFO] [stderr]  --> src/type_check.rs:2:79
[INFO] [stderr]   |
[INFO] [stderr] 2 |     Diagnostic, Diagnostics, Expression, Function, FunctionId, Program, Span, StatementData,
[INFO] [stderr]   |                                                                               ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `visit_statement` is never used
[INFO] [stderr]    --> src/ir.rs:189:8
[INFO] [stderr]     |
[INFO] [stderr] 188 | pub trait Visitor {
[INFO] [stderr]     |           ------- method in this trait
[INFO] [stderr] 189 |     fn visit_statement(&mut self, _: &mut Statement) {}
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `banana` (bin "banana" test) generated 4 warnings (run `cargo fix --bin "banana" --tests` to apply 3 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.09s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/banana-a30b043a401997e4)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test type_check::fix_bad_variable_in_function ... FAILED
[INFO] [stdout] test type_check::check_bad_variable_in_program ... FAILED
[INFO] [stdout] test type_check::check_bad_function_in_function ... FAILED
[INFO] [stdout] test type_check::check_bad_variable_in_function ... FAILED
[INFO] [stdout] test parser::parse_error ... FAILED
[INFO] [stdout] test type_check::check_bad_function_in_program ... FAILED
[INFO] [stdout] test type_check::check_print ... ok
[INFO] [stdout] test parser::parse_example ... FAILED
[INFO] [stdout] test parser::parse_precedence ... FAILED
[INFO] [stdout] test parser::parse_print ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- type_check::fix_bad_variable_in_function stdout ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] [1m[91merror[97m: expect test failed[0m
[INFO] [stdout]    [1m[34m-->[0m src/type_check.rs:222:9
[INFO] [stdout] 
[INFO] [stdout] You can update all `expect!` tests by running:
[INFO] [stdout] 
[INFO] [stdout]     env UPDATE_EXPECT=1 cargo test
[INFO] [stdout] 
[INFO] [stdout] To update a single test, place the cursor on `expect` token and use `run` feature of rust-analyzer.
[INFO] [stdout] 
[INFO] [stdout] [1mExpect[0m:
[INFO] [stdout] ----
[INFO] [stdout] [
[INFO] [stdout]     Diagnostic {
[INFO] [stdout]         start: 32,
[INFO] [stdout]         end: 46,
[INFO] [stdout]         message: "the variable `b` is not declared",
[INFO] [stdout]     },
[INFO] [stdout] ]
[INFO] [stdout] 
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mActual[0m:
[INFO] [stdout] ----
[INFO] [stdout] []
[INFO] [stdout] 
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mDiff[0m:
[INFO] [stdout] ----
[INFO] [stdout] [[4m[31m
[INFO] [stdout]     Diagnostic {
[INFO] [stdout]         start: 32,
[INFO] [stdout]         end: 46,
[INFO] [stdout]         message: "the variable `b` is not declared",
[INFO] [stdout]     },
[INFO] [stdout] [0m]
[INFO] [stdout] 
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] ---- type_check::check_bad_variable_in_program stdout ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] [1m[91merror[97m: expect test failed[0m
[INFO] [stdout]    [1m[34m-->[0m src/type_check.rs:134:9
[INFO] [stdout] 
[INFO] [stdout] [1mExpect[0m:
[INFO] [stdout] ----
[INFO] [stdout] [
[INFO] [stdout]     Diagnostic {
[INFO] [stdout]         start: 6,
[INFO] [stdout]         end: 8,
[INFO] [stdout]         message: "the variable `a` is not declared",
[INFO] [stdout]     },
[INFO] [stdout]     Diagnostic {
[INFO] [stdout]         start: 10,
[INFO] [stdout]         end: 11,
[INFO] [stdout]         message: "the variable `b` is not declared",
[INFO] [stdout]     },
[INFO] [stdout] ]
[INFO] [stdout] 
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mActual[0m:
[INFO] [stdout] ----
[INFO] [stdout] []
[INFO] [stdout] 
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mDiff[0m:
[INFO] [stdout] ----
[INFO] [stdout] [[4m[31m
[INFO] [stdout]     Diagnostic {
[INFO] [stdout]         start: 6,
[INFO] [stdout]         end: 8,
[INFO] [stdout]         message: "the variable `a` is not declared",
[INFO] [stdout]     },
[INFO] [stdout]     Diagnostic {
[INFO] [stdout]         start: 10,
[INFO] [stdout]         end: 11,
[INFO] [stdout]         message: "the variable `b` is not declared",
[INFO] [stdout]     },
[INFO] [stdout] [0m]
[INFO] [stdout] 
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] ---- type_check::check_bad_function_in_function stdout ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] [1m[91merror[97m: expect test failed[0m
[INFO] [stdout]    [1m[34m-->[0m src/type_check.rs:196:9
[INFO] [stdout] 
[INFO] [stdout] [1mExpect[0m:
[INFO] [stdout] ----
[INFO] [stdout] [
[INFO] [stdout]     Diagnostic {
[INFO] [stdout]         start: 29,
[INFO] [stdout]         end: 39,
[INFO] [stdout]         message: "the function `add_two` is not declared",
[INFO] [stdout]     },
[INFO] [stdout]     Diagnostic {
[INFO] [stdout]         start: 42,
[INFO] [stdout]         end: 56,
[INFO] [stdout]         message: "the variable `b` is not declared",
[INFO] [stdout]     },
[INFO] [stdout] ]
[INFO] [stdout] 
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mActual[0m:
[INFO] [stdout] ----
[INFO] [stdout] []
[INFO] [stdout] 
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mDiff[0m:
[INFO] [stdout] ----
[INFO] [stdout] [[4m[31m
[INFO] [stdout]     Diagnostic {
[INFO] [stdout]         start: 29,
[INFO] [stdout]         end: 39,
[INFO] [stdout]         message: "the function `add_two` is not declared",
[INFO] [stdout]     },
[INFO] [stdout]     Diagnostic {
[INFO] [stdout]         start: 42,
[INFO] [stdout]         end: 56,
[INFO] [stdout]         message: "the variable `b` is not declared",
[INFO] [stdout]     },
[INFO] [stdout] [0m]
[INFO] [stdout] 
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] ---- type_check::check_bad_variable_in_function stdout ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] [1m[91merror[97m: expect test failed[0m
[INFO] [stdout]    [1m[34m-->[0m src/type_check.rs:176:9
[INFO] [stdout] 
[INFO] [stdout] [1mExpect[0m:
[INFO] [stdout] ----
[INFO] [stdout] [
[INFO] [stdout]     Diagnostic {
[INFO] [stdout]         start: 33,
[INFO] [stdout]         end: 47,
[INFO] [stdout]         message: "the variable `b` is not declared",
[INFO] [stdout]     },
[INFO] [stdout] ]
[INFO] [stdout] 
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mActual[0m:
[INFO] [stdout] ----
[INFO] [stdout] []
[INFO] [stdout] 
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mDiff[0m:
[INFO] [stdout] ----
[INFO] [stdout] [[4m[31m
[INFO] [stdout]     Diagnostic {
[INFO] [stdout]         start: 33,
[INFO] [stdout]         end: 47,
[INFO] [stdout]         message: "the variable `b` is not declared",
[INFO] [stdout]     },
[INFO] [stdout] [0m]
[INFO] [stdout] 
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] ---- parser::parse_error stdout ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] [1m[91merror[97m: expect test failed[0m
[INFO] [stdout]    [1m[34m-->[0m src/parser.rs:339:20
[INFO] [stdout] 
[INFO] [stdout] [1mExpect[0m:
[INFO] [stdout] ----
[INFO] [stdout] (
[INFO] [stdout]     Program {
[INFO] [stdout]         [salsa id]: 0,
[INFO] [stdout]         statements: [],
[INFO] [stdout]     },
[INFO] [stdout]     [
[INFO] [stdout]         Diagnostic {
[INFO] [stdout]             start: 10,
[INFO] [stdout]             end: 11,
[INFO] [stdout]             message: "unexpected character",
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout] )
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mActual[0m:
[INFO] [stdout] ----
[INFO] [stdout] (
[INFO] [stdout]     Program {
[INFO] [stdout]         [salsa id]: 0,
[INFO] [stdout]         functions: [],
[INFO] [stdout]     },
[INFO] [stdout]     [
[INFO] [stdout]         Diagnostic {
[INFO] [stdout]             start: 0,
[INFO] [stdout]             end: 0,
[INFO] [stdout]             message: "Unrecognized token `+` found at 10:11\nExpected one of \"(\", r#\"[0-9]+\"# or r#\"[a-zA-Z_][a-zA-Z_0-9]*\"#",
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout] )
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mDiff[0m:
[INFO] [stdout] ----
[INFO] [stdout] (
[INFO] [stdout]     Program {
[INFO] [stdout]         [salsa id]: 0,
[INFO] [stdout]         [4m[31mstatement[0m[4m[32mfunction[0ms: [],
[INFO] [stdout]     },
[INFO] [stdout]     [
[INFO] [stdout]         Diagnostic {
[INFO] [stdout]             start: [4m[31m1[0m0,
[INFO] [stdout]             end: [4m[31m11[0m[4m[32m0[0m,
[INFO] [stdout]             message: "[4m[31munexpected character[0m[4m[32mUnrecognized token `+` found at 10:11\nExpected one of \"(\", r#\"[0-9]+\"# or r#\"[a-zA-Z_][a-zA-Z_0-9]*\"#[0m",
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout] )
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] ---- type_check::check_bad_function_in_program stdout ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] [1m[91merror[97m: expect test failed[0m
[INFO] [stdout]    [1m[34m-->[0m src/type_check.rs:156:9
[INFO] [stdout] 
[INFO] [stdout] [1mExpect[0m:
[INFO] [stdout] ----
[INFO] [stdout] [
[INFO] [stdout]     Diagnostic {
[INFO] [stdout]         start: 6,
[INFO] [stdout]         end: 11,
[INFO] [stdout]         message: "the function `a` is not declared",
[INFO] [stdout]     },
[INFO] [stdout] ]
[INFO] [stdout] 
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mActual[0m:
[INFO] [stdout] ----
[INFO] [stdout] []
[INFO] [stdout] 
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mDiff[0m:
[INFO] [stdout] ----
[INFO] [stdout] [[4m[31m
[INFO] [stdout]     Diagnostic {
[INFO] [stdout]         start: 6,
[INFO] [stdout]         end: 11,
[INFO] [stdout]         message: "the function `a` is not declared",
[INFO] [stdout]     },
[INFO] [stdout] [0m]
[INFO] [stdout] 
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] ---- parser::parse_example stdout ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] [1m[91merror[97m: expect test failed[0m
[INFO] [stdout]    [1m[34m-->[0m src/parser.rs:165:20
[INFO] [stdout] 
[INFO] [stdout] [1mExpect[0m:
[INFO] [stdout] ----
[INFO] [stdout] (
[INFO] [stdout]     Program {
[INFO] [stdout]         [salsa id]: 0,
[INFO] [stdout]         statements: [
[INFO] [stdout]             Statement {
[INFO] [stdout]                 span: Span(
[INFO] [stdout]                     Id {
[INFO] [stdout]                         value: 10,
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]                 data: Function(
[INFO] [stdout]                     Function(
[INFO] [stdout]                         Id {
[INFO] [stdout]                             value: 1,
[INFO] [stdout]                         },
[INFO] [stdout]                     ),
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             Statement {
[INFO] [stdout]                 span: Span(
[INFO] [stdout]                     Id {
[INFO] [stdout]                         value: 22,
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]                 data: Function(
[INFO] [stdout]                     Function(
[INFO] [stdout]                         Id {
[INFO] [stdout]                             value: 2,
[INFO] [stdout]                         },
[INFO] [stdout]                     ),
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             Statement {
[INFO] [stdout]                 span: Span(
[INFO] [stdout]                     Id {
[INFO] [stdout]                         value: 29,
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]                 data: Print(
[INFO] [stdout]                     Expression {
[INFO] [stdout]                         span: Span(
[INFO] [stdout]                             Id {
[INFO] [stdout]                                 value: 28,
[INFO] [stdout]                             },
[INFO] [stdout]                         ),
[INFO] [stdout]                         data: Call(
[INFO] [stdout]                             FunctionId(
[INFO] [stdout]                                 Id {
[INFO] [stdout]                                     value: 1,
[INFO] [stdout]                                 },
[INFO] [stdout]                             ),
[INFO] [stdout]                             [
[INFO] [stdout]                                 Expression {
[INFO] [stdout]                                     span: Span(
[INFO] [stdout]                                         Id {
[INFO] [stdout]                                             value: 24,
[INFO] [stdout]                                         },
[INFO] [stdout]                                     ),
[INFO] [stdout]                                     data: Number(
[INFO] [stdout]                                         OrderedFloat(
[INFO] [stdout]                                             3.0,
[INFO] [stdout]                                         ),
[INFO] [stdout]                                     ),
[INFO] [stdout]                                 },
[INFO] [stdout]                                 Expression {
[INFO] [stdout]                                     span: Span(
[INFO] [stdout]                                         Id {
[INFO] [stdout]                                             value: 26,
[INFO] [stdout]                                         },
[INFO] [stdout]                                     ),
[INFO] [stderr] error: test failed, to rerun pass `--bin banana`
[INFO] [stdout]                                     data: Number(
[INFO] [stdout]                                         OrderedFloat(
[INFO] [stdout]                                             4.0,
[INFO] [stdout]                                         ),
[INFO] [stdout]                                     ),
[INFO] [stdout]                                 },
[INFO] [stdout]                             ],
[INFO] [stdout]                         ),
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             Statement {
[INFO] [stdout]                 span: Span(
[INFO] [stdout]                     Id {
[INFO] [stdout]                         value: 34,
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]                 data: Print(
[INFO] [stdout]                     Expression {
[INFO] [stdout]                         span: Span(
[INFO] [stdout]                             Id {
[INFO] [stdout]                                 value: 33,
[INFO] [stdout]                             },
[INFO] [stdout]                         ),
[INFO] [stdout]                         data: Call(
[INFO] [stdout]                             FunctionId(
[INFO] [stdout]                                 Id {
[INFO] [stdout]                                     value: 2,
[INFO] [stdout]                                 },
[INFO] [stdout]                             ),
[INFO] [stdout]                             [
[INFO] [stdout]                                 Expression {
[INFO] [stdout]                                     span: Span(
[INFO] [stdout]                                         Id {
[INFO] [stdout]                                             value: 31,
[INFO] [stdout]                                         },
[INFO] [stdout]                                     ),
[INFO] [stdout]                                     data: Number(
[INFO] [stdout]                                         OrderedFloat(
[INFO] [stdout]                                             1.0,
[INFO] [stdout]                                         ),
[INFO] [stdout]                                     ),
[INFO] [stdout]                                 },
[INFO] [stdout]                             ],
[INFO] [stdout]                         ),
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             Statement {
[INFO] [stdout]                 span: Span(
[INFO] [stdout]                     Id {
[INFO] [stdout]                         value: 39,
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]                 data: Print(
[INFO] [stdout]                     Expression {
[INFO] [stdout]                         span: Span(
[INFO] [stdout]                             Id {
[INFO] [stdout]                                 value: 38,
[INFO] [stdout]                             },
[INFO] [stdout]                         ),
[INFO] [stdout]                         data: Op(
[INFO] [stdout]                             Expression {
[INFO] [stdout]                                 span: Span(
[INFO] [stdout]                                     Id {
[INFO] [stdout]                                         value: 35,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ),
[INFO] [stdout]                                 data: Number(
[INFO] [stdout]                                     OrderedFloat(
[INFO] [stdout]                                         11.0,
[INFO] [stdout]                                     ),
[INFO] [stdout]                                 ),
[INFO] [stdout]                             },
[INFO] [stdout]                             Multiply,
[INFO] [stdout]                             Expression {
[INFO] [stdout]                                 span: Span(
[INFO] [stdout]                                     Id {
[INFO] [stdout]                                         value: 37,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ),
[INFO] [stdout]                                 data: Number(
[INFO] [stdout]                                     OrderedFloat(
[INFO] [stdout]                                         2.0,
[INFO] [stdout]                                     ),
[INFO] [stdout]                                 ),
[INFO] [stdout]                             },
[INFO] [stdout]                         ),
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]         ],
[INFO] [stdout]     },
[INFO] [stdout]     [],
[INFO] [stdout] )
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mActual[0m:
[INFO] [stdout] ----
[INFO] [stdout] (
[INFO] [stdout]     Program {
[INFO] [stdout]         [salsa id]: 0,
[INFO] [stdout]         functions: [],
[INFO] [stdout]     },
[INFO] [stdout]     [
[INFO] [stdout]         Diagnostic {
[INFO] [stdout]             start: 0,
[INFO] [stdout]             end: 0,
[INFO] [stdout]             message: "Invalid token at 79",
[INFO] [stdout]         },
[INFO] [stdout]     ],
[INFO] [stdout] )
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mDiff[0m:
[INFO] [stdout] ----
[INFO] [stdout] (
[INFO] [stdout]     Program {
[INFO] [stdout]         [salsa id]: 0,
[INFO] [stdout]         [4m[31mstatements: [
[INFO] [stdout]             Statement {
[INFO] [stdout]                 span: Span(
[INFO] [stdout]                     Id {
[INFO] [stdout]                         value: 10,
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]                 data: Function(
[INFO] [stdout]                     Function(
[INFO] [stdout]                         Id {
[INFO] [stdout]                             value: 1,
[INFO] [stdout]                         },
[INFO] [stdout]                     ),
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             Statement {
[INFO] [stdout]                 span: Span(
[INFO] [stdout]                     Id {
[INFO] [stdout]                         value: 22,
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]                 data: Function(
[INFO] [stdout]                     Function(
[INFO] [stdout]                         Id {
[INFO] [stdout]                             value: 2,
[INFO] [stdout]                         },
[INFO] [stdout]                     ),
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             Statement {
[INFO] [stdout]                 span: Span(
[INFO] [stdout]                     Id {
[INFO] [stdout]                         value: 29,
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]                 data: Print(
[INFO] [stdout]                     Expression {
[INFO] [stdout]                         span: Span(
[INFO] [stdout]                             Id {
[INFO] [stdout]                                 value: 28,
[INFO] [stdout]                             },
[INFO] [stdout]                         ),
[INFO] [stdout]                         data: Call(
[INFO] [stdout]                             FunctionId(
[INFO] [stdout]                                 Id {
[INFO] [stdout]                                     value: 1,
[INFO] [stdout]                                 },
[INFO] [stdout]                             ),
[INFO] [stdout]                             [
[INFO] [stdout]                                 Expression {
[INFO] [stdout]                                     span: Span(
[INFO] [stdout]                                         Id {
[INFO] [stdout]                                             value: 24,
[INFO] [stdout]                                         },
[INFO] [stdout]                                     ),
[INFO] [stdout]                                     data: Number(
[INFO] [stdout]                                         OrderedFloat(
[INFO] [stdout]                                             3.0,
[INFO] [stdout]                                         ),
[INFO] [stdout]                                     ),
[INFO] [stdout]                                 },
[INFO] [stdout]                                 Expression {
[INFO] [stdout]                                     span: Span(
[INFO] [stdout]                                         Id {
[INFO] [stdout]                                             value: 26,
[INFO] [stdout]                                         },
[INFO] [stdout]                                     ),
[INFO] [stdout]                                     data: Number(
[INFO] [stdout]                                         OrderedFloat(
[INFO] [stdout]                                             4.0,
[INFO] [stdout]                                         ),
[INFO] [stdout]                                     ),
[INFO] [stdout]                                 },
[INFO] [stdout]                             ],
[INFO] [stdout]                         ),
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             Statement {
[INFO] [stdout]                 span: Span(
[INFO] [stdout]                     Id {
[INFO] [stdout]                         value: 34,
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]                 data: Print(
[INFO] [stdout]                     Expression {
[INFO] [stdout]                         span: Span(
[INFO] [stdout]                             Id {
[INFO] [stdout]                                 value: 33,
[INFO] [stdout]                             },
[INFO] [stdout]                         ),
[INFO] [stdout]                         data: Call(
[INFO] [stdout]                             FunctionId(
[INFO] [stdout]                                 Id {
[INFO] [stdout]                                     value: 2,
[INFO] [stdout]                                 },
[INFO] [stdout]                             ),
[INFO] [stdout]                             [
[INFO] [stdout]                                 Expression {
[INFO] [stdout]                                     span: Span(
[INFO] [stdout]                                         Id {
[INFO] [stdout]                                             value: 31,
[INFO] [stdout]                                         },
[INFO] [stdout]                                     ),
[INFO] [stdout]                                     data: Number(
[INFO] [stdout]                                         OrderedFloat(
[INFO] [stdout]                                             1.0,
[INFO] [stdout]                                         ),
[INFO] [stdout]                                     ),
[INFO] [stdout]                                 },
[INFO] [stdout]                             ],
[INFO] [stdout]                         ),
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]             Statement {
[INFO] [stdout]                 span: Span(
[INFO] [stdout]                     Id {
[INFO] [stdout]                         value: 39,
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]                 data: Print(
[INFO] [stdout]                     Expression {
[INFO] [stdout]                         span: Span(
[INFO] [stdout]                             Id {
[INFO] [stdout]                                 value: 38,
[INFO] [stdout]                             },
[INFO] [stdout]                         ),
[INFO] [stdout]                         data: Op(
[INFO] [stdout]                             Expression {
[INFO] [stdout]                                 span: Span(
[INFO] [stdout]                                     Id {
[INFO] [stdout]                                         value: 35,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ),
[INFO] [stdout]                                 data: Number(
[INFO] [stdout]                                     OrderedFloat(
[INFO] [stdout]                                         11.0,
[INFO] [stdout]                                     ),
[INFO] [stdout]                                 ),
[INFO] [stdout]                             },
[INFO] [stdout]                             Multiply,
[INFO] [stdout]                             Expression {
[INFO] [stdout]                                 span: Span(
[INFO] [stdout]                                     Id {
[INFO] [stdout]                                         value: 37,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ),
[INFO] [stdout]                                 data: Number(
[INFO] [stdout]                                     OrderedFloat(
[INFO] [stdout]                                         2.0,
[INFO] [stdout]                                     ),
[INFO] [stdout]                                 ),
[INFO] [stdout]                             },
[INFO] [stdout]                         ),
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]         ],
[INFO] [stdout]     },
[INFO] [stdout]     [[0m[4m[32mfunctions: [],
[INFO] [stdout]     },
[INFO] [stdout]     [
[INFO] [stdout]         Diagnostic {
[INFO] [stdout]             start: 0,
[INFO] [stdout]             end: 0,
[INFO] [stdout]             message: "Invalid token at 79",
[INFO] [stdout]         },
[INFO] [stdout]     [0m],
[INFO] [stdout] )
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] ---- parser::parse_precedence stdout ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] [1m[91merror[97m: expect test failed[0m
[INFO] [stdout]    [1m[34m-->[0m src/parser.rs:361:20
[INFO] [stdout] 
[INFO] [stdout] [1mExpect[0m:
[INFO] [stdout] ----
[INFO] [stdout] (
[INFO] [stdout]     Program {
[INFO] [stdout]         [salsa id]: 0,
[INFO] [stdout]         statements: [
[INFO] [stdout]             Statement {
[INFO] [stdout]                 span: Span(
[INFO] [stdout]                     Id {
[INFO] [stdout]                         value: 11,
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]                 data: Print(
[INFO] [stdout]                     Expression {
[INFO] [stdout]                         span: Span(
[INFO] [stdout]                             Id {
[INFO] [stdout]                                 value: 10,
[INFO] [stdout]                             },
[INFO] [stdout]                         ),
[INFO] [stdout]                         data: Op(
[INFO] [stdout]                             Expression {
[INFO] [stdout]                                 span: Span(
[INFO] [stdout]                                     Id {
[INFO] [stdout]                                         value: 7,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ),
[INFO] [stdout]                                 data: Op(
[INFO] [stdout]                                     Expression {
[INFO] [stdout]                                         span: Span(
[INFO] [stdout]                                             Id {
[INFO] [stdout]                                                 value: 1,
[INFO] [stdout]                                             },
[INFO] [stdout]                                         ),
[INFO] [stdout]                                         data: Number(
[INFO] [stdout]                                             OrderedFloat(
[INFO] [stdout]                                                 1.0,
[INFO] [stdout]                                             ),
[INFO] [stdout]                                         ),
[INFO] [stdout]                                     },
[INFO] [stdout]                                     Add,
[INFO] [stdout]                                     Expression {
[INFO] [stdout]                                         span: Span(
[INFO] [stdout]                                             Id {
[INFO] [stdout]                                                 value: 6,
[INFO] [stdout]                                             },
[INFO] [stdout]                                         ),
[INFO] [stdout]                                         data: Op(
[INFO] [stdout]                                             Expression {
[INFO] [stdout]                                                 span: Span(
[INFO] [stdout]                                                     Id {
[INFO] [stdout]                                                         value: 3,
[INFO] [stdout]                                                     },
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                                 data: Number(
[INFO] [stdout]                                                     OrderedFloat(
[INFO] [stdout]                                                         2.0,
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                             },
[INFO] [stdout]                                             Multiply,
[INFO] [stdout]                                             Expression {
[INFO] [stdout]                                                 span: Span(
[INFO] [stdout]                                                     Id {
[INFO] [stdout]                                                         value: 5,
[INFO] [stdout]                                                     },
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                                 data: Number(
[INFO] [stdout]                                                     OrderedFloat(
[INFO] [stdout]                                                         3.0,
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                             },
[INFO] [stdout]                                         ),
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ),
[INFO] [stdout]                             },
[INFO] [stdout]                             Add,
[INFO] [stdout]                             Expression {
[INFO] [stdout]                                 span: Span(
[INFO] [stdout]                                     Id {
[INFO] [stdout]                                         value: 9,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ),
[INFO] [stdout]                                 data: Number(
[INFO] [stdout]                                     OrderedFloat(
[INFO] [stdout]                                         4.0,
[INFO] [stdout]                                     ),
[INFO] [stdout]                                 ),
[INFO] [stdout]                             },
[INFO] [stdout]                         ),
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]         ],
[INFO] [stdout]     },
[INFO] [stdout]     [],
[INFO] [stdout] )
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mActual[0m:
[INFO] [stdout] ----
[INFO] [stdout] (
[INFO] [stdout]     Program {
[INFO] [stdout]         [salsa id]: 0,
[INFO] [stdout]         functions: [],
[INFO] [stdout]     },
[INFO] [stdout]     [],
[INFO] [stdout] )
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mDiff[0m:
[INFO] [stdout] ----
[INFO] [stdout] (
[INFO] [stdout]     Program {
[INFO] [stdout]         [salsa id]: 0,
[INFO] [stdout]         [4m[31mstatements: [
[INFO] [stdout]             Statement {
[INFO] [stdout]                 span: Span(
[INFO] [stdout]                     Id {
[INFO] [stdout]                         value: 11,
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]                 data: Print(
[INFO] [stdout]                     Expression {
[INFO] [stdout]                         span: Span(
[INFO] [stdout]                             Id {
[INFO] [stdout]                                 value: 10,
[INFO] [stdout]                             },
[INFO] [stdout]                         ),
[INFO] [stdout]                         data: Op(
[INFO] [stdout]                             Expression {
[INFO] [stdout]                                 span: Span(
[INFO] [stdout]                                     Id {
[INFO] [stdout]                                         value: 7,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ),
[INFO] [stdout]                                 data: Op(
[INFO] [stdout]                                     Expression {
[INFO] [stdout]                                         span: Span(
[INFO] [stdout]                                             Id {
[INFO] [stdout]                                                 value: 1,
[INFO] [stdout]                                             },
[INFO] [stdout]                                         ),
[INFO] [stdout]                                         data: Number(
[INFO] [stdout]                                             OrderedFloat(
[INFO] [stdout]                                                 1.0,
[INFO] [stdout]                                             ),
[INFO] [stdout]                                         ),
[INFO] [stdout]                                     },
[INFO] [stdout]                                     Add,
[INFO] [stdout]                                     Expression {
[INFO] [stdout]                                         span: Span(
[INFO] [stdout]                                             Id {
[INFO] [stdout]                                                 value: 6,
[INFO] [stdout]                                             },
[INFO] [stdout]                                         ),
[INFO] [stdout]                                         data: Op(
[INFO] [stdout]                                             Expression {
[INFO] [stdout]                                                 span: Span(
[INFO] [stdout]                                                     Id {
[INFO] [stdout]                                                         value: 3,
[INFO] [stdout]                                                     },
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                                 data: Number(
[INFO] [stdout]                                                     OrderedFloat(
[INFO] [stdout]                                                         2.0,
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                             },
[INFO] [stdout]                                             Multiply,
[INFO] [stdout]                                             Expression {
[INFO] [stdout]                                                 span: Span(
[INFO] [stdout]                                                     Id {
[INFO] [stdout]                                                         value: 5,
[INFO] [stdout]                                                     },
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                                 data: Number(
[INFO] [stdout]                                                     OrderedFloat(
[INFO] [stdout]                                                         3.0,
[INFO] [stdout]                                                     ),
[INFO] [stdout]                                                 ),
[INFO] [stdout]                                             },
[INFO] [stdout]                                         ),
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ),
[INFO] [stdout]                             },
[INFO] [stdout]                             Add,
[INFO] [stdout]                             Expression {
[INFO] [stdout]                                 span: Span(
[INFO] [stdout]                                     Id {
[INFO] [stdout]                                         value: 9,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ),
[INFO] [stdout]                                 data: Number(
[INFO] [stdout]                                     OrderedFloat(
[INFO] [stdout]                                         4.0,
[INFO] [stdout]                                     ),
[INFO] [stdout]                                 ),
[INFO] [stdout]                             },
[INFO] [stdout]                         ),
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]         [0m[4m[32mfunctions: [[0m],
[INFO] [stdout]     },
[INFO] [stdout]     [],
[INFO] [stdout] )
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] ---- parser::parse_print stdout ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] [1m[91merror[97m: expect test failed[0m
[INFO] [stdout]    [1m[34m-->[0m src/parser.rs:98:20
[INFO] [stdout] 
[INFO] [stdout] [1mExpect[0m:
[INFO] [stdout] ----
[INFO] [stdout] (
[INFO] [stdout]     Program {
[INFO] [stdout]         [salsa id]: 0,
[INFO] [stdout]         statements: [
[INFO] [stdout]             Statement {
[INFO] [stdout]                 span: Span(
[INFO] [stdout]                     Id {
[INFO] [stdout]                         value: 5,
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]                 data: Print(
[INFO] [stdout]                     Expression {
[INFO] [stdout]                         span: Span(
[INFO] [stdout]                             Id {
[INFO] [stdout]                                 value: 4,
[INFO] [stdout]                             },
[INFO] [stdout]                         ),
[INFO] [stdout]                         data: Op(
[INFO] [stdout]                             Expression {
[INFO] [stdout]                                 span: Span(
[INFO] [stdout]                                     Id {
[INFO] [stdout]                                         value: 1,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ),
[INFO] [stdout]                                 data: Number(
[INFO] [stdout]                                     OrderedFloat(
[INFO] [stdout]                                         1.0,
[INFO] [stdout]                                     ),
[INFO] [stdout]                                 ),
[INFO] [stdout]                             },
[INFO] [stdout]                             Add,
[INFO] [stdout]                             Expression {
[INFO] [stdout]                                 span: Span(
[INFO] [stdout]                                     Id {
[INFO] [stdout]                                         value: 3,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ),
[INFO] [stdout]                                 data: Number(
[INFO] [stdout]                                     OrderedFloat(
[INFO] [stdout]                                         2.0,
[INFO] [stdout]                                     ),
[INFO] [stdout]                                 ),
[INFO] [stdout]                             },
[INFO] [stdout]                         ),
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]         ],
[INFO] [stdout]     },
[INFO] [stdout]     [],
[INFO] [stdout] )
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mActual[0m:
[INFO] [stdout] ----
[INFO] [stdout] (
[INFO] [stdout]     Program {
[INFO] [stdout]         [salsa id]: 0,
[INFO] [stdout]         functions: [],
[INFO] [stdout]     },
[INFO] [stdout]     [],
[INFO] [stdout] )
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] [1mDiff[0m:
[INFO] [stdout] ----
[INFO] [stdout] (
[INFO] [stdout]     Program {
[INFO] [stdout]         [salsa id]: 0,
[INFO] [stdout]         [4m[31mstatements: [
[INFO] [stdout]             Statement {
[INFO] [stdout]                 span: Span(
[INFO] [stdout]                     Id {
[INFO] [stdout]                         value: 5,
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]                 data: Print(
[INFO] [stdout]                     Expression {
[INFO] [stdout]                         span: Span(
[INFO] [stdout]                             Id {
[INFO] [stdout]                                 value: 4,
[INFO] [stdout]                             },
[INFO] [stdout]                         ),
[INFO] [stdout]                         data: Op(
[INFO] [stdout]                             Expression {
[INFO] [stdout]                                 span: Span(
[INFO] [stdout]                                     Id {
[INFO] [stdout]                                         value: 1,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ),
[INFO] [stdout]                                 data: Number(
[INFO] [stdout]                                     OrderedFloat(
[INFO] [stdout]                                         1.0,
[INFO] [stdout]                                     ),
[INFO] [stdout]                                 ),
[INFO] [stdout]                             },
[INFO] [stdout]                             Add,
[INFO] [stdout]                             Expression {
[INFO] [stdout]                                 span: Span(
[INFO] [stdout]                                     Id {
[INFO] [stdout]                                         value: 3,
[INFO] [stdout]                                     },
[INFO] [stdout]                                 ),
[INFO] [stdout]                                 data: Number(
[INFO] [stdout]                                     OrderedFloat(
[INFO] [stdout]                                         2.0,
[INFO] [stdout]                                     ),
[INFO] [stdout]                                 ),
[INFO] [stdout]                             },
[INFO] [stdout]                         ),
[INFO] [stdout]                     },
[INFO] [stdout]                 ),
[INFO] [stdout]             },
[INFO] [stdout]         [0m[4m[32mfunctions: [[0m],
[INFO] [stdout]     },
[INFO] [stdout]     [],
[INFO] [stdout] )
[INFO] [stdout] ----
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     parser::parse_error
[INFO] [stdout]     parser::parse_example
[INFO] [stdout]     parser::parse_precedence
[INFO] [stdout]     parser::parse_print
[INFO] [stdout]     type_check::check_bad_function_in_function
[INFO] [stdout]     type_check::check_bad_function_in_program
[INFO] [stdout]     type_check::check_bad_variable_in_function
[INFO] [stdout]     type_check::check_bad_variable_in_program
[INFO] [stdout]     type_check::fix_bad_variable_in_function
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 1 passed; 9 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7bfe6a4019061da2cd8b70d4dec0a391818659bae94a0f0f10f01c1bfbc49e62", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7bfe6a4019061da2cd8b70d4dec0a391818659bae94a0f0f10f01c1bfbc49e62", kill_on_drop: false }`
[INFO] [stdout] 7bfe6a4019061da2cd8b70d4dec0a391818659bae94a0f0f10f01c1bfbc49e62
