[INFO] cloning repository https://github.com/slothywasnottaken/hearth
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/slothywasnottaken/hearth" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fslothywasnottaken%2Fhearth", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fslothywasnottaken%2Fhearth'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 47b1a613062176b7cb24b9f8d9cc80a0dd628d0b
[INFO] testing slothywasnottaken/hearth against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fslothywasnottaken%2Fhearth" "/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/slothywasnottaken/hearth
[INFO] finished tweaking git repo https://github.com/slothywasnottaken/hearth
[INFO] tweaked toml for git repo https://github.com/slothywasnottaken/hearth written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/slothywasnottaken/hearth on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/slothywasnottaken/hearth 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" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[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" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 08798060002a58864310e3ac8c0f00759922ac21bb91544b679f98dd25f9e75b
[INFO] running `Command { std: "docker" "start" "-a" "08798060002a58864310e3ac8c0f00759922ac21bb91544b679f98dd25f9e75b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "08798060002a58864310e3ac8c0f00759922ac21bb91544b679f98dd25f9e75b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "08798060002a58864310e3ac8c0f00759922ac21bb91544b679f98dd25f9e75b", kill_on_drop: false }`
[INFO] [stdout] 08798060002a58864310e3ac8c0f00759922ac21bb91544b679f98dd25f9e75b
[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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5f65cc51cefd863c37bad702a78e28beefbb29dcfbe6be70960ba4e403049440
[INFO] running `Command { std: "docker" "start" "-a" "5f65cc51cefd863c37bad702a78e28beefbb29dcfbe6be70960ba4e403049440", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tokenizer v0.1.0 (/opt/rustwide/workdir/tokenizer)
[INFO] [stderr]    Compiling parser v0.1.0 (/opt/rustwide/workdir/parser)
[INFO] [stdout] warning: unused import: `Formatter`
[INFO] [stdout]  --> parser/src/parser.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fmt::{Debug, Display, Formatter},
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse_ctx` is never used
[INFO] [stdout]    --> parser/src/parser.rs:694:8
[INFO] [stdout]     |
[INFO] [stdout] 692 | impl<'a> Block<'a> {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 693 |     #[instrument(name = "Block::parse_ctx", skip(ctx, tokens))]
[INFO] [stdout] 694 |     fn parse_ctx(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse_ctx` is never used
[INFO] [stdout]     --> parser/src/parser.rs:1256:8
[INFO] [stdout]      |
[INFO] [stdout] 1254 | impl<'a> FunctionDecl<'a> {
[INFO] [stdout]      | ------------------------- associated function in this implementation
[INFO] [stdout] 1255 |     #[instrument(name = "FunctionDecl::parse_ctx", skip_all, err)]
[INFO] [stdout] 1256 |     fn parse_ctx(
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.49s
[INFO] running `Command { std: "docker" "inspect" "5f65cc51cefd863c37bad702a78e28beefbb29dcfbe6be70960ba4e403049440", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f65cc51cefd863c37bad702a78e28beefbb29dcfbe6be70960ba4e403049440", kill_on_drop: false }`
[INFO] [stdout] 5f65cc51cefd863c37bad702a78e28beefbb29dcfbe6be70960ba4e403049440
[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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 93a5064b1d5455391423125d36518dbe8ee30d35112e5b48248defeb573e6d36
[INFO] running `Command { std: "docker" "start" "-a" "93a5064b1d5455391423125d36518dbe8ee30d35112e5b48248defeb573e6d36", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `Formatter`
[INFO] [stdout]  --> parser/src/parser.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fmt::{Debug, Display, Formatter},
[INFO] [stdout]   |                           ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse_ctx` is never used
[INFO] [stdout]    --> parser/src/parser.rs:694:8
[INFO] [stdout]     |
[INFO] [stdout] 692 | impl<'a> Block<'a> {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 693 |     #[instrument(name = "Block::parse_ctx", skip(ctx, tokens))]
[INFO] [stdout] 694 |     fn parse_ctx(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling tokenizer v0.1.0 (/opt/rustwide/workdir/tokenizer)
[INFO] [stdout] warning: associated function `parse_ctx` is never used
[INFO] [stdout]     --> parser/src/parser.rs:1256:8
[INFO] [stdout]      |
[INFO] [stdout] 1254 | impl<'a> FunctionDecl<'a> {
[INFO] [stdout]      | ------------------------- associated function in this implementation
[INFO] [stdout] 1255 |     #[instrument(name = "FunctionDecl::parse_ctx", skip_all, err)]
[INFO] [stdout] 1256 |     fn parse_ctx(
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling parser v0.1.0 (/opt/rustwide/workdir/parser)
[INFO] [stdout] warning: unused import: `Formatter`
[INFO] [stdout]  --> parser/src/parser.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fmt::{Debug, Display, Formatter},
[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 variable: `t`
[INFO] [stdout]     --> parser/src/parser.rs:3256:21
[INFO] [stdout]      |
[INFO] [stdout] 3256 |                     t => false,
[INFO] [stdout]      |                     ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse_ctx` is never used
[INFO] [stdout]    --> parser/src/parser.rs:694:8
[INFO] [stdout]     |
[INFO] [stdout] 692 | impl<'a> Block<'a> {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 693 |     #[instrument(name = "Block::parse_ctx", skip(ctx, tokens))]
[INFO] [stdout] 694 |     fn parse_ctx(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse_ctx` is never used
[INFO] [stdout]     --> parser/src/parser.rs:1256:8
[INFO] [stdout]      |
[INFO] [stdout] 1254 | impl<'a> FunctionDecl<'a> {
[INFO] [stdout]      | ------------------------- associated function in this implementation
[INFO] [stdout] 1255 |     #[instrument(name = "FunctionDecl::parse_ctx", skip_all, err)]
[INFO] [stdout] 1256 |     fn parse_ctx(
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.01s
[INFO] running `Command { std: "docker" "inspect" "93a5064b1d5455391423125d36518dbe8ee30d35112e5b48248defeb573e6d36", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "93a5064b1d5455391423125d36518dbe8ee30d35112e5b48248defeb573e6d36", kill_on_drop: false }`
[INFO] [stdout] 93a5064b1d5455391423125d36518dbe8ee30d35112e5b48248defeb573e6d36
[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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d68699bab5cdf07d349b2f48c359621a8b01a9b14f5f65fedccfac66155e65a9
[INFO] running `Command { std: "docker" "start" "-a" "d68699bab5cdf07d349b2f48c359621a8b01a9b14f5f65fedccfac66155e65a9", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Formatter`
[INFO] [stderr]  --> parser/src/parser.rs:9:27
[INFO] [stderr]   |
[INFO] [stderr] 9 |     fmt::{Debug, Display, Formatter},
[INFO] [stderr]   |                           ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `parse_ctx` is never used
[INFO] [stderr]    --> parser/src/parser.rs:694:8
[INFO] [stderr]     |
[INFO] [stderr] 692 | impl<'a> Block<'a> {
[INFO] [stderr]     | ------------------ associated function in this implementation
[INFO] [stderr] 693 |     #[instrument(name = "Block::parse_ctx", skip(ctx, tokens))]
[INFO] [stderr] 694 |     fn parse_ctx(
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `parse_ctx` is never used
[INFO] [stderr]     --> parser/src/parser.rs:1256:8
[INFO] [stderr]      |
[INFO] [stderr] 1254 | impl<'a> FunctionDecl<'a> {
[INFO] [stderr]      | ------------------------- associated function in this implementation
[INFO] [stderr] 1255 |     #[instrument(name = "FunctionDecl::parse_ctx", skip_all, err)]
[INFO] [stderr] 1256 |     fn parse_ctx(
[INFO] [stderr]      |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `parser` (lib) generated 3 warnings (run `cargo fix --lib -p parser` to apply 1 suggestion)
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]     --> parser/src/parser.rs:3256:21
[INFO] [stderr]      |
[INFO] [stderr] 3256 |                     t => false,
[INFO] [stderr]      |                     ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `parser` (lib test) generated 4 warnings (3 duplicates) (run `cargo fix --lib -p parser --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/parser-dbf1dd9031170eaf)
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] [2m2026-05-11T23:53:41.360586Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.360657Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.360708Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.360742Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.360770Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.360807Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.360853Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.360903Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.360952Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.361010Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.361057Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [(Span { start: 38, end: 39 }, Comma), (Span { start: 40, end: 41 }, Number("1")), (Span { start: 41, end: 42 }, Comma), (Span { start: 43, end: 44 }, Number("2")), (Span { start: 44, end: 45 }, Comma), (Span { start: 46, end: 47 }, Number("3")), (Span { start: 47, end: 48 }, RightBracket), (Span { start: 48, end: 49 }, Semicolon), (Span { start: 58, end: 59 }, RightAngleBracket)] [3mval[0m[2m=[0mValue(Primitive(Number(I64(0))))
[INFO] [stdout] [2m2026-05-11T23:53:41.361139Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.361178Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.361218Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [(Span { start: 41, end: 42 }, Comma), (Span { start: 43, end: 44 }, Number("2")), (Span { start: 44, end: 45 }, Comma), (Span { start: 46, end: 47 }, Number("3")), (Span { start: 47, end: 48 }, RightBracket), (Span { start: 48, end: 49 }, Semicolon), (Span { start: 58, end: 59 }, RightAngleBracket)] [3mval[0m[2m=[0mValue(Primitive(Number(I64(1))))
[INFO] [stdout] [2m2026-05-11T23:53:41.361313Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.361352Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.361394Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [(Span { start: 44, end: 45 }, Comma), (Span { start: 46, end: 47 }, Number("3")), (Span { start: 47, end: 48 }, RightBracket), (Span { start: 48, end: 49 }, Semicolon), (Span { start: 58, end: 59 }, RightAngleBracket)] [3mval[0m[2m=[0mValue(Primitive(Number(I64(2))))
[INFO] [stdout] [2m2026-05-11T23:53:41.361458Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.361497Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.361537Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [(Span { start: 47, end: 48 }, RightBracket), (Span { start: 48, end: 49 }, Semicolon), (Span { start: 58, end: 59 }, RightAngleBracket)] [3mval[0m[2m=[0mValue(Primitive(Number(I64(3))))
[INFO] [stdout] [2m2026-05-11T23:53:41.361588Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.361628Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Array(Array { type_id: TypeId { id: 3, array: true }, values: [Primitive(Number(I64(0))), Primitive(Number(I64(1))), Primitive(Number(I64(2))), Primitive(Number(I64(3)))] }))), 9))
[INFO] [stdout] [2m2026-05-11T23:53:41.361677Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.361714Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("f", false, None, Value(Array(Array { type_id: TypeId { id: 3, array: true }, values: [Primitive(Number(I64(0))), Primitive(Number(I64(1))), Primitive(Number(I64(2))), Primitive(Number(I64(3)))] })), 12))
[INFO] [stdout] [2m2026-05-11T23:53:41.361755Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.361789Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"f" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Array(Array { type_id: TypeId { id: 3, array: true }, values: [Primitive(Number(I64(0))), Primitive(Number(I64(1))), Primitive(Number(I64(2))), Primitive(Number(I64(3)))] }))
[INFO] [stdout] [2m2026-05-11T23:53:41.361831Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.361859Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.361886Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.361917Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("f", Variable { typeid: TypeId { id: 3, array: true }, mutable: false, val: Value(Array(Array { type_id: TypeId { id: 3, array: true }, values: [Primitive(Number(I64(0))), Primitive(Number(I64(1))), Primitive(Number(I64(2))), Primitive(Number(I64(3)))] })) })))] }, 18))
[INFO] [stdout] [2m2026-05-11T23:53:41.361959Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.361998Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.362030Z[0m [32m INFO[0m [2mparser::parser::parseable[0m[2m:[0m [3mparser[0m[2m=[0mParser { typer: Typer { types: {}, type_ids: {}, next_id: ComplexTypeID { id: 12 } }, ast: Ast { nodes: [Function(FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("f", Variable { typeid: TypeId { id: 3, array: true }, mutable: false, val: Value(Array(Array { type_id: TypeId { id: 3, array: true }, values: [Primitive(Number(I64(0))), Primitive(Number(I64(1))), Primitive(Number(I64(2))), Primitive(Number(I64(3)))] })) })))] })] } }
[INFO] [stdout] [2m2026-05-11T23:53:41.362701Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.362825Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.362843Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.363024Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.363126Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.363196Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.363285Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.363365Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.363439Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.363500Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Primitive(Bool(true)))), 1))
[INFO] [stdout] [2m2026-05-11T23:53:41.363567Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.363632Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("bar", false, None, Value(Primitive(Bool(true))), 4))
[INFO] [stdout] [2m2026-05-11T23:53:41.363702Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.363761Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"bar" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Primitive(Bool(true)))
[INFO] [stdout] [2m2026-05-11T23:53:41.363834Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.363894Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.363965Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.364026Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Primitive(Bool(false)))), 1))
[INFO] [stdout] [2m2026-05-11T23:53:41.364098Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.364169Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("baz", false, None, Value(Primitive(Bool(false))), 4))
[INFO] [stdout] [2m2026-05-11T23:53:41.362909Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("BarBaz", StructDecl { visibility: Private, fields: {"i": TypeId { id: 10, array: false }} }, 8))
[INFO] [stdout] [2m2026-05-11T23:53:41.364276Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.364311Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.364333Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {}, type_ids: {}, next_id: ComplexTypeID { id: 12 } } [3mtype_name[0m[2m=[0m"BarBaz" [3mvalue[0m[2m=[0mStructDecl(StructDecl { visibility: Private, fields: {"i": TypeId { id: 10, array: false }} })
[INFO] [stdout] [2m2026-05-11T23:53:41.364373Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.364259Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.364396Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.364420Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("Baz", StructDecl { visibility: Private, fields: {"baz": TypeId { id: 23, array: false }} }, 7))
[INFO] [stdout] [2m2026-05-11T23:53:41.364414Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"baz" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Primitive(Bool(false)))
[INFO] [stdout] [2m2026-05-11T23:53:41.364446Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.364453Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.364471Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.364476Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.364487Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {"BarBaz": ComplexTypeID { id: 12 }}, type_ids: {ComplexTypeID { id: 12 }: Known(StructDecl(StructDecl { visibility: Private, fields: {"i": TypeId { id: 10, array: false }} }))}, next_id: ComplexTypeID { id: 13 } } [3mtype_name[0m[2m=[0m"Baz" [3mvalue[0m[2m=[0mStructDecl(StructDecl { visibility: Private, fields: {"baz": TypeId { id: 23, array: false }} })
[INFO] [stdout] [2m2026-05-11T23:53:41.364502Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.364524Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.364546Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.364528Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("bar", Variable { typeid: TypeId { id: 11, array: false }, mutable: false, val: Value(Primitive(Bool(true))) }))), (0, VariableDecl(("baz", Variable { typeid: TypeId { id: 11, array: false }, mutable: false, val: Value(Primitive(Bool(false))) })))] }, 15))
[INFO] [stdout] [2m2026-05-11T23:53:41.364537Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.364555Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.364567Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("Foo", StructDecl { visibility: Private, fields: {"bar": TypeId { id: 24, array: false }} }, 7))
[INFO] [stdout] [2m2026-05-11T23:53:41.364580Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.364570Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.364611Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("Foo", StructDecl { visibility: Private, fields: {"i": TypeId { id: 3, array: false }} }, 7))
[INFO] [stdout] [2m2026-05-11T23:53:41.364626Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mEnumDecl::parse[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.364639Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.364639Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.364658Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mEnumDecl::parse[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.365147Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.365263Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {}, type_ids: {}, next_id: ComplexTypeID { id: 12 } } [3mtype_name[0m[2m=[0m"Bar" [3mvalue[0m[2m=[0mEnum(EnumDecl { visibility: Private, fields: {"Z": I64(2), "I": I64(0), "B": I64(1)} })
[INFO] [stdout] [2m2026-05-11T23:53:41.364667Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.364600Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.365628Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.367327Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mEnumDecl::parse[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.367345Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.367373Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mEnumDecl::parse[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.367370Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.367402Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.367373Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {"BarBaz": ComplexTypeID { id: 12 }, "Baz": ComplexTypeID { id: 13 }}, type_ids: {ComplexTypeID { id: 12 }: Known(StructDecl(StructDecl { visibility: Private, fields: {"i": TypeId { id: 10, array: false }} })), ComplexTypeID { id: 13 }: Known(StructDecl(StructDecl { visibility: Private, fields: {"baz": TypeId { id: 23, array: false }} }))}, next_id: ComplexTypeID { id: 14 } } [3mtype_name[0m[2m=[0m"Foo" [3mvalue[0m[2m=[0mStructDecl(StructDecl { visibility: Private, fields: {"bar": TypeId { id: 24, array: false }} })
[INFO] [stdout] [2m2026-05-11T23:53:41.367408Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("Foo", StructDecl { visibility: Private, fields: {"i": TypeId { id: 3, array: false }} }, 7))
[INFO] [stdout] [2m2026-05-11T23:53:41.367420Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {}, type_ids: {}, next_id: ComplexTypeID { id: 12 } } [3mtype_name[0m[2m=[0m"Foo" [3mvalue[0m[2m=[0mEnum(EnumDecl { visibility: Pub, fields: {"Bar": I64(10)} })
[INFO] [stdout] [2m2026-05-11T23:53:41.367441Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.367466Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.367471Z[0m [32m INFO[0m [2mparser::parser::parseable[0m[2m:[0m [3mparser[0m[2m=[0mParser { typer: Typer { types: {"Foo": ComplexTypeID { id: 12 }}, type_ids: {ComplexTypeID { id: 12 }: Known(Enum(EnumDecl { visibility: Pub, fields: {"Bar": I64(10)} }))}, next_id: ComplexTypeID { id: 13 } }, ast: Ast { nodes: [] } }
[INFO] [stdout] [2m2026-05-11T23:53:41.367483Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {}, type_ids: {}, next_id: ComplexTypeID { id: 12 } } [3mtype_name[0m[2m=[0m"Foo" [3mvalue[0m[2m=[0mStructDecl(StructDecl { visibility: Private, fields: {"i": TypeId { id: 3, array: false }} })
[INFO] [stdout] [2m2026-05-11T23:53:41.367518Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] test parser::parseable::array_test ... [2m2026-05-11T23:53:41.367537Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] ok
[INFO] [stdout] [2m2026-05-11T23:53:41.367587Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] test parser::parseable::bool_test ... ok
[INFO] [stdout] [2m2026-05-11T23:53:41.367609Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.367630Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.367660Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.367684Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.367311Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.366129Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.367802Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.367860Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.367887Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.367912Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.367934Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.367957Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.367975Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.367997Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: Some([(false, "t", TypeId { id: 2, array: true })]), return_type: None, block: [] }, 10))
[INFO] [stdout] [2m2026-05-11T23:53:41.368023Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368033Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368060Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368060Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368083Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.368086Z[0m [32m INFO[0m [2mparser::parser::parseable[0m[2m:[0m [3mparser[0m[2m=[0mParser { typer: Typer { types: {}, type_ids: {}, next_id: ComplexTypeID { id: 12 } }, ast: Ast { nodes: [Function(FunctionDecl { visibility: Private, name: "foo", args: Some([(false, "t", TypeId { id: 2, array: true })]), return_type: None, block: [] })] } }
[INFO] [stdout] [2m2026-05-11T23:53:41.368105Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.368109Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368134Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368143Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368179Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368188Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368206Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368208Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Primitive(Number(I64(10))))), 1))
[INFO] [stdout] [2m2026-05-11T23:53:41.364668Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368262Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368275Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {}, type_ids: {}, next_id: ComplexTypeID { id: 12 } } [3mtype_name[0m[2m=[0m"Foo" [3mvalue[0m[2m=[0mStructDecl(StructDecl { visibility: Private, fields: {"i": TypeId { id: 3, array: false }} })
[INFO] [stdout] [2m2026-05-11T23:53:41.368283Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368296Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("foo", false, Some(TypeId { id: 7, array: false }), Value(Primitive(Number(I64(10)))), 6))
[INFO] [stdout] [2m2026-05-11T23:53:41.368311Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.368317Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368331Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368334Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.368343Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368359Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"foo" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mSome(TypeId { id: 7, array: false }) [3mvalue[0m[2m=[0mValue(Primitive(Number(I64(10))))
[INFO] [stdout] [2m2026-05-11T23:53:41.368368Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368383Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368396Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mReturn
[INFO] [stdout] [2m2026-05-11T23:53:41.368407Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368409Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.368420Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mStr("foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.368433Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.368444Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mSemicolon
[INFO] [stdout] [2m2026-05-11T23:53:41.368449Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368467Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.368465Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368490Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.368500Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368499Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368515Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368539Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368543Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368545Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: None, return_type: Some(TypeId { id: 7, array: false }), block: [(0, VariableDecl(("foo", Variable { typeid: TypeId { id: 3, array: false }, mutable: false, val: Value(Primitive(Number(I64(10)))) }))), (0, Return(Name("foo")))] }, 16))
[INFO] [stdout] [2m2026-05-11T23:53:41.368579Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368581Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368584Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368607Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368588Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368605Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("Bar", StructDecl { visibility: Private, fields: {"bar": TypeId { id: 3, array: false }} }, 8))
[INFO] [stdout] [2m2026-05-11T23:53:41.368617Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368632Z[0m [32m INFO[0m [2mparser::parser::parseable[0m[2m:[0m [3mval[0m[2m=[0mName("foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.368636Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368623Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m parsing enum
[INFO] [stdout] [2m2026-05-11T23:53:41.368653Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368641Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368658Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mStr("Bar")
[INFO] [stdout] [2m2026-05-11T23:53:41.368663Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368702Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368701Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.368726Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {}, type_ids: {}, next_id: ComplexTypeID { id: 12 } } [3mtype_name[0m[2m=[0m"Bar" [3mvalue[0m[2m=[0mStructDecl(StructDecl { visibility: Private, fields: {"bar": TypeId { id: 3, array: false }} })
[INFO] [stdout] [2m2026-05-11T23:53:41.368736Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.368712Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mStr("Foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.368738Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.368764Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.368770Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368784Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.368772Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mStr("I")
[INFO] [stdout] [2m2026-05-11T23:53:41.368772Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.368797Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368805Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368820Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("Foo", StructDecl { visibility: Private, fields: {"i": TypeId { id: 23, array: false }} }, 8))
[INFO] [stdout] [2m2026-05-11T23:53:41.368812Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mComma
[INFO] [stdout] [2m2026-05-11T23:53:41.368811Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("i")
[INFO] [stdout] [2m2026-05-11T23:53:41.368832Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: Some([(false, "baz", TypeId { id: 10, array: false }), (false, "bar", TypeId { id: 7, array: false })]), return_type: None, block: [] }, 12))
[INFO] [stdout] [2m2026-05-11T23:53:41.368849Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368865Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368853Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368875Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368852Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.368886Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368892Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {"Bar": ComplexTypeID { id: 12 }}, type_ids: {ComplexTypeID { id: 12 }: Known(StructDecl(StructDecl { visibility: Private, fields: {"bar": TypeId { id: 3, array: false }} }))}, next_id: ComplexTypeID { id: 13 } } [3mtype_name[0m[2m=[0m"Foo" [3mvalue[0m[2m=[0mStructDecl(StructDecl { visibility: Private, fields: {"i": TypeId { id: 23, array: false }} })
[INFO] [stdout] [2m2026-05-11T23:53:41.368915Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368893Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mNumber("0")
[INFO] [stdout] [2m2026-05-11T23:53:41.368933Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368935Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368956Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368936Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.368957Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.368903Z[0m [31mERROR[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [(Span { start: 97, end: 98 }, Comma), (Span { start: 99, end: 102 }, Str("Bar")), (Span { start: 102, end: 103 }, Colon), (Span { start: 103, end: 104 }, Colon), (Span { start: 104, end: 105 }, Str("B")), (Span { start: 105, end: 106 }, Comma), (Span { start: 107, end: 110 }, Str("Bar")), (Span { start: 110, end: 111 }, Colon), (Span { start: 111, end: 112 }, Colon), (Span { start: 112, end: 113 }, Str("Z")), (Span { start: 113, end: 114 }, RightBracket), (Span { start: 114, end: 115 }, Semicolon), (Span { start: 120, end: 121 }, RightAngleBracket)] [3mdecl[0m[2m=[0mEnum { id: ComplexTypeID { id: 12 }, field: I64(0) }
[INFO] [stdout] [2m2026-05-11T23:53:41.368976Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.368980Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368997Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.369010Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369028Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: Some([(false, "f", TypeId { id: 23, array: false })]), return_type: Some(TypeId { id: 3, array: false }), block: [] }, 9))
[INFO] [stdout] [2m2026-05-11T23:53:41.369039Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.369039Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.369057Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.369063Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.369078Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.369037Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [(Span { start: 97, end: 98 }, Comma), (Span { start: 99, end: 102 }, Str("Bar")), (Span { start: 102, end: 103 }, Colon), (Span { start: 103, end: 104 }, Colon), (Span { start: 104, end: 105 }, Str("B")), (Span { start: 105, end: 106 }, Comma), (Span { start: 107, end: 110 }, Str("Bar")), (Span { start: 110, end: 111 }, Colon), (Span { start: 111, end: 112 }, Colon), (Span { start: 112, end: 113 }, Str("Z")), (Span { start: 113, end: 114 }, RightBracket), (Span { start: 114, end: 115 }, Semicolon), (Span { start: 120, end: 121 }, RightAngleBracket)] [3mval[0m[2m=[0mValue(Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(0) })))
[INFO] [stdout] [2m2026-05-11T23:53:41.369101Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369096Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369119Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369141Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369126Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369161Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.369077Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [(Span { start: 84, end: 85 }, RightAngleBracket), (Span { start: 85, end: 86 }, Comma), (Span { start: 87, end: 90 }, Str("Foo")), (Span { start: 91, end: 92 }, LeftAngleBracket), (Span { start: 92, end: 93 }, Str("i")), (Span { start: 93, end: 94 }, Colon), (Span { start: 94, end: 96 }, Number("10")), (Span { start: 96, end: 97 }, RightAngleBracket), (Span { start: 97, end: 98 }, Comma), (Span { start: 99, end: 102 }, Str("Foo")), (Span { start: 102, end: 103 }, LeftAngleBracket), (Span { start: 103, end: 104 }, Str("i")), (Span { start: 104, end: 105 }, Colon), (Span { start: 105, end: 107 }, Number("20")), (Span { start: 107, end: 108 }, RightAngleBracket), (Span { start: 108, end: 109 }, RightBracket), (Span { start: 109, end: 110 }, Semicolon), (Span { start: 115, end: 116 }, RightAngleBracket)] [3mval[0m[2m=[0mValue(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(0))))] })))
[INFO] [stdout] [2m2026-05-11T23:53:41.369181Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.369186Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369202Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] test parser::parseable::float_test ... ok
[INFO] [stdout] [2m2026-05-11T23:53:41.369258Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m parsing enum
[INFO] [stdout] [2m2026-05-11T23:53:41.369278Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369301Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mStr("Bar")
[INFO] [stdout] [2m2026-05-11T23:53:41.369318Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mStr("Foo")
[INFO] [stdout] test parser::parseable::enum_decl ... ok
[INFO] [stdout] [2m2026-05-11T23:53:41.369208Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369343Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.369358Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.369381Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mColon
[INFO] [stdout] test parser::parseable::fn_array_test ... ok[2m2026-05-11T23:53:41.369395Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-11T23:53:41.369396Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("i")
[INFO] [stdout] [2m2026-05-11T23:53:41.369417Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mStr("B")
[INFO] [stdout] [2m2026-05-11T23:53:41.369435Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mColon
[INFO] [stdout] test parser::parseable::return_variable ... ok
[INFO] [stdout] [2m2026-05-11T23:53:41.369449Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369459Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mComma
[INFO] [stdout] [2m2026-05-11T23:53:41.369474Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mNumber("10")
[INFO] [stdout] [2m2026-05-11T23:53:41.369136Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369498Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369504Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.369515Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.369530Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Primitive(Number(I64(10))))), 1))
[INFO] [stdout] [2m2026-05-11T23:53:41.369540Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mStr("Foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.369558Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.369580Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.369586Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369551Z[0m [31mERROR[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [(Span { start: 105, end: 106 }, Comma), (Span { start: 107, end: 110 }, Str("Bar")), (Span { start: 110, end: 111 }, Colon), (Span { start: 111, end: 112 }, Colon), (Span { start: 112, end: 113 }, Str("Z")), (Span { start: 113, end: 114 }, RightBracket), (Span { start: 114, end: 115 }, Semicolon), (Span { start: 120, end: 121 }, RightAngleBracket)] [3mdecl[0m[2m=[0mEnum { id: ComplexTypeID { id: 12 }, field: I64(1) }
[INFO] [stdout] [2m2026-05-11T23:53:41.369602Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.369622Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369615Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("foo", false, None, Value(Primitive(Number(I64(10)))), 4))
[INFO] [stdout] [2m2026-05-11T23:53:41.369624Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.369648Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.369647Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("Foo", StructDecl { visibility: Pub, fields: {"i": TypeId { id: 2, array: false }} }, 9))
[INFO] [stdout] [2m2026-05-11T23:53:41.369676Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.369677Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"foo" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Primitive(Number(I64(10))))
[INFO] [stdout] [2m2026-05-11T23:53:41.369640Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [(Span { start: 96, end: 97 }, RightAngleBracket), (Span { start: 97, end: 98 }, Comma), (Span { start: 99, end: 102 }, Str("Foo")), (Span { start: 102, end: 103 }, LeftAngleBracket), (Span { start: 103, end: 104 }, Str("i")), (Span { start: 104, end: 105 }, Colon), (Span { start: 105, end: 107 }, Number("20")), (Span { start: 107, end: 108 }, RightAngleBracket), (Span { start: 108, end: 109 }, RightBracket), (Span { start: 109, end: 110 }, Semicolon), (Span { start: 115, end: 116 }, RightAngleBracket)] [3mval[0m[2m=[0mValue(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(10))))] })))
[INFO] [stdout] [2m2026-05-11T23:53:41.369703Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.369664Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [(Span { start: 105, end: 106 }, Comma), (Span { start: 107, end: 110 }, Str("Bar")), (Span { start: 110, end: 111 }, Colon), (Span { start: 111, end: 112 }, Colon), (Span { start: 112, end: 113 }, Str("Z")), (Span { start: 113, end: 114 }, RightBracket), (Span { start: 114, end: 115 }, Semicolon), (Span { start: 120, end: 121 }, RightAngleBracket)] [3mval[0m[2m=[0mValue(Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(1) })))
[INFO] [stdout] [2m2026-05-11T23:53:41.369580Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.369710Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mIf
[INFO] [stdout] [2m2026-05-11T23:53:41.369712Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369722Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {}, type_ids: {}, next_id: ComplexTypeID { id: 12 } } [3mtype_name[0m[2m=[0m"Foo" [3mvalue[0m[2m=[0mStructDecl(StructDecl { visibility: Pub, fields: {"i": TypeId { id: 2, array: false }} })
[INFO] [stdout] [2m2026-05-11T23:53:41.369729Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("i")
[INFO] [stdout] [2m2026-05-11T23:53:41.369739Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369740Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369755Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369752Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mparse_condition[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369771Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.369785Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369791Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mparse_condition[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(([Item(Name("foo")), Condition(LessThan), Item(Expr([Prim(Number(I64(10)))]))], 3))
[INFO] [stdout] [2m2026-05-11T23:53:41.369793Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369805Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369809Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mNumber("10")
[INFO] [stdout] [2m2026-05-11T23:53:41.369827Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mparse_condition[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.369822Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m parsing enum
[INFO] [stdout] [2m2026-05-11T23:53:41.369834Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.369832Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mStr("Foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.369859Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mReturn
[INFO] [stdout] [2m2026-05-11T23:53:41.369860Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.369850Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.369857Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mStr("Bar")
[INFO] [stdout] [2m2026-05-11T23:53:41.369884Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.369883Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.369874Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.369908Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.369907Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mElse
[INFO] [stdout] [2m2026-05-11T23:53:41.369894Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.369893Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.369912Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("i")
[INFO] [stdout] [2m2026-05-11T23:53:41.369939Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mparse_condition[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369931Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.369946Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.369953Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.369965Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mparse_condition[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(([Item(Name("foo")), Condition(Equal), Item(Expr([Prim(Number(I64(10)))]))], 4))
[INFO] [stdout] [2m2026-05-11T23:53:41.369968Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mStr("Z")
[INFO] [stdout] [2m2026-05-11T23:53:41.369982Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(10))))] })))), 6))
[INFO] [stdout] [2m2026-05-11T23:53:41.369992Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mNumber("20")
[INFO] [stdout] [2m2026-05-11T23:53:41.370011Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mparse_condition[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370024Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368995Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mStr("foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.370125Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.370019Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.370162Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.370186Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mFunctionCall::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.370186Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("BarBaz", StructDecl { visibility: Private, fields: {"i": TypeId { id: 10, array: false }} }, 8))
[INFO] [stdout] [2m2026-05-11T23:53:41.370219Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370194Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370274Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370257Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("f", false, None, Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(10))))] }))), 9))
[INFO] [stdout] [2m2026-05-11T23:53:41.370292Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {}, type_ids: {}, next_id: ComplexTypeID { id: 12 } } [3mtype_name[0m[2m=[0m"BarBaz" [3mvalue[0m[2m=[0mStructDecl(StructDecl { visibility: Private, fields: {"i": TypeId { id: 10, array: false }} })
[INFO] [stdout] [2m2026-05-11T23:53:41.370297Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370291Z[0m [31mERROR[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [(Span { start: 113, end: 114 }, RightBracket), (Span { start: 114, end: 115 }, Semicolon), (Span { start: 120, end: 121 }, RightAngleBracket)] [3mdecl[0m[2m=[0mEnum { id: ComplexTypeID { id: 12 }, field: I64(2) }
[INFO] [stdout] [2m2026-05-11T23:53:41.370328Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.370325Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"f" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(10))))] })))
[INFO] [stdout] [2m2026-05-11T23:53:41.370354Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.370348Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370312Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.370393Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.370402Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.370389Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [(Span { start: 113, end: 114 }, RightBracket), (Span { start: 114, end: 115 }, Semicolon), (Span { start: 120, end: 121 }, RightAngleBracket)] [3mval[0m[2m=[0mValue(Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(2) })))
[INFO] [stdout] [2m2026-05-11T23:53:41.370421Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.370428Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("Baz", StructDecl { visibility: Private, fields: {"baz": TypeId { id: 3, array: false }} }, 7))
[INFO] [stdout] [2m2026-05-11T23:53:41.370437Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370457Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370453Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.370482Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370484Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.370472Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Array(Array { type_id: TypeId { id: 23, array: true }, values: [Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(0) })), Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(1) })), Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(2) }))] }))), 16))
[INFO] [stdout] [2m2026-05-11T23:53:41.370034Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.370573Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370045Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] test parser::parseable::simple_struct ... ok
[INFO] [stdout] [2m2026-05-11T23:53:41.370638Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370639Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 1
[INFO] [stdout] [2m2026-05-11T23:53:41.370676Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mElse
[INFO] [stdout] [2m2026-05-11T23:53:41.370614Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370707Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mReturn
[INFO] [stdout] [2m2026-05-11T23:53:41.370678Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [(Span { start: 107, end: 108 }, RightAngleBracket), (Span { start: 108, end: 109 }, RightBracket), (Span { start: 109, end: 110 }, Semicolon), (Span { start: 115, end: 116 }, RightAngleBracket)] [3mval[0m[2m=[0mValue(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(20))))] })))
[INFO] [stdout] [2m2026-05-11T23:53:41.370732Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.370720Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("f", false, None, Value(Array(Array { type_id: TypeId { id: 23, array: true }, values: [Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(0) })), Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(1) })), Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(2) }))] })), 19))
[INFO] [stdout] [2m2026-05-11T23:53:41.370742Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370755Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.370771Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370790Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.370782Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Array(Array { type_id: TypeId { id: 23, array: true }, values: [Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(0))))] })), Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(10))))] })), Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(20))))] }))] }))), 22))
[INFO] [stdout] [2m2026-05-11T23:53:41.370804Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"f" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Array(Array { type_id: TypeId { id: 23, array: true }, values: [Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(0) })), Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(1) })), Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(2) }))] }))
[INFO] [stdout] [2m2026-05-11T23:53:41.370821Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.370834Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370850Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.370851Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Primitive(Number(I64(20))))), 1))
[INFO] [stdout] [2m2026-05-11T23:53:41.370876Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.370869Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("f", false, None, Value(Array(Array { type_id: TypeId { id: 23, array: true }, values: [Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(0))))] })), Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(10))))] })), Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(20))))] }))] })), 25))
[INFO] [stdout] [2m2026-05-11T23:53:41.370888Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370902Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370912Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370923Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("bar", false, None, Value(Primitive(Number(I64(20)))), 4))
[INFO] [stdout] [2m2026-05-11T23:53:41.370928Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("f", Variable { typeid: TypeId { id: 23, array: true }, mutable: false, val: Value(Array(Array { type_id: TypeId { id: 23, array: true }, values: [Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(0) })), Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(1) })), Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(2) }))] })) })))] }, 25))
[INFO] [stdout] [2m2026-05-11T23:53:41.370939Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"f" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Array(Array { type_id: TypeId { id: 23, array: true }, values: [Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(0))))] })), Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(10))))] })), Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(20))))] }))] }))
[INFO] [stdout] [2m2026-05-11T23:53:41.370956Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370968Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370992Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.371005Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370997Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"bar" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Primitive(Number(I64(20))))
[INFO] [stdout] [2m2026-05-11T23:53:41.371016Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.371031Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.371040Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.371030Z[0m [32m INFO[0m [2mparser::parser::parseable[0m[2m:[0m [3mparser[0m[2m=[0mParser { typer: Typer { types: {"Bar": ComplexTypeID { id: 12 }}, type_ids: {ComplexTypeID { id: 12 }: Known(Enum(EnumDecl { visibility: Private, fields: {"Z": I64(2), "I": I64(0), "B": I64(1)} }))}, next_id: ComplexTypeID { id: 13 } }, ast: Ast { nodes: [Function(FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("f", Variable { typeid: TypeId { id: 23, array: true }, mutable: false, val: Value(Array(Array { type_id: TypeId { id: 23, array: true }, values: [Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(0) })), Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(1) })), Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(2) }))] })) })))] })] } }
[INFO] [stdout] [2m2026-05-11T23:53:41.371066Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371066Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("f", Variable { typeid: TypeId { id: 23, array: true }, mutable: false, val: Value(Array(Array { type_id: TypeId { id: 23, array: true }, values: [Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(0))))] })), Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(10))))] })), Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(20))))] }))] })) })))] }, 31))
[INFO] [stdout] [2m2026-05-11T23:53:41.371107Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.371099Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371130Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] test parser::parseable::complex_enum_array_test ... ok
[INFO] [stdout] [2m2026-05-11T23:53:41.371155Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371165Z[0m [32m INFO[0m [2mparser::parser::parseable[0m[2m:[0m [3mparser[0m[2m=[0mParser { typer: Typer { types: {"Foo": ComplexTypeID { id: 12 }}, type_ids: {ComplexTypeID { id: 12 }: Known(StructDecl(StructDecl { visibility: Private, fields: {"i": TypeId { id: 3, array: false }} }))}, next_id: ComplexTypeID { id: 13 } }, ast: Ast { nodes: [Function(FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("f", Variable { typeid: TypeId { id: 23, array: true }, mutable: false, val: Value(Array(Array { type_id: TypeId { id: 23, array: true }, values: [Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(0))))] })), Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(10))))] })), Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(20))))] }))] })) })))] })] } }
[INFO] [stdout] [2m2026-05-11T23:53:41.371196Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370500Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {}, type_ids: {}, next_id: ComplexTypeID { id: 12 } } [3mtype_name[0m[2m=[0m"Baz" [3mvalue[0m[2m=[0mStructDecl(StructDecl { visibility: Private, fields: {"baz": TypeId { id: 3, array: false }} })
[INFO] [stdout] [2m2026-05-11T23:53:41.371248Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Name("bar")), 1))
[INFO] [stdout] [2m2026-05-11T23:53:41.370516Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371284Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.371297Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371313Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("gar", false, None, Name("bar"), 4))
[INFO] [stdout] [2m2026-05-11T23:53:41.371325Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371344Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.371350Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("Bar", StructDecl { visibility: Private, fields: {"bar": TypeId { id: 23, array: false }} }, 8))
[INFO] [stdout] [2m2026-05-11T23:53:41.371315Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371379Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.371372Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"gar" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mName("bar")
[INFO] [stdout] [2m2026-05-11T23:53:41.371407Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.371408Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mname[0m[2m=[0m"bar" [3mdecl[0m[2m=[0m("bar", Variable { typeid: TypeId { id: 3, array: false }, mutable: false, val: Value(Primitive(Number(I64(20)))) })
[INFO] [stdout] [2m2026-05-11T23:53:41.371428Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {"Baz": ComplexTypeID { id: 12 }}, type_ids: {ComplexTypeID { id: 12 }: Known(StructDecl(StructDecl { visibility: Private, fields: {"baz": TypeId { id: 3, array: false }} }))}, next_id: ComplexTypeID { id: 13 } } [3mtype_name[0m[2m=[0m"Bar" [3mvalue[0m[2m=[0mStructDecl(StructDecl { visibility: Private, fields: {"bar": TypeId { id: 23, array: false }} })
[INFO] [stdout] [2m2026-05-11T23:53:41.371441Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.371471Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371475Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371496Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371510Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371520Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("Foo", StructDecl { visibility: Private, fields: {"i": TypeId { id: 24, array: false }} }, 7))
[INFO] [stdout] [2m2026-05-11T23:53:41.371549Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.371545Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371578Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.371584Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371598Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {"Baz": ComplexTypeID { id: 12 }, "Bar": ComplexTypeID { id: 13 }}, type_ids: {ComplexTypeID { id: 13 }: Known(StructDecl(StructDecl { visibility: Private, fields: {"bar": TypeId { id: 23, array: false }} })), ComplexTypeID { id: 12 }: Known(StructDecl(StructDecl { visibility: Private, fields: {"baz": TypeId { id: 3, array: false }} }))}, next_id: ComplexTypeID { id: 14 } } [3mtype_name[0m[2m=[0m"Foo" [3mvalue[0m[2m=[0mStructDecl(StructDecl { visibility: Private, fields: {"i": TypeId { id: 24, array: false }} })
[INFO] [stdout] [2m2026-05-11T23:53:41.371627Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mStr("Foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.371649Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371678Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371668Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.371705Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("i")
[INFO] [stdout] [2m2026-05-11T23:53:41.371720Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371750Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.371744Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("Bar")
[INFO] [stdout] [2m2026-05-11T23:53:41.371751Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371775Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.371780Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.371796Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371810Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371812Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("bar")
[INFO] [stdout] [2m2026-05-11T23:53:41.371837Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371844Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.371863Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.371855Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371887Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.371878Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mNumber("10")
[INFO] [stdout] [2m2026-05-11T23:53:41.371907Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371917Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371917Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.371954Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371955Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mComma
[INFO] [stdout] [2m2026-05-11T23:53:41.371957Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372000Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.371999Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Primitive(String("foo_bar_baz")))), 1))
[INFO] [stdout] [2m2026-05-11T23:53:41.372009Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mStr("Foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.372036Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372035Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372051Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.372072Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("foo", false, None, Value(Primitive(String("foo_bar_baz"))), 4))
[INFO] [stdout] [2m2026-05-11T23:53:41.372078Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372088Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("i")
[INFO] [stdout] [2m2026-05-11T23:53:41.372105Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372111Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Primitive(Number(I64(10))))] })))] })))), 12))
[INFO] [stdout] [2m2026-05-11T23:53:41.372127Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("Bar")
[INFO] [stdout] [2m2026-05-11T23:53:41.372135Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"foo" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Primitive(String("foo_bar_baz")))
[INFO] [stdout] [2m2026-05-11T23:53:41.372154Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372169Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.372164Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.372192Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.372185Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("foo", false, None, Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Primitive(Number(I64(10))))] })))] }))), 15))
[INFO] [stdout] [2m2026-05-11T23:53:41.372201Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("bar")
[INFO] [stdout] [2m2026-05-11T23:53:41.372217Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372219Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372261Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("Baz")
[INFO] [stdout] [2m2026-05-11T23:53:41.372272Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("foo", Variable { typeid: TypeId { id: 10, array: false }, mutable: false, val: Value(Primitive(String("foo_bar_baz"))) })))] }, 10))
[INFO] [stdout] [2m2026-05-11T23:53:41.372274Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"foo" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Primitive(Number(I64(10))))] })))] })))
[INFO] [stdout] [2m2026-05-11T23:53:41.372307Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372300Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.372319Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.372333Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372336Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("baz")
[INFO] [stdout] [2m2026-05-11T23:53:41.372357Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372374Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.372387Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372410Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mNumber("10")
[INFO] [stdout] [2m2026-05-11T23:53:41.372419Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372424Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372455Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372448Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mComma
[INFO] [stdout] [2m2026-05-11T23:53:41.372462Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372492Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(StructAccess(StructAccess { name: "foo", fields: ["i"] })), 3))
[INFO] [stdout] [2m2026-05-11T23:53:41.372499Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("Baz", StructDecl { visibility: Private, fields: {"bar_baz": TypeId { id: 2, array: false }} }, 8))
[INFO] [stdout] [2m2026-05-11T23:53:41.372489Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.372531Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372527Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.368210Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.372534Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mComma
[INFO] [stdout] [2m2026-05-11T23:53:41.372560Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372561Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("b", false, None, StructAccess(StructAccess { name: "foo", fields: ["i"] }), 6))
[INFO] [stdout] [2m2026-05-11T23:53:41.372578Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {}, type_ids: {}, next_id: ComplexTypeID { id: 12 } } [3mtype_name[0m[2m=[0m"Baz" [3mvalue[0m[2m=[0mStructDecl(StructDecl { visibility: Private, fields: {"bar_baz": TypeId { id: 2, array: false }} })
[INFO] [stdout] [2m2026-05-11T23:53:41.372572Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.372578Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.372593Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372616Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372612Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mComma
[INFO] [stdout] [2m2026-05-11T23:53:41.372640Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372636Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372631Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"b" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mStructAccess(StructAccess { name: "foo", fields: ["i"] })
[INFO] [stdout] [2m2026-05-11T23:53:41.372649Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.372664Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("Bar", StructDecl { visibility: Private, fields: {"baz": TypeId { id: 23, array: false }, "bar": TypeId { id: 1, array: false }} }, 12))
[INFO] [stdout] [2m2026-05-11T23:53:41.372670Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstruct_access[0m[2m=[0mStructAccess { name: "foo", fields: ["i"] } [3mdecl[0m[2m=[0m("foo", Variable { typeid: TypeId { id: 24, array: false }, mutable: false, val: Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Primitive(Number(I64(10))))] })))] }))) })
[INFO] [stdout] [2m2026-05-11T23:53:41.372692Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.370362Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.372691Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372714Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstruc[0m[2m=[0mStruct { name: Known("Foo"), fields: [(0, "i", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Primitive(Number(I64(10))))] })))] }
[INFO] [stdout] [2m2026-05-11T23:53:41.372731Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372731Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372733Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372752Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.372754Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {"Baz": ComplexTypeID { id: 12 }}, type_ids: {ComplexTypeID { id: 12 }: Known(StructDecl(StructDecl { visibility: Private, fields: {"bar_baz": TypeId { id: 2, array: false }} }))}, next_id: ComplexTypeID { id: 13 } } [3mtype_name[0m[2m=[0m"Bar" [3mvalue[0m[2m=[0mStructDecl(StructDecl { visibility: Private, fields: {"baz": TypeId { id: 23, array: false }, "bar": TypeId { id: 1, array: false }} })
[INFO] [stdout] [2m2026-05-11T23:53:41.372764Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372773Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.372798Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372772Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Complex(Struct(Struct { name: Known("Baz"), fields: [(2, "baz", Primitive(Number(I64(10))))] })))] })))] })))), 19))
[INFO] [stdout] [2m2026-05-11T23:53:41.372797Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372798Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372822Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372821Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372837Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mFunctionCall::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372847Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("Foo", StructDecl { visibility: Private, fields: {"bar": TypeId { id: 10, array: false }, "foo": TypeId { id: 24, array: false }, "baz": TypeId { id: 0, array: false }} }, 16))
[INFO] [stdout] [2m2026-05-11T23:53:41.372674Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372828Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("foo", Variable { typeid: TypeId { id: 3, array: false }, mutable: false, val: Value(Primitive(Number(I64(10)))) }))), (1, IfStatement(IfStatement { cond: [Item(Name("foo")), Condition(LessThan), Item(Expr([Prim(Number(I64(10)))]))] })), (0, Return(Empty)), (1, ElseIf(ElseIfStatement { cond: [Item(Name("foo")), Condition(Equal), Item(Expr([Prim(Number(I64(10)))]))] })), (1, Else), (0, Return(Empty)), (0, VariableDecl(("bar", Variable { typeid: TypeId { id: 3, array: false }, mutable: false, val: Value(Primitive(Number(I64(20)))) }))), (0, VariableDecl(("gar", Variable { typeid: TypeId { id: 3, array: false }, mutable: false, val: Value(Primitive(Number(I64(20)))) }))), (0, VariableDecl(("foo", Variable { typeid: TypeId { id: 24, array: false }, mutable: false, val: Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Primitive(Number(I64(10))))] })))] }))) }))), (0, VariableDecl(("b", Variable { typeid: TypeId { id: 23, array: false }, mutable: false, val: Value(Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Primitive(Number(I64(10))))] }))) })))] }, 63))
[INFO] [stdout] [2m2026-05-11T23:53:41.372879Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372873Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("foo", false, None, Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Complex(Struct(Struct { name: Known("Baz"), fields: [(2, "baz", Primitive(Number(I64(10))))] })))] })))] }))), 22))
[INFO] [stdout] [2m2026-05-11T23:53:41.372904Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372909Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372885Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Primitive(Number(I64(0))))), 1))
[INFO] [stdout] [2m2026-05-11T23:53:41.372930Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372919Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372927Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {"Baz": ComplexTypeID { id: 12 }, "Bar": ComplexTypeID { id: 13 }}, type_ids: {ComplexTypeID { id: 13 }: Known(StructDecl(StructDecl { visibility: Private, fields: {"baz": TypeId { id: 23, array: false }, "bar": TypeId { id: 1, array: false }} })), ComplexTypeID { id: 12 }: Known(StructDecl(StructDecl { visibility: Private, fields: {"bar_baz": TypeId { id: 2, array: false }} }))}, next_id: ComplexTypeID { id: 14 } } [3mtype_name[0m[2m=[0m"Foo" [3mvalue[0m[2m=[0mStructDecl(StructDecl { visibility: Private, fields: {"bar": TypeId { id: 10, array: false }, "foo": TypeId { id: 24, array: false }, "baz": TypeId { id: 0, array: false }} })
[INFO] [stdout] [2m2026-05-11T23:53:41.372936Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.372984Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372953Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"foo" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Complex(Struct(Struct { name: Known("Baz"), fields: [(2, "baz", Primitive(Number(I64(10))))] })))] })))] })))
[INFO] [stdout] [2m2026-05-11T23:53:41.373013Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.372953Z[0m [32m INFO[0m [2mparser::parser::parseable[0m[2m:[0m [(0, VariableDecl(("foo", Variable { typeid: TypeId { id: 3, array: false }, mutable: false, val: Value(Primitive(Number(I64(10)))) }))), (1, IfStatement(IfStatement { cond: [Item(Name("foo")), Condition(LessThan), Item(Expr([Prim(Number(I64(10)))]))] })), (0, Return(Empty)), (1, ElseIf(ElseIfStatement { cond: [Item(Name("foo")), Condition(Equal), Item(Expr([Prim(Number(I64(10)))]))] })), (1, Else), (0, Return(Empty)), (0, VariableDecl(("bar", Variable { typeid: TypeId { id: 3, array: false }, mutable: false, val: Value(Primitive(Number(I64(20)))) }))), (0, VariableDecl(("gar", Variable { typeid: TypeId { id: 3, array: false }, mutable: false, val: Value(Primitive(Number(I64(20)))) }))), (0, VariableDecl(("foo", Variable { typeid: TypeId { id: 24, array: false }, mutable: false, val: Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Primitive(Number(I64(10))))] })))] }))) }))), (0, VariableDecl(("b", Variable { typeid: TypeId { id: 23, array: false }, mutable: false, val: Value(Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Primitive(Number(I64(10))))] }))) })))]
[INFO] [stdout] [2m2026-05-11T23:53:41.373064Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.369934Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: Some([(false, "i", TypeId { id: 2, array: false })]), return_type: None, block: [] }, 8))
[INFO] [stdout] [2m2026-05-11T23:53:41.373537Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] test parser::parseable::complex_struct_array_test ... [2m2026-05-11T23:53:41.373567Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.372973Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("foo", true, None, Value(Primitive(Number(I64(0)))), 5))
[INFO] [stdout] [2m2026-05-11T23:53:41.373478Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] ok
[INFO] [stdout] [2m2026-05-11T23:53:41.373611Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.373641Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.373681Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"foo" [3mmutable[0m[2m=[0mtrue [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Primitive(Number(I64(0))))
[INFO] [stdout] [2m2026-05-11T23:53:41.373705Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.373726Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mStr("foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.373738Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.373761Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.373771Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.373801Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.373810Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.373844Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.373842Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.373893Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Primitive(Number(I64(10))))), 3))
[INFO] [stdout] [2m2026-05-11T23:53:41.373908Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mMathExpr::parse[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.373926Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.373923Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.373942Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mMathExpr::parse[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.373954Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.373961Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.373977Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.373979Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Expr([Prim(Number(I64(0))), Op(Add), Prim(Number(I64(10))), Op(Mult), Prim(Number(I64(20))), Op(Div), Prim(Number(I64(30)))]), 7))
[INFO] [stdout] [2m2026-05-11T23:53:41.374006Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.374012Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374016Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.374028Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.374036Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("foo", true, Some(TypeId { id: 3, array: false }), Expr([Prim(Number(I64(0))), Op(Add), Prim(Number(I64(10))), Op(Mult), Prim(Number(I64(20))), Op(Div), Prim(Number(I64(30)))]), 11))
[INFO] [stdout] [2m2026-05-11T23:53:41.374049Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.374045Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.374067Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374076Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.374080Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.374089Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"foo" [3mmutable[0m[2m=[0mtrue [3mid[0m[2m=[0mSome(TypeId { id: 3, array: false }) [3mvalue[0m[2m=[0mExpr([Prim(Number(I64(0))), Op(Add), Prim(Number(I64(10))), Op(Mult), Prim(Number(I64(20))), Op(Div), Prim(Number(I64(30)))])
[INFO] [stdout] [2m2026-05-11T23:53:41.374107Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.374121Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.374117Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374139Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.374131Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Primitive(Number(I64(0))))), 1))
[INFO] [stdout] [2m2026-05-11T23:53:41.374159Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374150Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Name("foo")), 1))
[INFO] [stdout] [2m2026-05-11T23:53:41.374162Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374184Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374179Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("foo", Variable { typeid: TypeId { id: 3, array: false }, mutable: true, val: Expr([Prim(Number(I64(0))), Op(Add), Prim(Number(I64(10))), Op(Mult), Prim(Number(I64(20))), Op(Div), Prim(Number(I64(30)))]) })))] }, 17))
[INFO] [stdout] [2m2026-05-11T23:53:41.374192Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("foo", true, None, Value(Primitive(Number(I64(0)))), 5))
[INFO] [stdout] [2m2026-05-11T23:53:41.374213Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("bar", false, None, Name("foo"), 4))
[INFO] [stdout] [2m2026-05-11T23:53:41.374219Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374249Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.374264Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374268Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"foo" [3mmutable[0m[2m=[0mtrue [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Primitive(Number(I64(0))))
[INFO] [stdout] [2m2026-05-11T23:53:41.374279Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.374296Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mStr("foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.374294Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"bar" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mName("foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.374324Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.374324Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mname[0m[2m=[0m"foo" [3mdecl[0m[2m=[0m("foo", Variable { typeid: TypeId { id: 3, array: false }, mutable: true, val: Value(Primitive(Number(I64(0)))) })
[INFO] [stdout] [2m2026-05-11T23:53:41.374326Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.374354Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.374361Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.374376Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.374372Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.374390Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374400Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374419Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Primitive(Number(I64(10))))), 3))
[INFO] [stdout] [2m2026-05-11T23:53:41.374405Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mStr("Foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.374426Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("foo", Variable { typeid: TypeId { id: 3, array: false }, mutable: true, val: Value(Primitive(Number(I64(0)))) }))), (0, VariableReAssignment(("foo", Value(Primitive(Number(I64(10))))))), (0, VariableDecl(("bar", Variable { typeid: TypeId { id: 3, array: false }, mutable: true, val: Value(Primitive(Number(I64(0)))) })))] }, 21))
[INFO] [stdout] [2m2026-05-11T23:53:41.374445Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374446Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.374466Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374472Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.374492Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374494Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.374481Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("bar")
[INFO] [stdout] [2m2026-05-11T23:53:41.374516Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374517Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.374518Z[0m [32m INFO[0m [2mparser::parser::parseable[0m[2m:[0m Ast { nodes: [Function(FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("foo", Variable { typeid: TypeId { id: 3, array: false }, mutable: true, val: Value(Primitive(Number(I64(0)))) }))), (0, VariableReAssignment(("foo", Value(Primitive(Number(I64(10))))))), (0, VariableDecl(("bar", Variable { typeid: TypeId { id: 3, array: false }, mutable: true, val: Value(Primitive(Number(I64(0)))) })))] })] }
[INFO] [stdout] [2m2026-05-11T23:53:41.374538Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("foo", Variable { typeid: TypeId { id: 3, array: false }, mutable: true, val: Value(Primitive(Number(I64(0)))) }))), (0, VariableReAssignment(("foo", Value(Primitive(Number(I64(10)))))))] }, 15))
[INFO] [stdout] [2m2026-05-11T23:53:41.374569Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374553Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mQuotedString("bar_baz_foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.374564Z[0m [32m INFO[0m [2mparser::parser::parseable[0m[2m:[0m [3mparser[0m[2m=[0mParser { typer: Typer { types: {}, type_ids: {}, next_id: ComplexTypeID { id: 12 } }, ast: Ast { nodes: [Function(FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("foo", Variable { typeid: TypeId { id: 3, array: false }, mutable: true, val: Value(Primitive(Number(I64(0)))) }))), (0, VariableReAssignment(("foo", Value(Primitive(Number(I64(10))))))), (0, VariableDecl(("bar", Variable { typeid: TypeId { id: 3, array: false }, mutable: true, val: Value(Primitive(Number(I64(0)))) })))] })] } }
[INFO] [stdout] [2m2026-05-11T23:53:41.374591Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374593Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mComma
[INFO] [stdout] [2m2026-05-11T23:53:41.374629Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.373136Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.374674Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("Bar")
[INFO] [stdout] [2m2026-05-11T23:53:41.374709Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.374715Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.374757Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.371392Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.374793Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.374828Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374211Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374823Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mStr("BarBaz")
[INFO] [stdout] [2m2026-05-11T23:53:41.374876Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374864Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(StructAccess(StructAccess { name: "foo", fields: ["i"] })), 3))
[INFO] [stdout] [2m2026-05-11T23:53:41.374902Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374895Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.374940Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("bar", false, None, StructAccess(StructAccess { name: "foo", fields: ["i"] }), 6))
[INFO] [stdout] [2m2026-05-11T23:53:41.374937Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("i")
[INFO] [stdout] [2m2026-05-11T23:53:41.374976Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.374976Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.374744Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("bar")
[INFO] [stdout] [2m2026-05-11T23:53:41.375009Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"bar" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mStructAccess(StructAccess { name: "foo", fields: ["i"] })
[INFO] [stdout] [2m2026-05-11T23:53:41.375011Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mQuotedString("foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.375029Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.375039Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstruct_access[0m[2m=[0mStructAccess { name: "foo", fields: ["i"] } [3mdecl[0m[2m=[0m("foo", Variable { typeid: TypeId { id: 25, array: false }, mutable: false, val: Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Complex(Struct(Struct { name: Known("Baz"), fields: [(2, "baz", Primitive(Number(I64(10))))] })))] })))] }))) })
[INFO] [stdout] [2m2026-05-11T23:53:41.375045Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mComma
[INFO] [stdout] [2m2026-05-11T23:53:41.375072Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mNumber("5")
[INFO] [stdout] [2m2026-05-11T23:53:41.375078Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstruc[0m[2m=[0mStruct { name: Known("Foo"), fields: [(0, "i", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Complex(Struct(Struct { name: Known("Baz"), fields: [(2, "baz", Primitive(Number(I64(10))))] })))] })))] }
[INFO] [stdout] [2m2026-05-11T23:53:41.375078Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.375114Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.375114Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.375109Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mComma
[INFO] [stdout] [2m2026-05-11T23:53:41.375137Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.375151Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.375161Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.375146Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("baz")
[INFO] [stdout] [2m2026-05-11T23:53:41.375184Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Complex(Struct(Struct { name: Known("BarBaz"), fields: [(0, "i", Primitive(String("foo")))] })))), 7))
[INFO] [stdout] [2m2026-05-11T23:53:41.375182Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("Baz")
[INFO] [stdout] [2m2026-05-11T23:53:41.375185Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("foo", Variable { typeid: TypeId { id: 25, array: false }, mutable: false, val: Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Complex(Struct(Struct { name: Known("Baz"), fields: [(2, "baz", Primitive(Number(I64(10))))] })))] })))] }))) }))), (0, VariableDecl(("bar", Variable { typeid: TypeId { id: 24, array: false }, mutable: false, val: Value(Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Complex(Struct(Struct { name: Known("Baz"), fields: [(2, "baz", Primitive(Number(I64(10))))] })))] }))) })))] }, 35))
[INFO] [stdout] [2m2026-05-11T23:53:41.375218Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.375252Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.375218Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.375277Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.375274Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("bar_baz")
[INFO] [stdout] [2m2026-05-11T23:53:41.375274Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("bar", false, None, Value(Complex(Struct(Struct { name: Known("BarBaz"), fields: [(0, "i", Primitive(String("foo")))] }))), 10))
[INFO] [stdout] [2m2026-05-11T23:53:41.375300Z[0m [32m INFO[0m [2mparser::parser::parseable[0m[2m:[0m [3mname[0m[2m=[0mfoo [3mvariable[0m[2m=[0mFoo {i: bar: baz: 10 Baz { }  Bar { } }
[INFO] [stdout] [2m2026-05-11T23:53:41.375309Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.375304Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.375323Z[0m [32m INFO[0m [2mparser::parser::parseable[0m[2m:[0m [3mname[0m[2m=[0mbar [3mvariable[0m[2m=[0mBar {{bar: baz: 10 Baz { } }
[INFO] [stdout] [2m2026-05-11T23:53:41.375333Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mNumber("10")
[INFO] [stdout] [2m2026-05-11T23:53:41.375336Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"bar" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Complex(Struct(Struct { name: Known("BarBaz"), fields: [(0, "i", Primitive(String("foo")))] })))
[INFO] [stdout] [2m2026-05-11T23:53:41.375373Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mComma
[INFO] [stdout] [2m2026-05-11T23:53:41.375383Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.373576Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.375417Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.375414Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.375449Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.375449Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mComma
[INFO] [stdout] [2m2026-05-11T23:53:41.375477Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.375480Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.375501Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.375511Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mComma
[INFO] [stdout] [2m2026-05-11T23:53:41.375529Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.375540Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("baz")
[INFO] [stdout] [2m2026-05-11T23:53:41.375552Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.375569Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.375575Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mStr("foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.375601Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mNumber("15")
[INFO] [stdout] [2m2026-05-11T23:53:41.375617Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mFunctionCall::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.375655Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mComma
[INFO] [stdout] [2m2026-05-11T23:53:41.375685Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.375725Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.375774Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.375813Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "bar", Primitive(String("bar_baz_foo"))), (0, "foo", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Primitive(Number(I64(5)))), (1, "baz", Complex(Struct(Struct { name: Known("Baz"), fields: [(2, "bar_baz", Primitive(Number(I64(10))))] })))] }))), (0, "baz", Primitive(Number(I64(15))))] })))), 31))
[INFO] [stdout] [2m2026-05-11T23:53:41.376097Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.376147Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("bar", false, None, Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "bar", Primitive(String("bar_baz_foo"))), (0, "foo", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Primitive(Number(I64(5)))), (1, "baz", Complex(Struct(Struct { name: Known("Baz"), fields: [(2, "bar_baz", Primitive(Number(I64(10))))] })))] }))), (0, "baz", Primitive(Number(I64(15))))] }))), 34))
[INFO] [stdout] [2m2026-05-11T23:53:41.376196Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.376221Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"bar" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "bar", Primitive(String("bar_baz_foo"))), (0, "foo", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Primitive(Number(I64(5)))), (1, "baz", Complex(Struct(Struct { name: Known("Baz"), fields: [(2, "bar_baz", Primitive(Number(I64(10))))] })))] }))), (0, "baz", Primitive(Number(I64(15))))] })))
[INFO] [stdout] [2m2026-05-11T23:53:41.376288Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.376308Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.376330Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.376458Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("bar", Variable { typeid: TypeId { id: 25, array: false }, mutable: false, val: Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "bar", Primitive(String("bar_baz_foo"))), (0, "foo", Complex(Struct(Struct { name: Known("Bar"), fields: [(1, "bar", Primitive(Number(I64(5)))), (1, "baz", Complex(Struct(Struct { name: Known("Baz"), fields: [(2, "bar_baz", Primitive(Number(I64(10))))] })))] }))), (0, "baz", Primitive(Number(I64(15))))] }))) })))] }, 40))
[INFO] [stdout] [2m2026-05-11T23:53:41.376637Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.376687Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.375442Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.377034Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("bar", Variable { typeid: TypeId { id: 23, array: false }, mutable: false, val: Value(Complex(Struct(Struct { name: Known("BarBaz"), fields: [(0, "i", Primitive(String("foo")))] }))) })))] }, 16))
[INFO] [stdout] [2m2026-05-11T23:53:41.377164Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.377283Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.383686Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.383684Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.383786Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.383802Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.383834Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.383846Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.383866Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.383873Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.383890Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mReturn
[INFO] [stdout] [2m2026-05-11T23:53:41.383896Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.383911Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mNumber("0")
[INFO] [stdout] [2m2026-05-11T23:53:41.383936Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mSemicolon
[INFO] [stdout] [2m2026-05-11T23:53:41.383933Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.383958Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.383973Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.384063Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Primitive(Number(I64(10))))), 1))
[INFO] [stdout] [2m2026-05-11T23:53:41.384116Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.384173Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("foo", false, None, Value(Primitive(Number(I64(10)))), 4))
[INFO] [stdout] [2m2026-05-11T23:53:41.384040Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.384269Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.384316Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: Some([(true, "i", TypeId { id: 2, array: false }), (false, "bar", TypeId { id: 10, array: false })]), return_type: Some(TypeId { id: 2, array: false }), block: [(0, Return(Value(Primitive(Number(I64(0))))))] }, 17))
[INFO] [stdout] [2m2026-05-11T23:53:41.384373Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.384414Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.384220Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.384565Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"foo" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Primitive(Number(I64(10))))
[INFO] [stdout] [2m2026-05-11T23:53:41.384615Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.384648Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.384686Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.384717Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("foo", Variable { typeid: TypeId { id: 3, array: false }, mutable: false, val: Value(Primitive(Number(I64(10)))) })))] }, 10))
[INFO] [stdout] [2m2026-05-11T23:53:41.384761Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.384796Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.388621Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.388684Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.388720Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("Foo", StructDecl { visibility: Private, fields: {"i": TypeId { id: 3, array: false }} }, 8))
[INFO] [stdout] [2m2026-05-11T23:53:41.388772Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mStructDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.388800Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.388958Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {}, type_ids: {}, next_id: ComplexTypeID { id: 12 } } [3mtype_name[0m[2m=[0m"Foo" [3mvalue[0m[2m=[0mStructDecl(StructDecl { visibility: Private, fields: {"i": TypeId { id: 3, array: false }} })
[INFO] [stdout] [2m2026-05-11T23:53:41.389045Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.389097Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.389160Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.389199Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.389207Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.389267Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mEnumDecl::parse[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.389309Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] test parser::parseable::parse_primitive_string ... [2m2026-05-11T23:53:41.389390Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.389439Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.390262Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Primitive(String("urmom")))), 1))
[INFO] [stdout] [2m2026-05-11T23:53:41.390346Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.390400Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("bar", false, None, Value(Primitive(String("urmom"))), 4))
[INFO] [stdout] [2m2026-05-11T23:53:41.390460Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.390507Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"bar" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Primitive(String("urmom")))
[INFO] [stdout] [2m2026-05-11T23:53:41.390566Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.390615Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.389337Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mEnumDecl::parse[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] ok
[INFO] [stdout] test parser::parseable::parse_conditions ... ok
[INFO] [stdout] test parser::parseable::function_block ... ok
[INFO] [stdout] test parser::parseable::var_use ... ok
[INFO] [stdout] test parser::parseable::var_add ... ok[2m2026-05-11T23:53:41.390661Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.390763Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] 
[INFO] [stdout] test parser::parseable::struct_access ... ok
[INFO] [stdout] [2m2026-05-11T23:53:41.390780Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Primitive(String("foo")))), 1))
[INFO] [stdout] test parser::parseable::struct_use ... ok
[INFO] [stdout] test parser::parseable::function_decl ... ok
[INFO] [stdout] test parser::parseable::parse_primitive_number ... [2m2026-05-11T23:53:41.390883Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.390798Z[0m [34mDEBUG[0m [2mparser::types[0m[2m:[0m [3mself[0m[2m=[0mTyper { types: {}, type_ids: {}, next_id: ComplexTypeID { id: 12 } } [3mtype_name[0m[2m=[0m"Foo" [3mvalue[0m[2m=[0mEnum(EnumDecl { visibility: Private, fields: {"Bar": I64(10)} })
[INFO] [stdout] [2m2026-05-11T23:53:41.392302Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] ok[2m2026-05-11T23:53:41.392430Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.392518Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.392579Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.392642Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.392709Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.392782Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.392861Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.392942Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.393276Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m parsing enum
[INFO] [stdout] [2m2026-05-11T23:53:41.392376Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("baz", false, None, Value(Primitive(String("foo"))), 4))
[INFO] [stdout] 
[INFO] [stdout] [2m2026-05-11T23:53:41.395359Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.395280Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mStr("Foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.395516Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.395599Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.395496Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"baz" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Primitive(String("foo")))
[INFO] [stdout] [2m2026-05-11T23:53:41.395703Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.395685Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mStr("Bar")
[INFO] [stdout] [2m2026-05-11T23:53:41.395815Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mSemicolon
[INFO] [stdout] [2m2026-05-11T23:53:41.395881Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mEnum::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.395958Z[0m [31mERROR[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [(Span { start: 65, end: 68 }, Str("Bar")), (Span { start: 68, end: 69 }, Semicolon), (Span { start: 74, end: 75 }, RightAngleBracket)] [3mdecl[0m[2m=[0mEnum { id: ComplexTypeID { id: 12 }, field: I64(10) }
[INFO] [stdout] [2m2026-05-11T23:53:41.396047Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.396272Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(10) })))), 4))
[INFO] [stdout] [2m2026-05-11T23:53:41.395927Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.396372Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.397334Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("bar", false, None, Value(Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(10) }))), 7))
[INFO] [stdout] [2m2026-05-11T23:53:41.396408Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.397404Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.397540Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"bar" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(10) })))
[INFO] [stdout] [2m2026-05-11T23:53:41.397459Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.404431Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.404522Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Name("baz")), 1))
[INFO] [stdout] [2m2026-05-11T23:53:41.404569Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.404612Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("bazz", false, None, Name("baz"), 4))
[INFO] [stdout] [2m2026-05-11T23:53:41.404644Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.404670Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"bazz" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mName("baz")
[INFO] [stdout] [2m2026-05-11T23:53:41.404698Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mname[0m[2m=[0m"baz" [3mdecl[0m[2m=[0m("baz", Variable { typeid: TypeId { id: 10, array: false }, mutable: false, val: Value(Primitive(String("foo"))) })
[INFO] [stdout] [2m2026-05-11T23:53:41.404743Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.404784Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.404814Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.404840Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Primitive(Number(I64(10))))), 1))
[INFO] [stdout] [2m2026-05-11T23:53:41.404872Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.404903Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("bar_baz", false, None, Value(Primitive(Number(I64(10)))), 4))
[INFO] [stdout] [2m2026-05-11T23:53:41.404935Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.404961Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"bar_baz" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Primitive(Number(I64(10))))
[INFO] [stdout] [2m2026-05-11T23:53:41.404993Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mLet
[INFO] [stdout] [2m2026-05-11T23:53:41.405024Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.405052Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.405084Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.405122Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m enter
[INFO] [stdout] [2m2026-05-11T23:53:41.405160Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mStr("Foo")
[INFO] [stdout] [2m2026-05-11T23:53:41.405196Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mName [3mtoken[0m[2m=[0mLeftAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.405253Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mStr("i")
[INFO] [stdout] [2m2026-05-11T23:53:41.405289Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mColon
[INFO] [stdout] [2m2026-05-11T23:53:41.405324Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mNumber("15")
[INFO] [stdout] [2m2026-05-11T23:53:41.405359Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mstate[0m[2m=[0mValue [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.405394Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mStruct::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.405432Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.405463Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((Assignment(Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(15))))] })))), 6))
[INFO] [stdout] [2m2026-05-11T23:53:41.405503Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.405533Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk(("foo", false, None, Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(15))))] }))), 9))
[INFO] [stdout] [2m2026-05-11T23:53:41.405567Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.405595Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mvar_name[0m[2m=[0m"foo" [3mmutable[0m[2m=[0mfalse [3mid[0m[2m=[0mNone [3mvalue[0m[2m=[0mValue(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(15))))] })))
[INFO] [stdout] [2m2026-05-11T23:53:41.405635Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.405659Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.405685Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.405712Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("bar", Variable { typeid: TypeId { id: 10, array: false }, mutable: false, val: Value(Primitive(String("urmom"))) }))), (0, VariableDecl(("baz", Variable { typeid: TypeId { id: 10, array: false }, mutable: false, val: Value(Primitive(String("foo"))) }))), (0, VariableDecl(("bazz", Variable { typeid: TypeId { id: 10, array: false }, mutable: false, val: Value(Primitive(String("foo"))) }))), (0, VariableDecl(("bar_baz", Variable { typeid: TypeId { id: 3, array: false }, mutable: false, val: Value(Primitive(Number(I64(10)))) }))), (0, VariableDecl(("foo", Variable { typeid: TypeId { id: 23, array: false }, mutable: false, val: Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(15))))] }))) })))] }, 35))
[INFO] [stdout] [2m2026-05-11T23:53:41.405780Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.405805Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.405836Z[0m [32m INFO[0m [2mparser::parser::parseable[0m[2m:[0m [3mvariable[0m[2m=[0m("bar", Variable { typeid: TypeId { id: 10, array: false }, mutable: false, val: Value(Primitive(String("urmom"))) })
[INFO] [stdout] [2m2026-05-11T23:53:41.405854Z[0m [32m INFO[0m [2mparser::parser::parseable[0m[2m:[0m [3mvariable[0m[2m=[0m("baz", Variable { typeid: TypeId { id: 10, array: false }, mutable: false, val: Value(Primitive(String("foo"))) })
[INFO] [stdout] [2m2026-05-11T23:53:41.405867Z[0m [32m INFO[0m [2mparser::parser::parseable[0m[2m:[0m [3mvariable[0m[2m=[0m("bazz", Variable { typeid: TypeId { id: 10, array: false }, mutable: false, val: Value(Primitive(String("foo"))) })
[INFO] [stdout] [2m2026-05-11T23:53:41.405880Z[0m [32m INFO[0m [2mparser::parser::parseable[0m[2m:[0m [3mvariable[0m[2m=[0m("bar_baz", Variable { typeid: TypeId { id: 3, array: false }, mutable: false, val: Value(Primitive(Number(I64(10)))) })
[INFO] [stdout] [2m2026-05-11T23:53:41.405894Z[0m [32m INFO[0m [2mparser::parser::parseable[0m[2m:[0m [3mvariable[0m[2m=[0m("foo", Variable { typeid: TypeId { id: 23, array: false }, mutable: false, val: Value(Complex(Struct(Struct { name: Known("Foo"), fields: [(0, "i", Primitive(Number(I64(15))))] }))) })
[INFO] [stdout] [2m2026-05-11T23:53:41.406028Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mtoken[0m[2m=[0mRightAngleBracket
[INFO] [stdout] [2m2026-05-11T23:53:41.406063Z[0m [34mDEBUG[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m found closing bracket 0
[INFO] [stdout] [2m2026-05-11T23:53:41.406088Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.406116Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m [3mreturn[0m[2m=[0mOk((FunctionDecl { visibility: Private, name: "foo", args: None, return_type: None, block: [(0, VariableDecl(("bar", Variable { typeid: TypeId { id: 23, array: false }, mutable: false, val: Value(Complex(Enum(Enum { id: ComplexTypeID { id: 12 }, field: I64(10) }))) })))] }, 13))
[INFO] [stdout] [2m2026-05-11T23:53:41.406152Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.406175Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] test parser::parseable::multiple_variables ... ok
[INFO] [stdout] test parser::parseable::enum_use ... ok
[INFO] [stdout] test parser::parseable::complex_struct ... FAILED
[INFO] [stdout] [2m2026-05-11T23:53:41.441981Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mFunctionCall::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.442067Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.442104Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.442131Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.442686Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m[1mFunctionCall::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.442749Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m[1mVariableValue::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.442793Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m[1mVariableUse::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.442840Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mVariable::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.442873Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.442905Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.442948Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] test parser::parseable::function_call ... FAILED
[INFO] [stdout] test parser::parseable::complex_type_check ... FAILED
[INFO] [stdout] test parser::parseable::simple_struct_use ... FAILED
[INFO] [stdout] [2m2026-05-11T23:53:41.443122Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m[1mFunctionCall::parse_ctx[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.445305Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m[1mBlock::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.445361Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m[1mFunctionDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] [2m2026-05-11T23:53:41.445389Z[0m [32m INFO[0m [1mTypeDecl::parse_ctx_mut[0m[2m:[0m [2mparser::parser[0m[2m:[0m exit
[INFO] [stdout] test parser::parseable::simple_type_check ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- parser::parseable::complex_struct stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'parser::parseable::complex_struct' (21) panicked at parser/src/parser.rs:2597:61:
[INFO] [stdout] called `Option::unwrap()` on a `None` value
[INFO] [stdout] stack backtrace:
[INFO] [stderr] error: test failed, to rerun pass `-p parser --lib`
[INFO] [stdout]    0:     0x5b03184103fa - std[ec419fa8110287d5]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5b03184103fa - std[ec419fa8110287d5]::backtrace_rs::backtrace::trace_unsynchronized::<std[ec419fa8110287d5]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5b03184103fa - std[ec419fa8110287d5]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5b03184103fa - <<std[ec419fa8110287d5]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[35159d6ffb30e017]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5b031842651a - <core[35159d6ffb30e017]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5b031842651a - core[35159d6ffb30e017]::fmt::write
[INFO] [stdout]    6:     0x5b0318414ce2 - std[ec419fa8110287d5]::io::default_write_fmt::<alloc[a8a7aba520129d98]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x5b0318414ce2 - <alloc[a8a7aba520129d98]::vec::Vec<u8> as std[ec419fa8110287d5]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x5b03183ef1df - <std[ec419fa8110287d5]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5b03183ef1df - std[ec419fa8110287d5]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5b03184086c9 - std[ec419fa8110287d5]::panicking::default_hook
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5b031834d2dc - <alloc[a8a7aba520129d98]::boxed::Box<dyn for<'a, 'b> core[35159d6ffb30e017]::ops::function::Fn<(&'a std[ec419fa8110287d5]::panic::PanicHookInfo<'b>,), Output = ()> + core[35159d6ffb30e017]::marker::Sync + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::Fn<(&std[ec419fa8110287d5]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x5b031834d2dc - test[a8007afcd3effadc]::test_main_inner::<test[a8007afcd3effadc]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5b0318408882 - <alloc[a8a7aba520129d98]::boxed::Box<dyn for<'a, 'b> core[35159d6ffb30e017]::ops::function::Fn<(&'a std[ec419fa8110287d5]::panic::PanicHookInfo<'b>,), Output = ()> + core[35159d6ffb30e017]::marker::Sync + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::Fn<(&std[ec419fa8110287d5]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x5b0318408882 - std[ec419fa8110287d5]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5b03183ef2ca - std[ec419fa8110287d5]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x5b03183e6c09 - std[ec419fa8110287d5]::sys::backtrace::__rust_end_short_backtrace::<std[ec419fa8110287d5]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5b03183effad - __rustc[cfb3622dd870db93]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5b0318426cdc - core[35159d6ffb30e017]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5b0318426ca2 - core[35159d6ffb30e017]::panicking::panic
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x5b03184269f9 - core[35159d6ffb30e017]::option::unwrap_failed
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/option.rs:2251:5
[INFO] [stdout]   21:     0x5b03183390e3 - <core[35159d6ffb30e017]::option::Option<&parser[e745d244af7ec1e8]::types::ComplexType>>::unwrap
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/option.rs:1016:21
[INFO] [stdout]   22:     0x5b03183390e3 - parser[e745d244af7ec1e8]::parser::parseable::complex_struct
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:2597:61
[INFO] [stdout]   23:     0x5b03183343fd - parser[e745d244af7ec1e8]::parser::parseable::complex_struct::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:2574:28
[INFO] [stdout]   24:     0x5b0318323156 - <parser[e745d244af7ec1e8]::parser::parseable::complex_struct::{closure#0} as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5b03183405bb - <fn() -> core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x5b03183405bb - test[a8007afcd3effadc]::__rust_begin_short_backtrace::<core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>, fn() -> core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:724:18
[INFO] [stdout]   27:     0x5b031834ddab - test[a8007afcd3effadc]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:747:74
[INFO] [stdout]   28:     0x5b031834ddab - <core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   29:     0x5b031834ddab - std[ec419fa8110287d5]::panicking::catch_unwind::do_call::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>, core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:581:40
[INFO] [stdout]   30:     0x5b031834ddab - std[ec419fa8110287d5]::panicking::catch_unwind::<core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>, core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:544:19
[INFO] [stdout]   31:     0x5b031834ddab - std[ec419fa8110287d5]::panic::catch_unwind::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>, core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panic.rs:359:14
[INFO] [stdout]   32:     0x5b031834ddab - test[a8007afcd3effadc]::run_test_in_process
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:747:27
[INFO] [stdout]   33:     0x5b031834ddab - test[a8007afcd3effadc]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:668:43
[INFO] [stdout]   34:     0x5b0318348784 - test[a8007afcd3effadc]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:698:41
[INFO] [stdout]   35:     0x5b0318348784 - std[ec419fa8110287d5]::sys::backtrace::__rust_begin_short_backtrace::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   36:     0x5b03183509b2 - std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   37:     0x5b03183509b2 - <core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   38:     0x5b03183509b2 - std[ec419fa8110287d5]::panicking::catch_unwind::do_call::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:581:40
[INFO] [stdout]   39:     0x5b03183509b2 - std[ec419fa8110287d5]::panicking::catch_unwind::<(), core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:544:19
[INFO] [stdout]   40:     0x5b03183509b2 - std[ec419fa8110287d5]::panic::catch_unwind::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panic.rs:359:14
[INFO] [stdout]   41:     0x5b03183509b2 - std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   42:     0x5b03183509b2 - <std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1} as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x5b031840fcdf - <alloc[a8a7aba520129d98]::boxed::Box<dyn core[35159d6ffb30e017]::ops::function::FnOnce<(), Output = ()> + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   44:     0x5b031840fcdf - <std[ec419fa8110287d5]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   45:     0x78173b7c0aa4 - <unknown>
[INFO] [stdout]   46:     0x78173b84da64 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- parser::parseable::function_call stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'parser::parseable::function_call' (29) panicked at parser/src/parser.rs:1553:26:
[INFO] [stdout] LeftAngleBracket
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5b03184103fa - std[ec419fa8110287d5]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5b03184103fa - std[ec419fa8110287d5]::backtrace_rs::backtrace::trace_unsynchronized::<std[ec419fa8110287d5]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5b03184103fa - std[ec419fa8110287d5]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5b03184103fa - <<std[ec419fa8110287d5]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[35159d6ffb30e017]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5b031842651a - <core[35159d6ffb30e017]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5b031842651a - core[35159d6ffb30e017]::fmt::write
[INFO] [stdout]    6:     0x5b0318414ce2 - std[ec419fa8110287d5]::io::default_write_fmt::<alloc[a8a7aba520129d98]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x5b0318414ce2 - <alloc[a8a7aba520129d98]::vec::Vec<u8> as std[ec419fa8110287d5]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x5b03183ef1df - <std[ec419fa8110287d5]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5b03183ef1df - std[ec419fa8110287d5]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5b03184086c9 - std[ec419fa8110287d5]::panicking::default_hook
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5b031834d2dc - <alloc[a8a7aba520129d98]::boxed::Box<dyn for<'a, 'b> core[35159d6ffb30e017]::ops::function::Fn<(&'a std[ec419fa8110287d5]::panic::PanicHookInfo<'b>,), Output = ()> + core[35159d6ffb30e017]::marker::Sync + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::Fn<(&std[ec419fa8110287d5]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x5b031834d2dc - test[a8007afcd3effadc]::test_main_inner::<test[a8007afcd3effadc]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5b0318408882 - <alloc[a8a7aba520129d98]::boxed::Box<dyn for<'a, 'b> core[35159d6ffb30e017]::ops::function::Fn<(&'a std[ec419fa8110287d5]::panic::PanicHookInfo<'b>,), Output = ()> + core[35159d6ffb30e017]::marker::Sync + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::Fn<(&std[ec419fa8110287d5]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x5b0318408882 - std[ec419fa8110287d5]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5b03183ef298 - std[ec419fa8110287d5]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5b03183e6c09 - std[ec419fa8110287d5]::sys::backtrace::__rust_end_short_backtrace::<std[ec419fa8110287d5]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5b03183effad - __rustc[cfb3622dd870db93]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5b0318426cdc - core[35159d6ffb30e017]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5b031830952c - <parser[e745d244af7ec1e8]::types::FunctionCall>::parse_ctx::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1553:26
[INFO] [stdout]   20:     0x5b03182f12b6 - <parser[e745d244af7ec1e8]::types::FunctionCall>::parse_ctx
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1525:5
[INFO] [stdout]   21:     0x5b03182ee428 - <parser[e745d244af7ec1e8]::types::Block>::parse_ctx_mut
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1164:55
[INFO] [stdout]   22:     0x5b0318308d43 - <parser[e745d244af7ec1e8]::types::FunctionDecl>::parse_ctx_mut::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1509:44
[INFO] [stdout]   23:     0x5b03182f0656 - <parser[e745d244af7ec1e8]::types::FunctionDecl>::parse_ctx_mut
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1382:5
[INFO] [stdout]   24:     0x5b031830a244 - <parser[e745d244af7ec1e8]::types::TypeDecl>::parse_ctx_mut::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1682:37
[INFO] [stdout]   25:     0x5b03182f1ff6 - <parser[e745d244af7ec1e8]::types::TypeDecl>::parse_ctx_mut
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1668:5
[INFO] [stdout]   26:     0x5b031830f83e - <parser[e745d244af7ec1e8]::parser::Parser>::parse
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:136:43
[INFO] [stdout]   27:     0x5b0318336ac0 - parser[e745d244af7ec1e8]::parser::parseable::function_call
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:2523:22
[INFO] [stdout]   28:     0x5b03183342fd - parser[e745d244af7ec1e8]::parser::parseable::function_call::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:2513:27
[INFO] [stdout]   29:     0x5b0318323056 - <parser[e745d244af7ec1e8]::parser::parseable::function_call::{closure#0} as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   30:     0x5b03183405bb - <fn() -> core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   31:     0x5b03183405bb - test[a8007afcd3effadc]::__rust_begin_short_backtrace::<core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>, fn() -> core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:724:18
[INFO] [stdout]   32:     0x5b031834ddab - test[a8007afcd3effadc]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:747:74
[INFO] [stdout]   33:     0x5b031834ddab - <core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   34:     0x5b031834ddab - std[ec419fa8110287d5]::panicking::catch_unwind::do_call::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>, core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:581:40
[INFO] [stdout]   35:     0x5b031834ddab - std[ec419fa8110287d5]::panicking::catch_unwind::<core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>, core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:544:19
[INFO] [stdout]   36:     0x5b031834ddab - std[ec419fa8110287d5]::panic::catch_unwind::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>, core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panic.rs:359:14
[INFO] [stdout]   37:     0x5b031834ddab - test[a8007afcd3effadc]::run_test_in_process
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:747:27
[INFO] [stdout]   38:     0x5b031834ddab - test[a8007afcd3effadc]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:668:43
[INFO] [stdout]   39:     0x5b0318348784 - test[a8007afcd3effadc]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:698:41
[INFO] [stdout]   40:     0x5b0318348784 - std[ec419fa8110287d5]::sys::backtrace::__rust_begin_short_backtrace::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   41:     0x5b03183509b2 - std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   42:     0x5b03183509b2 - <core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   43:     0x5b03183509b2 - std[ec419fa8110287d5]::panicking::catch_unwind::do_call::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:581:40
[INFO] [stdout]   44:     0x5b03183509b2 - std[ec419fa8110287d5]::panicking::catch_unwind::<(), core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:544:19
[INFO] [stdout]   45:     0x5b03183509b2 - std[ec419fa8110287d5]::panic::catch_unwind::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panic.rs:359:14
[INFO] [stdout]   46:     0x5b03183509b2 - std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   47:     0x5b03183509b2 - <std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1} as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   48:     0x5b031840fcdf - <alloc[a8a7aba520129d98]::boxed::Box<dyn core[35159d6ffb30e017]::ops::function::FnOnce<(), Output = ()> + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   49:     0x5b031840fcdf - <std[ec419fa8110287d5]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   50:     0x78173b7c0aa4 - <unknown>
[INFO] [stdout]   51:     0x78173b84da64 - clone
[INFO] [stdout]   52:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- parser::parseable::complex_type_check stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'parser::parseable::complex_type_check' (23) panicked at parser/src/parser.rs:1576:26:
[INFO] [stdout] LeftAngleBracket
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5b03184103fa - std[ec419fa8110287d5]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5b03184103fa - std[ec419fa8110287d5]::backtrace_rs::backtrace::trace_unsynchronized::<std[ec419fa8110287d5]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5b03184103fa - std[ec419fa8110287d5]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5b03184103fa - <<std[ec419fa8110287d5]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[35159d6ffb30e017]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5b031842651a - <core[35159d6ffb30e017]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5b031842651a - core[35159d6ffb30e017]::fmt::write
[INFO] [stdout]    6:     0x5b0318414ce2 - std[ec419fa8110287d5]::io::default_write_fmt::<alloc[a8a7aba520129d98]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x5b0318414ce2 - <alloc[a8a7aba520129d98]::vec::Vec<u8> as std[ec419fa8110287d5]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x5b03183ef1df - <std[ec419fa8110287d5]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5b03183ef1df - std[ec419fa8110287d5]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5b03184086c9 - std[ec419fa8110287d5]::panicking::default_hook
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5b031834d2dc - <alloc[a8a7aba520129d98]::boxed::Box<dyn for<'a, 'b> core[35159d6ffb30e017]::ops::function::Fn<(&'a std[ec419fa8110287d5]::panic::PanicHookInfo<'b>,), Output = ()> + core[35159d6ffb30e017]::marker::Sync + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::Fn<(&std[ec419fa8110287d5]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x5b031834d2dc - test[a8007afcd3effadc]::test_main_inner::<test[a8007afcd3effadc]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5b0318408882 - <alloc[a8a7aba520129d98]::boxed::Box<dyn for<'a, 'b> core[35159d6ffb30e017]::ops::function::Fn<(&'a std[ec419fa8110287d5]::panic::PanicHookInfo<'b>,), Output = ()> + core[35159d6ffb30e017]::marker::Sync + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::Fn<(&std[ec419fa8110287d5]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x5b0318408882 - std[ec419fa8110287d5]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5b03183ef298 - std[ec419fa8110287d5]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5b03183e6c09 - std[ec419fa8110287d5]::sys::backtrace::__rust_end_short_backtrace::<std[ec419fa8110287d5]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5b03183effad - __rustc[cfb3622dd870db93]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5b0318426cdc - core[35159d6ffb30e017]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5b0318309a83 - <parser[e745d244af7ec1e8]::types::FunctionCall>::parse_ctx::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1576:26
[INFO] [stdout]   20:     0x5b03182f12b6 - <parser[e745d244af7ec1e8]::types::FunctionCall>::parse_ctx
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1525:5
[INFO] [stdout]   21:     0x5b03182f4995 - <parser[e745d244af7ec1e8]::types::VariableValue>::parse_ctx
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1737:51
[INFO] [stdout]   22:     0x5b031830d9dd - <parser[e745d244af7ec1e8]::types::VariableUse>::parse_ctx_mut::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:2332:46
[INFO] [stdout]   23:     0x5b03182f7eef - <parser[e745d244af7ec1e8]::types::VariableUse>::parse_ctx_mut
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:2214:5
[INFO] [stdout]   24:     0x5b031830adab - <parser[e745d244af7ec1e8]::types::Variable>::parse_ctx_mut::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1979:39
[INFO] [stdout]   25:     0x5b03182f653f - <parser[e745d244af7ec1e8]::types::Variable>::parse_ctx_mut
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1935:5
[INFO] [stdout]   26:     0x5b03182eb511 - <parser[e745d244af7ec1e8]::types::Block>::parse_ctx_mut
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1023:29
[INFO] [stdout]   27:     0x5b0318308d43 - <parser[e745d244af7ec1e8]::types::FunctionDecl>::parse_ctx_mut::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1509:44
[INFO] [stdout]   28:     0x5b03182f0656 - <parser[e745d244af7ec1e8]::types::FunctionDecl>::parse_ctx_mut
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1382:5
[INFO] [stdout]   29:     0x5b031830a244 - <parser[e745d244af7ec1e8]::types::TypeDecl>::parse_ctx_mut::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1682:37
[INFO] [stdout]   30:     0x5b03182f1ff6 - <parser[e745d244af7ec1e8]::types::TypeDecl>::parse_ctx_mut
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1668:5
[INFO] [stdout]   31:     0x5b031830f83e - <parser[e745d244af7ec1e8]::parser::Parser>::parse
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:136:43
[INFO] [stdout]   32:     0x5b031833be20 - parser[e745d244af7ec1e8]::parser::parseable::complex_type_check
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:3283:22
[INFO] [stdout]   33:     0x5b0318334567 - parser[e745d244af7ec1e8]::parser::parseable::complex_type_check::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:3264:28
[INFO] [stdout]   34:     0x5b03183232d6 - <parser[e745d244af7ec1e8]::parser::parseable::complex_type_check::{closure#0} as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   35:     0x5b03183405bb - <fn() -> core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   36:     0x5b03183405bb - test[a8007afcd3effadc]::__rust_begin_short_backtrace::<core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>, fn() -> core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:724:18
[INFO] [stdout]   37:     0x5b031834ddab - test[a8007afcd3effadc]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:747:74
[INFO] [stdout]   38:     0x5b031834ddab - <core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   39:     0x5b031834ddab - std[ec419fa8110287d5]::panicking::catch_unwind::do_call::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>, core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:581:40
[INFO] [stdout]   40:     0x5b031834ddab - std[ec419fa8110287d5]::panicking::catch_unwind::<core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>, core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:544:19
[INFO] [stdout]   41:     0x5b031834ddab - std[ec419fa8110287d5]::panic::catch_unwind::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>, core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panic.rs:359:14
[INFO] [stdout]   42:     0x5b031834ddab - test[a8007afcd3effadc]::run_test_in_process
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:747:27
[INFO] [stdout]   43:     0x5b031834ddab - test[a8007afcd3effadc]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:668:43
[INFO] [stdout]   44:     0x5b0318348784 - test[a8007afcd3effadc]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:698:41
[INFO] [stdout]   45:     0x5b0318348784 - std[ec419fa8110287d5]::sys::backtrace::__rust_begin_short_backtrace::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   46:     0x5b03183509b2 - std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   47:     0x5b03183509b2 - <core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   48:     0x5b03183509b2 - std[ec419fa8110287d5]::panicking::catch_unwind::do_call::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:581:40
[INFO] [stdout]   49:     0x5b03183509b2 - std[ec419fa8110287d5]::panicking::catch_unwind::<(), core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:544:19
[INFO] [stdout]   50:     0x5b03183509b2 - std[ec419fa8110287d5]::panic::catch_unwind::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panic.rs:359:14
[INFO] [stdout]   51:     0x5b03183509b2 - std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   52:     0x5b03183509b2 - <std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1} as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   53:     0x5b031840fcdf - <alloc[a8a7aba520129d98]::boxed::Box<dyn core[35159d6ffb30e017]::ops::function::FnOnce<(), Output = ()> + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   54:     0x5b031840fcdf - <std[ec419fa8110287d5]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   55:     0x78173b7c0aa4 - <unknown>
[INFO] [stdout]   56:     0x78173b84da64 - clone
[INFO] [stdout]   57:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- parser::parseable::simple_struct_use stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'parser::parseable::simple_struct_use' (37) panicked at parser/src/parser.rs:2769:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: VariableDecl(("bar", Variable { typeid: TypeId { id: 23, array: false }, mutable: false, val: Value(Complex(Struct(Struct { name: Known("BarBaz"), fields: [(0, "i", Primitive(String("foo")))] }))) }))
[INFO] [stdout]  right: VariableDecl(("bar", Variable { typeid: TypeId { id: 11, array: false }, mutable: false, val: Value(Complex(Struct(Struct { name: Known("BarBaz"), fields: [(0, "i", Primitive(String("foo")))] }))) }))
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5b03184103fa - std[ec419fa8110287d5]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5b03184103fa - std[ec419fa8110287d5]::backtrace_rs::backtrace::trace_unsynchronized::<std[ec419fa8110287d5]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5b03184103fa - std[ec419fa8110287d5]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5b03184103fa - <<std[ec419fa8110287d5]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[35159d6ffb30e017]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5b031842651a - <core[35159d6ffb30e017]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5b031842651a - core[35159d6ffb30e017]::fmt::write
[INFO] [stdout]    6:     0x5b0318414ce2 - std[ec419fa8110287d5]::io::default_write_fmt::<alloc[a8a7aba520129d98]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x5b0318414ce2 - <alloc[a8a7aba520129d98]::vec::Vec<u8> as std[ec419fa8110287d5]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x5b03183ef1df - <std[ec419fa8110287d5]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5b03183ef1df - std[ec419fa8110287d5]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5b03184086c9 - std[ec419fa8110287d5]::panicking::default_hook
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5b031834d2dc - <alloc[a8a7aba520129d98]::boxed::Box<dyn for<'a, 'b> core[35159d6ffb30e017]::ops::function::Fn<(&'a std[ec419fa8110287d5]::panic::PanicHookInfo<'b>,), Output = ()> + core[35159d6ffb30e017]::marker::Sync + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::Fn<(&std[ec419fa8110287d5]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x5b031834d2dc - test[a8007afcd3effadc]::test_main_inner::<test[a8007afcd3effadc]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5b0318408882 - <alloc[a8a7aba520129d98]::boxed::Box<dyn for<'a, 'b> core[35159d6ffb30e017]::ops::function::Fn<(&'a std[ec419fa8110287d5]::panic::PanicHookInfo<'b>,), Output = ()> + core[35159d6ffb30e017]::marker::Sync + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::Fn<(&std[ec419fa8110287d5]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x5b0318408882 - std[ec419fa8110287d5]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5b03183ef298 - std[ec419fa8110287d5]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5b03183e6c09 - std[ec419fa8110287d5]::sys::backtrace::__rust_end_short_backtrace::<std[ec419fa8110287d5]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5b03183effad - __rustc[cfb3622dd870db93]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5b0318426cdc - core[35159d6ffb30e017]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5b0318426b93 - core[35159d6ffb30e017]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x5b03183124ad - core[35159d6ffb30e017]::panicking::assert_failed::<parser[e745d244af7ec1e8]::types::BlockValue, parser[e745d244af7ec1e8]::types::BlockValue>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x5b031833b8ca - parser[e745d244af7ec1e8]::parser::parseable::simple_struct_use
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:2769:9
[INFO] [stdout]   22:     0x5b03183344fd - parser[e745d244af7ec1e8]::parser::parseable::simple_struct_use::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:2752:31
[INFO] [stdout]   23:     0x5b0318323256 - <parser[e745d244af7ec1e8]::parser::parseable::simple_struct_use::{closure#0} as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5b03183405bb - <fn() -> core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5b03183405bb - test[a8007afcd3effadc]::__rust_begin_short_backtrace::<core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>, fn() -> core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5b031834ddab - test[a8007afcd3effadc]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5b031834ddab - <core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5b031834ddab - std[ec419fa8110287d5]::panicking::catch_unwind::do_call::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>, core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5b031834ddab - std[ec419fa8110287d5]::panicking::catch_unwind::<core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>, core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5b031834ddab - std[ec419fa8110287d5]::panic::catch_unwind::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>, core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5b031834ddab - test[a8007afcd3effadc]::run_test_in_process
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5b031834ddab - test[a8007afcd3effadc]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5b0318348784 - test[a8007afcd3effadc]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5b0318348784 - std[ec419fa8110287d5]::sys::backtrace::__rust_begin_short_backtrace::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5b03183509b2 - std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5b03183509b2 - <core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5b03183509b2 - std[ec419fa8110287d5]::panicking::catch_unwind::do_call::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5b03183509b2 - std[ec419fa8110287d5]::panicking::catch_unwind::<(), core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5b03183509b2 - std[ec419fa8110287d5]::panic::catch_unwind::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5b03183509b2 - std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5b03183509b2 - <std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1} as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5b031840fcdf - <alloc[a8a7aba520129d98]::boxed::Box<dyn core[35159d6ffb30e017]::ops::function::FnOnce<(), Output = ()> + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   43:     0x5b031840fcdf - <std[ec419fa8110287d5]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x78173b7c0aa4 - <unknown>
[INFO] [stdout]   45:     0x78173b84da64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- parser::parseable::simple_type_check stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'parser::parseable::simple_type_check' (38) panicked at parser/src/parser.rs:1553:26:
[INFO] [stdout] LeftAngleBracket
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5b03184103fa - std[ec419fa8110287d5]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5b03184103fa - std[ec419fa8110287d5]::backtrace_rs::backtrace::trace_unsynchronized::<std[ec419fa8110287d5]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5b03184103fa - std[ec419fa8110287d5]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5b03184103fa - <<std[ec419fa8110287d5]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[35159d6ffb30e017]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5b031842651a - <core[35159d6ffb30e017]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5b031842651a - core[35159d6ffb30e017]::fmt::write
[INFO] [stdout]    6:     0x5b0318414ce2 - std[ec419fa8110287d5]::io::default_write_fmt::<alloc[a8a7aba520129d98]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x5b0318414ce2 - <alloc[a8a7aba520129d98]::vec::Vec<u8> as std[ec419fa8110287d5]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x5b03183ef1df - <std[ec419fa8110287d5]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5b03183ef1df - std[ec419fa8110287d5]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5b03184086c9 - std[ec419fa8110287d5]::panicking::default_hook
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5b031834d2dc - <alloc[a8a7aba520129d98]::boxed::Box<dyn for<'a, 'b> core[35159d6ffb30e017]::ops::function::Fn<(&'a std[ec419fa8110287d5]::panic::PanicHookInfo<'b>,), Output = ()> + core[35159d6ffb30e017]::marker::Sync + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::Fn<(&std[ec419fa8110287d5]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x5b031834d2dc - test[a8007afcd3effadc]::test_main_inner::<test[a8007afcd3effadc]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5b0318408882 - <alloc[a8a7aba520129d98]::boxed::Box<dyn for<'a, 'b> core[35159d6ffb30e017]::ops::function::Fn<(&'a std[ec419fa8110287d5]::panic::PanicHookInfo<'b>,), Output = ()> + core[35159d6ffb30e017]::marker::Sync + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::Fn<(&std[ec419fa8110287d5]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x5b0318408882 - std[ec419fa8110287d5]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5b03183ef298 - std[ec419fa8110287d5]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5b03183e6c09 - std[ec419fa8110287d5]::sys::backtrace::__rust_end_short_backtrace::<std[ec419fa8110287d5]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5b03183effad - __rustc[cfb3622dd870db93]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5b0318426cdc - core[35159d6ffb30e017]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5b031830952c - <parser[e745d244af7ec1e8]::types::FunctionCall>::parse_ctx::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1553:26
[INFO] [stdout]   20:     0x5b03182f12b6 - <parser[e745d244af7ec1e8]::types::FunctionCall>::parse_ctx
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1525:5
[INFO] [stdout]   21:     0x5b03182ee428 - <parser[e745d244af7ec1e8]::types::Block>::parse_ctx_mut
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1164:55
[INFO] [stdout]   22:     0x5b0318308d43 - <parser[e745d244af7ec1e8]::types::FunctionDecl>::parse_ctx_mut::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1509:44
[INFO] [stdout]   23:     0x5b03182f0656 - <parser[e745d244af7ec1e8]::types::FunctionDecl>::parse_ctx_mut
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1382:5
[INFO] [stdout]   24:     0x5b031830a244 - <parser[e745d244af7ec1e8]::types::TypeDecl>::parse_ctx_mut::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1682:37
[INFO] [stdout]   25:     0x5b03182f1ff6 - <parser[e745d244af7ec1e8]::types::TypeDecl>::parse_ctx_mut
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:1668:5
[INFO] [stdout]   26:     0x5b031830f83e - <parser[e745d244af7ec1e8]::parser::Parser>::parse
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:136:43
[INFO] [stdout]   27:     0x5b031833bd75 - parser[e745d244af7ec1e8]::parser::parseable::simple_type_check
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:3253:13
[INFO] [stdout]   28:     0x5b0318334537 - parser[e745d244af7ec1e8]::parser::parseable::simple_type_check::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/parser/src/parser.rs:3242:27
[INFO] [stdout]   29:     0x5b0318323296 - <parser[e745d244af7ec1e8]::parser::parseable::simple_type_check::{closure#0} as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   30:     0x5b03183405bb - <fn() -> core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   31:     0x5b03183405bb - test[a8007afcd3effadc]::__rust_begin_short_backtrace::<core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>, fn() -> core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:724:18
[INFO] [stdout]   32:     0x5b031834ddab - test[a8007afcd3effadc]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:747:74
[INFO] [stdout]   33:     0x5b031834ddab - <core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   34:     0x5b031834ddab - std[ec419fa8110287d5]::panicking::catch_unwind::do_call::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>, core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:581:40
[INFO] [stdout]   35:     0x5b031834ddab - std[ec419fa8110287d5]::panicking::catch_unwind::<core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>, core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:544:19
[INFO] [stdout]   36:     0x5b031834ddab - std[ec419fa8110287d5]::panic::catch_unwind::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>, core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panic.rs:359:14
[INFO] [stdout]   37:     0x5b031834ddab - test[a8007afcd3effadc]::run_test_in_process
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:747:27
[INFO] [stdout]   38:     0x5b031834ddab - test[a8007afcd3effadc]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:668:43
[INFO] [stdout]   39:     0x5b0318348784 - test[a8007afcd3effadc]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:698:41
[INFO] [stdout]   40:     0x5b0318348784 - std[ec419fa8110287d5]::sys::backtrace::__rust_begin_short_backtrace::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   41:     0x5b03183509b2 - std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   42:     0x5b03183509b2 - <core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   43:     0x5b03183509b2 - std[ec419fa8110287d5]::panicking::catch_unwind::do_call::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:581:40
[INFO] [stdout]   44:     0x5b03183509b2 - std[ec419fa8110287d5]::panicking::catch_unwind::<(), core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:544:19
[INFO] [stdout]   45:     0x5b03183509b2 - std[ec419fa8110287d5]::panic::catch_unwind::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panic.rs:359:14
[INFO] [stdout]   46:     0x5b03183509b2 - std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   47:     0x5b03183509b2 - <std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1} as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   48:     0x5b031840fcdf - <alloc[a8a7aba520129d98]::boxed::Box<dyn core[35159d6ffb30e017]::ops::function::FnOnce<(), Output = ()> + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   49:     0x5b031840fcdf - <std[ec419fa8110287d5]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   50:     0x78173b7c0aa4 - <unknown>
[INFO] [stdout]   51:     0x78173b84da64 - clone
[INFO] [stdout]   52:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     parser::parseable::complex_struct
[INFO] [stdout]     parser::parseable::complex_type_check
[INFO] [stdout]     parser::parseable::function_call
[INFO] [stdout]     parser::parseable::simple_struct_use
[INFO] [stdout]     parser::parseable::simple_type_check
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 20 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d68699bab5cdf07d349b2f48c359621a8b01a9b14f5f65fedccfac66155e65a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d68699bab5cdf07d349b2f48c359621a8b01a9b14f5f65fedccfac66155e65a9", kill_on_drop: false }`
[INFO] [stdout] d68699bab5cdf07d349b2f48c359621a8b01a9b14f5f65fedccfac66155e65a9
