[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-2026-03-05 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzyla%2Fbanana" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-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-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/zyla/banana on toolchain beta-2026-03-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "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-2026-03-05" "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-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 981b0cac57734537727fad0980df7764b8bcdb7466023853e276c9954c70b62f
[INFO] running `Command { std: "docker" "start" "-a" "981b0cac57734537727fad0980df7764b8bcdb7466023853e276c9954c70b62f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "981b0cac57734537727fad0980df7764b8bcdb7466023853e276c9954c70b62f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "981b0cac57734537727fad0980df7764b8bcdb7466023853e276c9954c70b62f", kill_on_drop: false }`
[INFO] [stdout] 981b0cac57734537727fad0980df7764b8bcdb7466023853e276c9954c70b62f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b6dd0185355825ff5fe36ecb48b1d557604ad7847ff1410d82279d551786f227
[INFO] running `Command { std: "docker" "start" "-a" "b6dd0185355825ff5fe36ecb48b1d557604ad7847ff1410d82279d551786f227", 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 ahash v0.7.6
[INFO] [stderr]    Compiling io-lifetimes v1.0.9
[INFO] [stderr]    Compiling proc-macro2 v1.0.56
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling memoffset v0.8.0
[INFO] [stderr]    Compiling rustix v0.37.7
[INFO] [stderr]    Compiling quote v1.0.26
[INFO] [stderr]    Compiling unicode-ident v1.0.8
[INFO] [stderr]    Compiling aho-corasick v0.7.20
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.14
[INFO] [stderr]    Compiling regex-syntax v0.6.29
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling siphasher v0.3.10
[INFO] [stderr]    Compiling linux-raw-sys v0.3.1
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling getrandom v0.2.8
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling phf_shared v0.10.0
[INFO] [stderr]    Compiling eyre v0.6.8
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.4
[INFO] [stderr]    Compiling either v1.8.1
[INFO] [stderr]    Compiling crossbeam-queue v0.3.8
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling petgraph v0.6.3
[INFO] [stderr]    Compiling term v0.7.0
[INFO] [stderr]    Compiling parking_lot v0.12.1
[INFO] [stderr]    Compiling ascii-canvas v3.0.0
[INFO] [stderr]    Compiling string_cache v0.8.7
[INFO] [stderr]    Compiling ena v0.14.2
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling pico-args v0.4.2
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling indenter v0.3.3
[INFO] [stderr]    Compiling regex v1.7.3
[INFO] [stderr]    Compiling is-terminal v0.4.6
[INFO] [stderr]    Compiling crossbeam-deque v0.8.3
[INFO] [stderr]    Compiling crossbeam-channel v0.5.7
[INFO] [stderr]    Compiling dashmap v5.4.0
[INFO] [stderr]    Compiling hashlink v0.8.1
[INFO] [stderr]    Compiling crossbeam v0.8.2
[INFO] [stderr]    Compiling arc-swap v1.6.0
[INFO] [stderr]    Compiling lalrpop-util v0.19.9
[INFO] [stderr]    Compiling lalrpop v0.19.9
[INFO] [stderr]    Compiling ordered-float v3.6.0
[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-fb95ecb37dc22fbe/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 52.93s
[INFO] running `Command { std: "docker" "inspect" "b6dd0185355825ff5fe36ecb48b1d557604ad7847ff1410d82279d551786f227", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b6dd0185355825ff5fe36ecb48b1d557604ad7847ff1410d82279d551786f227", kill_on_drop: false }`
[INFO] [stdout] b6dd0185355825ff5fe36ecb48b1d557604ad7847ff1410d82279d551786f227
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5f1f66e59bc8fb0998b6fc896e4f61960792116fe6f477ba7fe7857108210cbf
[INFO] running `Command { std: "docker" "start" "-a" "5f1f66e59bc8fb0998b6fc896e4f61960792116fe6f477ba7fe7857108210cbf", 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-fb95ecb37dc22fbe/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 5.33s
[INFO] running `Command { std: "docker" "inspect" "5f1f66e59bc8fb0998b6fc896e4f61960792116fe6f477ba7fe7857108210cbf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f1f66e59bc8fb0998b6fc896e4f61960792116fe6f477ba7fe7857108210cbf", kill_on_drop: false }`
[INFO] [stdout] 5f1f66e59bc8fb0998b6fc896e4f61960792116fe6f477ba7fe7857108210cbf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] dc8b2d6327c30ea34bc9f8ba1d1caa36569288a1f53c719495b982362edb1c60
[INFO] running `Command { std: "docker" "start" "-a" "dc8b2d6327c30ea34bc9f8ba1d1caa36569288a1f53c719495b982362edb1c60", 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-fb95ecb37dc22fbe/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" -p banana --tests` to apply 3 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.19s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/banana-b32310f774f93c0a)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test type_check::check_bad_function_in_function ... FAILED
[INFO] [stdout] test type_check::check_print ... ok
[INFO] [stdout] test parser::parse_error ... FAILED
[INFO] [stdout] test parser::parse_print ... FAILED
[INFO] [stdout] test parser::parse_precedence ... FAILED
[INFO] [stdout] test parser::parse_example ... FAILED
[INFO] [stdout] test type_check::fix_bad_variable_in_function ... FAILED
[INFO] [stdout] test type_check::check_bad_function_in_program ... FAILED
[INFO] [stdout] test type_check::check_bad_variable_in_program ... FAILED
[INFO] [stdout] test type_check::check_bad_variable_in_function ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[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] 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: 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] ---- 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] [stderr] error: test failed, to rerun pass `--bin banana`
[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] ---- 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_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] [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] ---- 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] [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_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] ---- 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_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] 
[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.23s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "dc8b2d6327c30ea34bc9f8ba1d1caa36569288a1f53c719495b982362edb1c60", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dc8b2d6327c30ea34bc9f8ba1d1caa36569288a1f53c719495b982362edb1c60", kill_on_drop: false }`
[INFO] [stdout] dc8b2d6327c30ea34bc9f8ba1d1caa36569288a1f53c719495b982362edb1c60
